Function at 0x420730
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x82c
mov ebx, dword [esp + 0x840]
mov ebp, dword [esp + 0x848]
mov dword [ebx + 0x4654], 0
mov dword [ebx + 0x168c], 0
mov ebx, dword [esp + 0x844]
mov dword [esp], ebx
call fcn.004251a0
mov dword [esp + 0x5c], 1
test eax, eax
jne 0x420825
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x50], 0
mov ebx, dword [esp + 0x840]
mov dword [esp + 0x5c], 0
cmp ecx, dword [ebx + 0x5fd0]
jg 0x4217aa
mov ebx, dword [esp + 0x844]
mov dword [esp + 0x54], 1
mov esi, dword [esp + 0x840]
mov ebx, dword [ebx + 0x18]
cmp ebx, dword [esi + 0x121c]
mov dword [esp + 0x80], ebx
je 0x42182d
mov ebx, dword [esp + 0x844]
imul esi, dword [esp + 0x84c], 0x64
mov eax, dword [ebx]
mov edx, esi
mov ebx, dword [esp + 0x840]
sar edx, 0x1f
mov dword [ebx + 0x5fcc], eax
mov eax, esi
mov dword [ebx + 0x5fd0], ecx
mov ebx, dword [esp + 0x844]
mov edi, dword [ebx + 8]
idiv edi
cmp eax, 1
mov dword [esp + 0x58], eax
jle 0x420834
sar eax, 1
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x858]
test eax, eax
je 0x42084b
mov dword [esp + 0x5c], 0xffffff9b
mov eax, dword [esp + 0x5c]
add esp, 0x82c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x858]
test eax, eax
jne 0x420955
mov dword [esp + 0x64], 1
mov eax, dword [esp + 0x58]
imul eax, edi
cmp esi, eax
jne 0x42081d
mov ebx, dword [esp + 0x84c]
test ebx, ebx
js 0x42081d
imul eax, dword [esp + 0x84c], 0x3e8
imul edi, dword [esp + 0x80]
cmp eax, edi
jg 0x42081d
mov ebx, dword [esp + 0x844]
mov eax, ecx
mov dword [esp + 0x88], 0
mov dword [esp + 0x80], 0
mov esi, dword [ebx + 0x1c]
lea ecx, [eax - 1]
sar esi, cl
test eax, eax
jle 0x420a33
mov edi, dword [esp + 0x840]
mov dword [esp + 0x60], ebp
xor ebx, ebx
mov ebp, dword [esp + 0x844]
mov dword [esp + 0x50], esi
xor eax, eax
mov esi, edi
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], ebx
mov eax, dword [esi + 0x5fdc]
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
imul eax, ebx, 0x2fc8
add eax, esi
mov dword [esp], eax
call fcn.00425520
test eax, eax
jne 0x421675
mov ecx, dword [esp + 0x54]
or ecx, dword [edi + 0x1254]
je 0x420927
mov edx, dword [esi + 0x1688]
test edx, edx
jle 0x420927
xor edx, edx
mov dword [edi + edx*4 + 0x1290], 0
add edx, 1
cmp dword [esi + 0x1688], edx
jg 0x420911
mov edx, dword [edi + 0x17d4]
add ebx, 1
mov dword [edi + 0x17d8], edx
cmp dword [ebp + 4], ebx
jle 0x421688
xor eax, eax
cmp ebx, 1
je 0x420a20
add edi, 0x2fc8
jmp 0x4208c3
cmp dword [esp + 0x58], 1
jne 0x42081d
test ecx, ecx
jle 0x421c5c
mov ebx, dword [esp + 0x840]
xor esi, esi
mov edi, dword [esp + 0x844]
nop
lea esi, [esi]
imul eax, esi, 0x2fc8
add esi, 1
add eax, ebx
mov dword [esp], eax
call fcn.00425140
mov edx, dword [edi + 4]
cmp edx, esi
jg 0x420980
mov ebx, dword [esp + 0x844]
test edx, edx
mov dword [esp + 0x5c], eax
mov eax, edx
mov ebx, dword [ebx + 0x18]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x844]
mov dword [ebx + 0x18], 0xa
mov ebx, dword [ebx + 0x24]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x844]
mov dword [ebx + 0x24], 0
jle 0x420a2b
mov edx, dword [esp + 0x840]
imul eax, eax, 0x2fc8
add eax, edx
mov dword [edx + 0x1258], 0
mov dword [edx + 0x1264], 1
add edx, 0x2fc8
cmp edx, eax
jne 0x4209ea
mov ebx, dword [esp + 0x844]
mov dword [esp + 0x64], 1
mov eax, dword [ebx + 4]
jmp 0x420897
mov eax, dword [esi + 0x11f8]
jmp 0x42094a
mov dword [esp + 0x64], 1
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x60], 0
lea eax, [ebx + ebx*4]
mov ebx, dword [esp + 0x840]
add eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x64]
add ebx, 0x16a8
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x840]
neg eax
add eax, eax
mov dword [esp + 0x7c], eax
add ebx, 0x4670
mov dword [esp + 0x84], ebx
and ebx, 1
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x840]
mov edx, dword [esp + 0x74]
mov ecx, dword [ebx + 0x11f8]
mov esi, dword [ebx + 0x1684]
mov eax, dword [ebx + 0x1200]
imul edx, ecx
sub eax, esi
cmp edx, eax
cmovle eax, edx
imul ecx, ecx, 0x3e8
mov dword [esp + 0x50], eax
imul eax, dword [ebx + 0x11e4]
mov edx, eax
sar edx, 0x1f
idiv ecx
mov ebx, eax
mov eax, dword [esp + 0x844]
cmp dword [eax], 2
je 0x421160
lea eax, [ebx + ebx]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
lea eax, [esp + 0xa0]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x840]
mov dword [esp + 0xc], ebx
lea edx, [esp + 0xa0]
mov dword [esp + 8], edx
lea eax, [ecx + esi*2 + 0x1404]
mov esi, dword [esp + 0x78]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00426270
mov ecx, dword [esp + 0x50]
add dword [esp + 0x5c], eax
mov eax, dword [esp + 0x840]
add ecx, dword [eax + 0x1684]
mov dword [eax + 0x1684], ecx
mov eax, dword [eax + 0x1200]
mov esi, dword [esp + 0x844]
mov edx, ebx
sub dword [esp + 0x84c], ebx
mov ebx, dword [esp + 0x840]
imul edx, dword [esi]
cmp ecx, eax
mov dword [ebx + 0x5fdc], 0
lea ebp, [ebp + edx*2]
jl 0x421934
mov esi, dword [esp + 0x858]
or esi, dword [ebx + 0x168c]
je 0x421210
mov ebx, dword [esp + 0x840]
mov dword [esp], ebx
call fcn.00426460
mov ebx, dword [esp + 0x844]
mov edx, 0x10624dd3
mov ebx, dword [ebx + 0x1c]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x844]
mov ecx, dword [ebx + 0x18]
mov ebx, dword [esp + 0x54]
imul ebx, ecx
mov eax, ebx
sar ebx, 0x1f
imul edx
mov eax, dword [esp + 0x858]
sar edx, 6
sub edx, ebx
test eax, eax
je 0x421138
mov eax, dword [esp + 0x840]
mov ebx, dword [eax + 0x168c]
mov esi, dword [eax + 0x1688]
mov eax, edx
sar edx, 0x1f
sub esi, ebx
idiv esi
cmp ecx, 0xa
movsx edx, ax
je 0x421430
imul edx, edx, 0x32
mov ecx, dword [esp + 0x840]
mov eax, dword [ecx + 0x5fc8]
neg eax
cmp dword [esp + 0x54], 0x1388
lea eax, [edx + eax*2]
jle 0x420e85
cmp eax, dword [esp + 0x54]
jg 0x420c34
mov dword [esp + 0x54], 0x1388
cmp eax, 0x1388
cmovl eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
mov esi, dword [esp + 0x844]
cmp dword [esi + 4], 2
je 0x420eae
mov ebx, dword [esp + 0x840]
mov eax, dword [ebx + 0x5f94]
mov dword [ebx + 0x1400], eax
mov eax, dword [ebx + 0x1200]
mov eax, dword [ebx + eax*2 + 0x1400]
mov dword [ebx + 0x5f94], eax
mov ebx, dword [esp + 0x840]
mov dword [esp], ebx
call fcn.00426650
mov ebx, dword [esp + 0x844]
mov ebx, dword [ebx + 4]
test ebx, ebx
mov dword [esp + 0x50], ebx
jle 0x420e0b
cmp dword [esp + 0x64], 2
mov dword [esp + 0x70], ebp
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x840]
sete byte [esp + 0x58]
test eax, eax
sete byte [esp + 0x6f]
sub ebx, 1
movzx ecx, byte [esp + 0x6f]
mov dword [esp + 0x68], ebx
xor ebx, ebx
and byte [esp + 0x58], cl
mov eax, dword [esp + 0x844]
cmp byte [esp + 0x58], 0
mov ebp, dword [eax + 0x34]
lea ecx, [ebp + ebp*2]
jne 0x420e70
cmp dword [esp + 0x64], 3
mov edi, ebp
je 0x420e60
mov ecx, dword [esp + 0x844]
xor edx, edx
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x420d09
mov ecx, dword [esp + 0x68]
xor edx, edx
cmp dword [esp + 0x60], ecx
sete dl
cmp dword [esp + 0x50], 1
mov ecx, dword [esp + 0x54]
je 0x420d39
test ebx, ebx
mov ecx, dword [esp + ebx*4 + 0x98]
jne 0x420d39
mov eax, dword [esp + 0x9c]
test eax, eax
jle 0x420d39
mov edx, ebp
mov eax, ebp
sar edx, 0x1f
idiv dword [esp + 0x7c]
xor edx, edx
add edi, eax
test ecx, ecx
jle 0x420dcd
imul eax, ebx, 0x2fc8
mov dword [esp + 4], ecx
mov dword [esp + 0x40], edx
add eax, dword [esp + 0x840]
mov dword [esp], eax
call fcn.00427300
mov eax, dword [esp + 0x840]
mov edx, dword [esp + 0x40]
mov ecx, dword [eax + 0x168c]
xor eax, eax
sub ecx, ebx
test ecx, ecx
jle 0x420d92
test ebx, ebx
mov al, 2
je 0x420d92
mov ecx, dword [esp + 0x840]
cmp dword [ecx + 0x5fe0], 1
sbb eax, eax
not eax
add eax, 2
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x850]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x854]
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
imul eax, ebx, 0x2fc8
mov dword [esp + 4], edx
add eax, dword [esp + 0x840]
mov dword [esp], eax
call fcn.00426700
mov dword [esp + 0x5c], eax
add dword [esi + 0x168c], 1
add ebx, 1
mov dword [esi + 0x1258], 0
mov ecx, dword [esp + 0x844]
mov dword [esi + 0x1684], 0
add esi, 0x2fc8
mov ecx, dword [ecx + 4]
cmp ecx, ebx
mov dword [esp + 0x50], ecx
jg 0x420cc6
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x840]
mov ecx, dword [ebx + 0x168c]
movsx eax, byte [ebx + ecx + 0x5fc3]
mov dword [ebx + 0x5fe0], eax
mov ebx, dword [esp + 0x854]
mov edi, dword [ebx]
test edi, edi
jle 0x420e46
mov ebx, dword [esp + 0x840]
cmp ecx, dword [ebx + 0x1688]
je 0x421450
mov eax, dword [esp + 0x84c]
test eax, eax
je 0x4215a6
add dword [esp + 0x60], 1
jmp 0x420a83
cmp byte [esp + 0x6f], 0
je 0x421630
lea ecx, [ebp + ebp]
nop
mov eax, 0x66666667
imul ecx
sar ecx, 0x1f
mov edi, edx
sar edi, 1
sub edi, ecx
jmp 0x420cec
cmp eax, 0x1388
jg 0x421440
cmp dword [esp + 0x54], eax
mov esi, dword [esp + 0x844]
cmovge eax, dword [esp + 0x54]
cmp dword [esi + 4], 2
mov dword [esp + 0x54], eax
jne 0x420c45
mov edx, dword [esp + 0x840]
mov eax, dword [edx + 0x1200]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0x11f8]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x38]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x11cc]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x14], eax
lea eax, [edx + ebx + 0x5fc4]
mov dword [esp + 0x10], eax
lea eax, [ebx + ebx*2]
lea eax, [edx + eax*2 + 0x5fb2]
mov dword [esp + 0xc], eax
mov eax, edx
add eax, 0x43cc
mov dword [esp + 8], eax
sub eax, 0x2fc8
mov dword [esp + 4], eax
add eax, 0x4b8c
mov dword [esp], eax
call fcn.004274a0
mov ebx, dword [esp + 0x840]
mov eax, dword [ebx + 0x168c]
cmp byte [ebx + eax + 0x5fc4], 0
jne 0x421651
cmp dword [ebx + 0x5fe0], 1
je 0x421a30
mov eax, dword [esp + 0x840]
add eax, 0x2fc8
mov dword [esp], eax
call fcn.00426650
mov eax, dword [esp + 0x858]
test eax, eax
jne 0x420c6b
mov ebx, dword [esp + 0x840]
mov eax, dword [ebx + 0x168c]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*2 + 0x5fb2]
mov ebx, dword [esp + 0x850]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00428ab0
mov ebx, dword [esp + 0x840]
mov eax, dword [ebx + 0x168c]
cmp byte [ebx + eax + 0x4254], 0
jne 0x420c6b
movsx eax, byte [ebx + eax + 0x5fc4]
mov ebx, dword [esp + 0x850]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00428b70
jmp 0x420c6b
mov ebp, esi
xor ebx, ebx
mov dword [esp + 0x50], edi
add ebp, 0x180a
mov ecx, dword [esi + 0x1290]
test ecx, ecx
je 0x421084
cmp edx, 2
je 0x4218bd
mov ecx, dword [esp + 0x840]
imul edi, ebx, 0x2fc8
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x850]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
add ecx, edi
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00428ba0
mov ecx, dword [esi + 0x1200]
mov eax, dword [esp + 0x850]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x840]
lea edx, [ecx + edi + 0x1858]
mov dword [esp + 0xc], edx
movsx edx, byte [ebp]
mov dword [esp + 8], edx
movsx edx, byte [ebp - 1]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00429030
mov ecx, dword [esp + 0x844]
mov edx, dword [ecx + 4]
add ebx, 1
add esi, 0x2fc8
add ebp, 0x2fc8
cmp edx, ebx
jg 0x420fee
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x840]
mov eax, dword [ebx + 0x1688]
add edi, 1
cmp edi, eax
jl 0x421324
mov ebp, dword [esp + 0x58]
test edx, edx
jle 0x4210f9
mov ecx, dword [esp + 0x840]
xor eax, eax
mov ebx, dword [esp + 0x844]
nop
imul edx, eax, 0x2fc8
add eax, 1
lea edx, [ecx + edx + 0x1290]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
cmp dword [ebx + 4], eax
jg 0x4210d0
mov ebx, dword [esp + 0x840]
mov dword [esp], ebx
call fcn.00426460
mov ebx, dword [esp + 0x844]
mov edx, 0x10624dd3
mov ebx, dword [ebx + 0x1c]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x844]
mov ecx, dword [ebx + 0x18]
mov ebx, dword [esp + 0x54]
imul ebx, ecx
mov eax, ebx
sar ebx, 0x1f
imul edx
sar edx, 6
sub edx, ebx
mov ebx, dword [esp + 0x850]
bsr eax, dword [ebx + 0x1c]
mov ebx, dword [ebx + 0x14]
xor eax, 0x1f
lea eax, [eax + ebx - 0x20]
sar eax, 1
sub edx, eax
jmp 0x420bcd
mov eax, dword [eax + 4]
cmp eax, 2
je 0x421695
cmp eax, 1
jne 0x420ad4
test ebx, ebx
jle 0x4211a4
xor al, al
nop
lea esi, [esi]
movsx ecx, word [ebp + eax*4]
movsx edx, word [ebp + eax*4 + 2]
add edx, ecx
mov ecx, edx
sar edx, 1
and ecx, 1
add edx, ecx
mov word [esp + eax*2 + 0xa0], dx
add eax, 1
cmp eax, ebx
jne 0x421180
mov ecx, dword [esp + 0x78]
lea eax, [esp + 0xa0]
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x840]
mov dword [esp + 8], eax
mov dword [esp], ecx
lea eax, [edx + esi*2 + 0x1404]
mov dword [esp + 4], eax
call fcn.00426270
mov esi, dword [esp + 0x840]
add dword [esp + 0x5c], eax
cmp dword [esi + 0x5fd4], 2
je 0x421a00
mov edi, dword [esi + 0x1684]
mov eax, dword [esi + 0x1200]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x840]
add ecx, edi
mov dword [esi + 0x1684], ecx
jmp 0x420b3c
mov eax, dword [ebx + 0x1688]
mov byte [esp + 0x97], 0
mov ebx, dword [esp + 0x844]
mov ecx, eax
mov eax, 0x100
add ecx, 1
imul ecx, dword [ebx + 4]
mov dword [esp + 0xc], 8
mov ebx, dword [esp + 0x850]
mov dword [esp + 4], 0
sar eax, cl
neg eax
mov byte [esp + 0x96], al
lea eax, [esp + 0x96]
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.0041e4f0
mov ebx, dword [esp + 0x844]
mov edx, dword [ebx + 4]
test edx, edx
jle 0x4212ff
mov ebx, dword [esp + 0x840]
xor edi, edi
mov esi, dword [ebx + 0x1688]
xor edx, edx
xor ecx, ecx
test esi, esi
jle 0x421622
mov eax, dword [ebx + ecx*4 + 0x1290]
shl eax, cl
add ecx, 1
or edx, eax
cmp ecx, esi
jne 0x421295
test edx, edx
setg byte [ebx + 0x128f]
test edx, edx
je 0x4212e8
mov eax, dword [ebx + 0x1688]
cmp eax, 1
jle 0x4212e8
mov eax, dword [eax*4 + 0x455774]
sub edx, 1
mov dword [esp + 0xc], 8
mov esi, dword [esp + 0x850]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.0041e4f0
mov eax, dword [esp + 0x844]
add edi, 1
add ebx, 0x2fc8
mov edx, dword [eax + 4]
cmp edx, edi
jg 0x421283
mov ebx, dword [esp + 0x840]
xor edi, edi
mov eax, dword [ebx + 0x1688]
add ebx, 0x5fb2
mov dword [esp + 0x68], ebx
test eax, eax
jle 0x4210bb
mov dword [esp + 0x58], ebp
test edx, edx
jle 0x4210ac
test edi, edi
mov esi, dword [esp + 0x840]
je 0x420fe0
lea eax, [edi + edi*8]
lea ebp, [esi + eax*4 + 0x180a]
mov eax, edi
lea ebx, [esi + edi*4 + 0x1290]
neg eax
xor esi, esi
shl eax, 2
mov dword [esp + 0x50], eax
lea eax, [edi + edi*4]
mov dword [esp + 0x54], eax
mov ecx, dword [ebx]
test ecx, ecx
je 0x42140d
cmp edx, 2
je 0x4215c0
cmp dword [ebx - 4], 1
mov dword [esp + 0xc], 1
mov edx, dword [esp + 0x840]
mov dword [esp + 8], edi
mov ecx, dword [esp + 0x850]
sbb eax, eax
not eax
and eax, 2
mov dword [esp + 4], ecx
mov dword [esp + 0x10], eax
imul eax, esi, 0x2fc8
add edx, eax
mov dword [esp + 0x40], eax
mov dword [esp], edx
call fcn.00428ba0
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
mov edx, dword [ebx + ecx - 0x90]
mov ecx, dword [esp + 0x850]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x54]
shl edx, 6
lea eax, [eax + edx + 0x1850]
mov edx, dword [esp + 0x840]
lea eax, [edx + eax + 8]
mov dword [esp + 0xc], eax
movsx eax, byte [ebp]
mov dword [esp + 8], eax
movsx eax, byte [ebp - 1]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00429030
mov eax, dword [esp + 0x844]
mov edx, dword [eax + 4]
add esi, 1
add ebx, 0x2fc8
add ebp, 0x2fc8
cmp esi, edx
jl 0x421360
jmp 0x42109f
imul edx, edx, 0x64
jmp 0x420bf8
mov dword [esp + 0x54], 0x1388
jmp 0x420c34
mov esi, dword [esp + 0x50]
xor eax, eax
test esi, esi
jle 0x4214b4
mov edi, ebx
xor esi, esi
mov dword [esp + 0x54], ecx
mov ecx, dword [edi + 0x1688]
test ecx, ecx
jle 0x421496
mov ebx, dword [esp + 0x840]
imul edx, esi, 0x2fc8
lea edx, [ebx + edx + 0x128c]
lea ebx, [edi + ecx + 0x128c]
lea ecx, [eax + eax]
movsx eax, byte [edx]
add edx, 1
or eax, ecx
cmp edx, ebx
jne 0x421487
movsx edx, byte [edi + 0x128f]
add eax, eax
add esi, 1
add edi, 0x2fc8
or eax, edx
cmp esi, dword [esp + 0x50]
jne 0x421462
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x858]
test edx, edx
je 0x421910
mov ebx, dword [esp + 0x840]
mov eax, dword [ebx + 0x17d8]
test eax, eax
je 0x4214fa
mov ebx, dword [esp + 0x844]
cmp dword [ebx + 4], 1
je 0x421841
mov ebx, dword [esp + 0x840]
mov eax, dword [ebx + 0x47a0]
test eax, eax
jne 0x421841
mov ebx, dword [esp + 0x854]
mov ebx, dword [ebx]
mov ecx, ebx
shl ecx, 3
mov esi, dword [esp + 0x844]
mov edx, dword [esp + 0x844]
mov eax, dword [esp + 0x840]
mov ebx, dword [esi + 0x18]
add ecx, dword [eax + 0x5fc8]
mov esi, ebx
imul esi, dword [edx + 0x1c]
mov edx, 0x10624dd3
mov eax, esi
sar esi, 0x1f
imul edx
mov eax, ecx
mov ecx, dword [esp + 0x840]
sar edx, 6
sub esi, edx
mov edx, 0
add eax, esi
cmovs eax, edx
mov dx, 0x2710
cmp eax, 0x2710
cmovle edx, eax
mov dword [ecx + 0x5fc8], edx
mov edx, dword [ecx + 0x5fd8]
movsx eax, dx
imul eax, eax, 0xc74
sar eax, 0x10
add eax, 0xd
cmp eax, dword [ecx + 0x11cc]
jle 0x42165e
mov eax, dword [esp + 0x84c]
mov dword [ecx + 0x5fdc], 1
mov dword [ecx + 0x5fd8], 0
test eax, eax
jne 0x420e55
mov ebx, dword [esp + 0x840]
mov eax, dword [ebx + 0x5fdc]
jmp 0x421936
test esi, esi
jne 0x421373
mov edx, dword [esp + 0x840]
lea eax, [edi + edi*2]
mov ecx, dword [esp + 0x850]
lea eax, [edx + eax*2 + 0x5fb2]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00428ab0
mov eax, dword [esp + 0x840]
mov edx, dword [eax + edi*4 + 0x4258]
test edx, edx
jne 0x421373
movsx eax, byte [eax + edi + 0x5fc4]
mov edx, dword [esp + 0x850]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00428b70
jmp 0x421373
mov byte [ebx + 0x128f], 0
jmp 0x4212e8
cmp dword [esp + 0x60], 1
mov edi, ebp
jne 0x420cec
lea eax, [ebp + ebp*2]
lea edi, [eax + 3]
test eax, eax
cmovns edi, eax
sar edi, 2
jmp 0x420cec
mov byte [ebx + eax + 0x4254], 0
jmp 0x420f63
mov dword [ecx + 0x5fdc], 0
add edx, ebx
mov dword [ecx + 0x5fd8], edx
jmp 0x420e46
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
add esp, 0x82c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x5c], eax
mov ebp, dword [esp + 0x60]
jmp 0x420a33
mov eax, dword [esp + 0x840]
test ebx, ebx
mov ecx, dword [eax + 0x168c]
jle 0x4216c4
xor eax, eax
nop
lea esi, [esi]
movzx edx, word [ebp + eax*4]
mov word [esp + eax*2 + 0xa0], dx
add eax, 1
cmp eax, ebx
jne 0x4216b0
mov edx, dword [esp + 0x840]
cmp dword [edx + 0x5fd4], 1
je 0x421855
mov ecx, dword [esp + 0x78]
lea eax, [esp + 0xa0]
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x840]
mov dword [esp + 8], eax
mov dword [esp], ecx
lea eax, [edx + esi*2 + 0x1404]
mov dword [esp + 4], eax
call fcn.00426270
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x74]
add esi, eax
mov eax, dword [esp + 0x840]
add dword [eax + 0x1684], edx
mov edx, eax
mov ecx, dword [eax + 0x464c]
mov eax, dword [eax + 0x41c8]
imul edi, dword [edx + 0x41c0]
sub eax, ecx
cmp edi, eax
cmovg edi, eax
test ebx, ebx
jle 0x421756
xor eax, eax
movzx edx, word [ebp + eax*4 + 2]
mov word [esp + eax*2 + 0xa0], dx
add eax, 1
cmp eax, ebx
jne 0x421742
mov edx, dword [esp + 0x840]
lea eax, [esp + 0xa0]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
lea eax, [edx + ecx*2 + 0x43cc]
mov ecx, dword [esp + 0x84]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00426270
add eax, esi
mov esi, dword [esp + 0x840]
mov dword [esp + 0x5c], eax
add dword [esi + 0x464c], edi
mov ecx, dword [esi + 0x1684]
mov eax, dword [esi + 0x1200]
jmp 0x420b3c
add ebx, 0x2fc8
mov dword [esp], ebx
call fcn.00425140
mov esi, dword [esp + 0x840]
mov dword [esp + 0x5c], eax
cmp dword [esi + 0x5fcc], 2
mov dword [esi + 0x5f90], 0
mov dword [esi + 0x5f98], 0
mov dword [esi + 0x5f9c], 0
mov dword [esi + 0x5fa0], 1
mov dword [esi + 0x5fa4], 0
mov dword [esi + 0x5fa8], 1
mov word [esi + 0x5fae], 0
mov word [esi + 0x5fac], 0x4000
je 0x421c91
mov ebx, dword [esp + 0x844]
mov ecx, dword [ebx + 4]
jmp 0x4207a0
xor ebx, ebx
cmp dword [esi + 0x5fd0], ecx
setne bl
mov dword [esp + 0x54], ebx
jmp 0x4207cc
mov ebx, dword [esp + 0x854]
xor ecx, ecx
mov dword [ebx], 0
jmp 0x421508
test ecx, ecx
jne 0x4216d8
mov ecx, dword [esp + 0x8c]
mov eax, 0x12c
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
test ecx, ecx
jne 0x421db3
test edi, 2
jne 0x421ddd
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x4218a0
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x4218ab
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov ecx, dword [esp + 0x840]
mov esi, dword [ecx + 0x1684]
jmp 0x4216d8
test ebx, ebx
jne 0x421005
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x850]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00428ab0
mov ecx, dword [esp + 0x840]
mov eax, dword [ecx + 0x4258]
test eax, eax
jne 0x421005
movsx edx, byte [ecx + 0x5fc4]
mov eax, dword [esp + 0x850]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00428b70
jmp 0x421005
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x850]
mov dword [esp + 4], eax
imul edx, dword [esp + 0x50]
mov dword [esp], ebx
mov dword [esp + 8], edx
call fcn.0041e760
jmp 0x4214c3
xor eax, eax
mov ebx, dword [esp + 0x844]
xor ecx, ecx
mov edx, dword [ebx + 4]
mov ebx, dword [esp + 0x840]
mov dword [ebx + 0x5fd4], edx
mov ebx, dword [esp + 0x844]
mov dword [ebx + 0x44], eax
mov ebx, dword [esp + 0x840]
mov eax, dword [ebx + 0x11f8]
cmp eax, 0x10
je 0x421a21
mov ebx, dword [esp + 0x844]
cwde
imul eax, eax, 0x3e8
mov esi, dword [ebx + 0x38]
mov dword [ebx + 0x40], eax
xor eax, eax
mov dword [ebx + 0x48], ecx
test esi, esi
jne 0x4219a1
mov ebx, dword [esp + 0x840]
movsx eax, word [ebx + 0x5fac]
mov ebx, dword [esp + 0x844]
mov ecx, dword [esp + 0x858]
mov dword [ebx + 0x4c], eax
test ecx, ecx
je 0x420825
mov esi, dword [esp + 0x80]
test edx, edx
mov eax, dword [esp + 0x88]
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x24], eax
jle 0x420825
mov eax, dword [esp + 0x840]
imul edx, edx, 0x2fc8
add edx, eax
mov dword [eax + 0x1258], 0
mov dword [eax + 0x1264], 0
add eax, 0x2fc8
cmp eax, edx
jne 0x4219de
jmp 0x420825
mov eax, esi
mov esi, dword [esi + 0x168c]
test esi, esi
je 0x421baa
mov edi, dword [eax + 0x1684]
mov eax, dword [eax + 0x1200]
jmp 0x4211f5
mov edi, dword [ebx + 0x1c]
xor ecx, ecx
test edi, edi
sete cl
jmp 0x42196f
mov edi, ebx
mov edx, 0x85c
mov dword [ebx + 0x4be0], 0
mov dword [ebx + 0x4be4], 0
add edi, 0x4bf0
mov dword [ebx + 0x4be8], 0
test edi, 1
mov dword [ebx + 0x4bec], 0
jne 0x421d60
test edi, 2
jne 0x421d50
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
jne 0x421b9d
and edx, 1
jne 0x421b95
mov edi, dword [esp + 0x840]
mov edx, 0x111c
add edi, 0x3058
test edi, 1
jne 0x421d33
test edi, 2
jne 0x421d23
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
jne 0x421b88
and edx, 1
jne 0x421b80
mov eax, dword [esp + 0x840]
mov edx, 0x20
add eax, 0x4174
test al, 1
jne 0x421d07
test al, 2
jne 0x421cf7
mov ebx, edx
xor ecx, ecx
and ebx, 0xfffffffc
mov dword [eax + ecx], 0
add ecx, 4
cmp ecx, ebx
jb 0x421b05
add eax, ecx
test dl, 2
je 0x421b22
mov word [eax], 0
add eax, 2
and edx, 1
je 0x421b2a
mov byte [eax], 0
mov ebx, dword [esp + 0x840]
mov dword [ebx + 0x2fd8], 0
mov dword [ebx + 0x2fdc], 0
mov dword [ebx + 0x41a0], 0x64
mov dword [ebx + 0x415c], 0x64
mov byte [ebx + 0x4be0], 0xa
mov byte [ebx + 0x419d], 0
mov dword [ebx + 0x416c], 0x10000
mov dword [ebx + 0x421c], 1
jmp 0x420f4f
mov byte [edi], 0
jmp 0x421add
mov word [edi], 0
add edi, 2
jmp 0x421ad4
mov byte [edi], 0
jmp 0x421a98
mov word [edi], 0
add edi, 2
jmp 0x421a8f
lea ecx, [esp + 0xa0]
mov dword [esp + 0xc], ebx
mov esi, eax
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x464c]
lea eax, [esi + eax*2 + 0x43cc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call fcn.00426270
add dword [esp + 0x5c], eax
mov eax, dword [esi + 0x1200]
test eax, eax
jle 0x421dd2
mov edx, dword [esp + 0x840]
mov dword [esp + 0x58], eax
mov ecx, dword [edx + 0x464c]
mov edi, dword [edx + 0x1684]
mov dword [esp + 0x3c], ecx
lea edx, [edx + ecx*2 + 0x43cc]
mov esi, ecx
mov ecx, dword [esp + 0x840]
add esi, eax
mov dword [esp + 0x54], edi
lea esi, [ecx + esi*2 + 0x43cc]
mov ecx, edi
sub ecx, dword [esp + 0x3c]
mov eax, esi
mov dword [esp + 0x68], ecx
movsx edi, word [edx + ecx*2 - 0x2fc8]
movsx esi, word [edx]
add esi, edi
sar esi, 1
mov word [edx + ecx*2 - 0x2fc8], si
add edx, 2
cmp edx, eax
jne 0x421c31
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
jmp 0x4211f5
mov ebx, dword [esp + 0x844]
mov eax, ecx
mov dword [esp + 0x64], 1
mov dword [ebx + 0x18], 0xa
mov ebx, dword [ebx + 0x24]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x844]
mov dword [ebx + 0x24], 0
jmp 0x420897
lea edi, [esi + 0x4670]
add esi, 0x16a8
mov eax, 0x12c
test edi, 1
jne 0x421d85
test edi, 2
jne 0x421d71
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x421cd2
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x421cdd
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov ecx, dword [esp + 0x840]
mov eax, dword [ecx]
mov dword [ecx + 0x2fc8], eax
mov eax, dword [ecx + 4]
mov dword [ebx + 4], eax
jmp 0x42181e
mov word [eax], 0
sub edx, 2
add eax, 2
jmp 0x421afe
mov ebx, dword [esp + 0x840]
mov dl, 0x1f
mov eax, ebx
mov byte [ebx + 0x4174], 0
add eax, 0x4175
jmp 0x421af6
mov word [edi], 0
sub edx, 2
add edi, 2
jmp 0x421ac2
mov ebx, dword [esp + 0x840]
mov dl, 0x1b
mov edi, ebx
mov byte [ebx + 0x3058], 0
add edi, 0x3059
jmp 0x421ab6
mov word [edi], 0
sub edx, 2
add edi, 2
jmp 0x421a7d
mov byte [ebx + 0x4bf0], 0
add edi, 1
mov dl, 0x5b
jmp 0x421a71
movzx edx, word [esi]
sub eax, 2
add esi, 2
mov word [edi], dx
add edi, 2
jmp 0x421cba
mov edx, dword [esp + 0x840]
movzx eax, byte [edx + 0x16a8]
mov edi, edx
mov esi, edx
add edi, 0x4671
add esi, 0x16a9
mov byte [edx + 0x4670], al
mov eax, 0x12b
jmp 0x421cae
movzx eax, byte [esi]
mov esi, edx
add esi, 0x16a9
mov byte [edi], al
mov edi, edx
mov eax, 0x12b
add edi, 0x4671
jmp 0x42187c
mov edi, dword [esi + 0x1684]
jmp 0x4211f5
movzx edx, word [esi]
sub eax, 2
add esi, 2
mov word [edi], dx
add edi, 2
jmp 0x421888