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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x98]
cmp eax, dword [ecx + 8]
jbe 0x643baf
sub esp, 0x118
mov eax, 0
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov byte [esp + 0x33], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov eax, dword [0xaccaac]
test eax, eax
je 0x642bdb
lea eax, [0x847f20]
mov dword [esp + 0x114], eax
lea eax, [esp + 0x124]
mov dword [esp + 0x110], eax
lea eax, [esp + 0x128]
mov dword [esp + 0x10c], eax
mov byte [esp + 0x33], 1
mov eax, dword [esp + 0x120]
setne cl
mov byte [esp + 0x32], cl
mov edx, dword [eax + 8]
test edx, edx
jne 0x642d7f
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
test edx, edx
jne 0x642d6d
mov eax, dword [esp + 0x120]
mov edx, dword [eax + 4]
mov eax, dword [eax]
test edx, edx
jne 0x642d15
lea eax, [0x801ad2]
mov edx, 3
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], eax
lea ecx, [0x7b28c0]
mov dword [esp], ecx
call fcn.0040c160
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], eax
mov dword [eax + 4], 0x15
lea ecx, [0x80daab]
mov dword [eax], ecx
lea ecx, [0x7c99c0]
mov dword [esp], ecx
call fcn.0040c160
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov eax, dword [0xaec8c0]
test eax, eax
jne 0x642d07
mov ecx, dword [esp + 0x58]
mov dword [edi], ecx
lea ecx, [0x8ac7c0]
mov dword [edi + 0x10], ecx
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x642cee
mov eax, dword [esp + 0xa8]
mov dword [edi + 0x14], eax
mov dword [esp + 0x124], 0
lea eax, [0x8acc20]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], edi
movzx eax, byte [esp + 0x32]
test al, 1
jne 0x642ccb
add esp, 0x118
ret
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00693890
jmp 0x642cc4
lea ecx, [edi + 0x14]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0xa8]
call fcn.00466130
mov edi, edx
jmp 0x642c9b
mov eax, dword [esp + 0x58]
call fcn.00466130
jmp 0x642c7e
mov dword [esp + 0x6c], eax
lea ecx, [edx - 1]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add ecx, eax
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.004ed270
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], 0
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov dword [esp + 8], 1
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044d960
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x642c21
mov ecx, dword [edx + 0x10]
mov dword [esp], eax
call ecx
movzx ecx, byte [esp + 0x32]
jmp 0x642c02
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
call fcn.00641640
lea edi, [esp + 0xe4]
lea esi, [esp + 4]
call fcn.004668be
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00643bc0
mov eax, dword [esp + 8]
mov dword [esp + 0x88], eax
mov byte [esp + 0x2f], 0
lea edi, [esp + 0xf8]
xor eax, eax
call fcn.004663db
lea eax, [0x6938e0]
mov dword [esp + 0xf8], eax
lea eax, [esp + 0x2f]
mov dword [esp + 0xfc], eax
lea eax, [esp + 0x120]
mov dword [esp + 0x100], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x104], eax
lea eax, [esp + 0xb4]
mov dword [esp + 0x108], eax
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x642e48
mov edx, ebx
mov ebx, dword [esp + 0xb8]
test ebx, ebx
jg 0x6431c4
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xbc]
lea ebp, [ecx + 1]
cmp ebx, ebp
jb 0x643187
lea ebx, [ecx + 1]
mov dword [esp + 0xb8], ebx
mov ebx, dword [0xaec8c0]
mov eax, dword [esp + 0x120]
lea edi, [edx + ecx*4]
test ebx, ebx
jne 0x64317d
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edi, [esp + 8]
lea esi, [esp + 0xe4]
call fcn.004668be
call fcn.006414d0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x60], eax
test ecx, ecx
jne 0x642fc1
mov edx, dword [esp + 0x120]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb4]
test ecx, ecx
jbe 0x643b6f
mov ecx, dword [ebp]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.006429f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
movzx edx, byte [esp + 0x18]
movzx ebx, byte [esp + 0x19]
test dl, dl
je 0x642f6c
mov edx, dword [esp + 0x120]
mov ebp, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
test ebp, ebp
je 0x642e46
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x68], eax
mov byte [esp + 0x30], bl
mov eax, dword [ebp + 0x10]
mov dword [esp], edx
call eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x3c]
movzx ebx, byte [esp + 0x30]
jmp 0x642e46
mov eax, dword [esp + 0x60]
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
movzx eax, byte [esp + 0x32]
test al, 1
jne 0x642f9e
add esp, 0x118
ret
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00693890
jmp 0x642f97
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x2f], 1
lea edi, [esp + 0xd0]
lea esi, [esp + 0xe4]
call fcn.004668be
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
test ecx, 0x80000000
je 0x643168
shl ecx, 1
mov ebp, eax
shr eax, 0x1f
or eax, ecx
mov ecx, ebp
shl ebp, 1
mov esi, eax
shl eax, 1
shr ebp, 0x1f
or ebp, eax
mov eax, ebp
add ebp, 0xd7b17f80
shr esi, 0x1f
add eax, 0xd7b17f80
adc esi, 0xd
mov dword [esp + 0x7c], ebx
test esi, esi
sete al
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and eax, ebp
test al, al
je 0x6430b0
test ecx, 0x3fffffff
jne 0x6430b0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xf8]
mov dword [esp], eax
mov dword [esp + 4], ebx
lea edx, [esp + 0xf8]
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
movzx eax, byte [esp + 0x32]
test al, 1
jne 0x64308d
add esp, 0x118
ret
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00693890
jmp 0x643086
mov eax, dword [edx]
call eax
movzx eax, byte [esp]
test al, al
jne 0x6430c5
mov ebx, dword [esp + 0x7c]
jmp 0x643040
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x54], ecx
lea edx, [0x7bd560]
mov dword [esp], edx
call fcn.0040c160
mov eax, dword [esp + 4]
mov dword [esp + 0xa0], eax
mov dword [esp], 0
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 8], ecx
lea ecx, [0x81c28c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0x31
call fcn.0044d960
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0xa0]
mov dword [edi + 4], ecx
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x643161
mov dword [edi], eax
mov byte [edi + 8], 1
lea eax, [0x8acb44]
mov ebx, edi
jmp 0x643044
call fcn.00466130
jmp 0x643150
mov ebp, dword [esp + 0xd8]
mov esi, dword [esp + 0xdc]
mov ecx, eax
jmp 0x643020
call fcn.00466130
jmp 0x642e9c
lea eax, [0x7f8880]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.0044a600
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], edx
jmp 0x642e77
mov dword [esp + 0x64], eax
mov dword [esp + 0x40], ecx
mov byte [esp + 0x31], dl
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x1c]
mov dword [esp], eax
lea eax, [0x8055e8]
mov dword [esp + 4], eax
mov dword [esp + 8], 8
call fcn.00617d50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x643a6e
mov dword [esp + 0x70], ecx
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x120]
mov edx, dword [edx + 8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.005b9380
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ecx, ecx
jne 0x643916
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x120]
mov ebx, dword [edx + 0x48]
mov ebp, dword [edx + 0x44]
test ebx, ebx
je 0x64390f
mov edx, dword [edx + 8]
mov esi, dword [edx + 0x14]
cmp dword [edx + 0x18], ebx
je 0x6438ee
mov ecx, 1
test cl, cl
jne 0x6438ad
xor ecx, ecx
xor edx, edx
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb4]
test ebx, ebx
jbe 0x643b99
mov dword [esp + 0x78], ecx
mov dword [esp + 0x48], edx
mov eax, dword [ebp]
mov dword [esp + 0x74], eax
call fcn.0040cc40
mov eax, dword [esp]
mov dword [esp + 0x9c], eax
lea ecx, [0x7f20a0]
mov dword [esp], ecx
call fcn.0040c160
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov dword [edi + 4], eax
mov eax, dword [0xaec8c0]
test eax, eax
jne 0x64389f
mov ecx, dword [esp + 0x64]
mov dword [edi], ecx
mov ecx, dword [0xaec8c0]
mov eax, dword [esp + 0x60]
test ecx, ecx
jne 0x643871
mov dword [edi + 0x74], eax
mov ecx, dword [esp + 0x5c]
mov dword [edi + 8], ecx
mov ecx, dword [esp + 0x9c]
mov dword [edi + 0x1c], ecx
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x48], ecx
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x643858
mov ecx, dword [esp + 0x78]
mov dword [edi + 0x44], ecx
mov ecx, dword [0xaec8c0]
mov ebx, dword [esp + 0x74]
mov eax, dword [ebx + 0x70]
test ecx, ecx
jne 0x643845
mov dword [edi + 0x70], eax
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebx + 0x78]
mov dword [edi + 0x78], ecx
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x643832
mov dword [edi + 0x7c], eax
mov dword [esp + 0x120], edi
movzx eax, byte [esp + 0x31]
test al, al
je 0x643364
mov edx, dword [ebx + 0x28]
test edx, edx
jne 0x643726
mov edx, dword [esp + 0x88]
mov eax, dword [edx]
mov ecx, dword [esp + 0x120]
mov dword [esp], ecx
call eax
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
lea ebx, [ecx - 1]
cmp ebx, ecx
jae 0x643b92
mov eax, dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x120]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.006413c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x643638
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x120]
mov esi, dword [esp + 0x11c]
mov edi, dword [esi + 8]
test edi, edi
je 0x64362d
mov esi, dword [edi]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov edx, edi
call esi
mov eax, dword [esp + 0x10]
mov ecx, dword [0xacd2e4]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0x10]
mov dword [esp + 0xa4], esi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x84], edi
cmp dword [0xacd2e0], eax
je 0x6435a8
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x28]
cmp ecx, 0xffffffff
sete dl
mov ebx, dword [eax + 0x2c]
cmp ebx, 0xffffffff
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x643584
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
lea edx, [0x7ad4a0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409ba0
mov eax, dword [0xac4a64]
mov ecx, dword [0xac4a60]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x800
call fcn.0049cd30
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov ecx, dword [ecx + 0x10]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x642e57
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xa4]
mov dword [esp], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 4], ecx
lea edx, [esp + 0xf8]
call eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
lea ebp, [0x8acc20]
cmp ebp, ecx
jne 0x643b76
mov edx, dword [esp + 0x44]
mov dword [eax + 0xc], edx
mov edx, dword [0xaec8c0]
test edx, edx
jne 0x643576
mov edx, dword [esp + 0x70]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], ebx
movzx eax, byte [esp + 0x32]
test al, 1
jne 0x643553
add esp, 0x118
ret
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00693890
jmp 0x64354c
lea edi, [eax + 8]
mov eax, dword [esp + 0x70]
call fcn.00466130
jmp 0x643529
test ebx, ebx
setl dl
cmp ecx, 0x800
setbe cl
test ebx, ebx
sete bl
and ecx, ebx
or edx, ecx
test dl, dl
jne 0x643460
jmp 0x6434b4
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.00403800
movzx eax, byte [esp + 0xc]
test al, al
jne 0x6435d8
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x84]
jmp 0x64343a
mov eax, dword [esp + 0x60]
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
movzx eax, byte [esp + 0x32]
test al, 1
jne 0x64360a
add esp, 0x118
ret
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00693890
jmp 0x643603
lea edi, [0x847fec]
jmp 0x6433ed
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x120]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x98], eax
nop
lea ecx, [0x80466c]
mov dword [esp], ecx
mov dword [esp + 4], 7
call fcn.00619f10
mov eax, dword [esp + 8]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x54], ecx
lea edx, [0x793b80]
mov dword [esp], edx
call fcn.0040c160
mov edi, dword [esp + 4]
mov dword [esp + 0x90], edi
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov eax, dword [0xaec8c0]
test eax, eax
jne 0x643718
mov eax, dword [esp + 0xa4]
mov dword [edi], eax
lea eax, [0x7dcd80]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xc], ecx
call fcn.00411310
mov edi, dword [esp + 0x10]
mov dword [edi + 4], 1
mov dword [edi + 8], 1
mov eax, dword [0xaec8c0]
test eax, eax
jne 0x643707
mov eax, dword [esp + 0x90]
mov dword [edi], eax
jmp 0x6433bf
mov eax, dword [esp + 0x90]
call fcn.00466130
jmp 0x6433bf
mov eax, dword [esp + 0xa4]
call fcn.00466130
jmp 0x6436b1
mov eax, dword [edx]
call eax
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 4]
mov ebx, dword [esp]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov dword [eax + 0x20], ebx
mov ebx, dword [0xaec8c0]
test ebx, ebx
jne 0x64381b
mov dword [eax + 0x24], ecx
test ebp, ebp
jne 0x643778
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x74]
mov ebx, dword [ecx + 0x2c]
mov ecx, dword [ecx + 0x30]
mov dword [eax + 0x2c], ebx
mov dword [eax + 0x30], ecx
jmp 0x643364
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
test ecx, ecx
jne 0x6437f2
mov eax, dword [esp + 0xf8]
mov dword [esp], esi
mov dword [esp + 4], edi
lea edx, [esp + 0xf8]
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
movzx eax, byte [esp + 0x32]
test al, 1
jne 0x6437cf
add esp, 0x118
ret
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00693890
jmp 0x6437c8
mov dword [esp + 0x80], edi
mov dword [esp + 0xa4], esi
mov ecx, dword [ecx + 0x10]
mov dword [esp], eax
call ecx
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x80]
jmp 0x643786
lea ebx, [eax + 0x24]
mov eax, edi
mov edi, ebx
mov edx, eax
mov eax, ecx
call fcn.00466130
mov edi, edx
jmp 0x643758
lea ecx, [edi + 0x7c]
mov edx, edi
mov edi, ecx
call fcn.00466130
mov edi, edx
jmp 0x643349
lea ecx, [edi + 0x70]
mov edx, edi
mov edi, ecx
call fcn.00466130
mov edi, edx
jmp 0x64332f
lea ecx, [edi + 0x44]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0x78]
call fcn.00466130
mov edi, edx
jmp 0x643317
lea ecx, [edi + 0x74]
mov edx, edi
mov edi, ecx
call fcn.00466130
lea edi, [edx + 8]
mov eax, dword [esp + 0x5c]
call fcn.00466130
lea edi, [edx + 0x1c]
mov eax, dword [esp + 0x9c]
call fcn.00466130
mov edi, edx
jmp 0x6432fb
mov eax, dword [esp + 0x64]
call fcn.00466130
jmp 0x6432d5
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
call fcn.005b5b20
mov eax, dword [esp + 8]
test eax, eax
je 0x6438d0
mov edx, dword [eax + 4]
test edx, edx
je 0x6438df
xor eax, eax
xor ecx, ecx
mov edx, eax
mov eax, dword [esp + 0x5c]
jmp 0x643274
mov edx, dword [esp + 0x120]
mov ecx, dword [edx + 0x44]
mov eax, dword [edx + 0x48]
jmp 0x6438d4
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.004028f0
movzx ecx, byte [esp + 0xc]
xor ecx, 1
mov eax, dword [esp + 0x5c]
jmp 0x643268
xor ecx, ecx
jmp 0x643268
mov dword [esp + 0x8c], edx
mov dword [esp + 0xa4], ebx
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
test ecx, ecx
jne 0x643a61
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call fcn.00409950
mov eax, dword [esp + 8]
lea ecx, [0x79f7e0]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x643a5a
mov edx, dword [eax + 4]
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xcc], eax
lea eax, [0x8179a8]
mov dword [esp], eax
mov dword [esp + 4], 0x26
lea eax, [esp + 0xc0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004d94d0
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], edx
lea edx, [esp + 0xf8]
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
movzx eax, byte [esp + 0x32]
test al, 1
jne 0x643a37
add esp, 0x118
ret
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00693890
jmp 0x643a30
mov edx, eax
jmp 0x6439a0
mov ecx, dword [ecx + 0x10]
mov dword [esp], eax
call ecx
jmp 0x643936
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
test ecx, ecx
jne 0x643b62
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.00409840
mov eax, dword [esp + 4]
lea ecx, [0x79eda0]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
lea eax, [0x815cd4]
mov dword [esp], eax
mov dword [esp + 4], 0x23
lea eax, [esp + 0xac]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004d94d0
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], edx
lea edx, [esp + 0xf8]
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
movzx eax, byte [esp + 0x32]
test al, 1
jne 0x643b3f
add esp, 0x118
ret
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00693890
jmp 0x643b38
mov ecx, dword [ecx + 0x10]
mov dword [esp], eax
call ecx
jmp 0x643a80
xor eax, eax
call fcn.004661b0
mov dword [esp], ecx
lea eax, [0x7d0ec0]
mov dword [esp + 4], eax
lea eax, [0x7ad080]
mov dword [esp + 8], eax
call fcn.00409620
mov eax, ebx
call fcn.004661b0
xor eax, eax
mov ecx, ebx
call fcn.004661b0
nop
call fcn.00434680
add esp, 0x118
ret
call fcn.00464bd0
jmp fcn.00642b40