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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xfc]
cmp eax, dword [ecx + 8]
jbe 0x643115
sub esp, 0x17c
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], 0
mov eax, dword [esp + 0x194]
mov dword [esp], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 4], eax
call fcn.00643330
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
test ebx, ebx
jne 0x64202e
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0xe4], eax
lea edi, [esp + 0x134]
xor eax, eax
call fcn.0046336b
mov ecx, dword [esp + 0x184]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0x188]
mov dword [esp], ebx
call edx
movzx ecx, byte [esp + 0x18]
mov byte [esp + 0x27], cl
lea edi, [esp + 0x134]
lea esi, [esp + 4]
call fcn.0046384e
lea edi, [esp + 0x120]
lea esi, [esp + 0x134]
call fcn.0046384e
movzx ecx, byte [esp + 0x27]
test cl, cl
je 0x641beb
lea edi, [esp + 0x10c]
lea esi, [esp + 0x120]
call fcn.0046384e
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
test ecx, 0x80000000
je 0x641bb9
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or eax, ecx
mov ecx, edx
shl edx, 1
mov ebx, eax
shl eax, 1
shr edx, 0x1f
or edx, eax
mov eax, edx
add edx, 0xd7b17f80
shr ebx, 0x1f
add eax, 0xd7b17f80
adc ebx, 0xd
jmp 0x641bc9
mov edx, dword [esp + 0x114]
mov ebx, dword [esp + 0x118]
mov ecx, eax
test ebx, ebx
sete al
test edx, edx
sete dl
and eax, edx
test al, al
je 0x641be4
test ecx, 0x3fffffff
sete al
jmp 0x641be6
xor eax, eax
xor eax, 1
jmp 0x641bed
xor eax, eax
test al, al
je 0x641cad
mov eax, dword [esp + 0x18c]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x190]
mov dword [esp], edx
lea edi, [esp + 4]
lea esi, [esp + 0x120]
call fcn.0046384e
mov ecx, dword [esp + 0x70]
call ecx
mov eax, dword [esp + 0x18c]
test byte [eax], al
lea edi, [esp + 0x148]
lea esi, [0x8e70f0]
call fcn.0046384e
lea edi, [esp + 0x15c]
xor eax, eax
call fcn.00463368
lea eax, [0x6432e0]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x160], eax
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x164], ecx
lea edi, [esp + 0x168]
lea esi, [esp + 0x148]
call fcn.0046384e
lea ecx, [esp + 0x15c]
mov dword [esp + 0xb4], ecx
lea ecx, [esp + 0xa8]
mov dword [esp], ecx
call fcn.00435e50
test eax, eax
jne 0x642022
mov eax, dword [0x8e5a1c]
mov ecx, dword [esp + 0x184]
lea edx, [0x7524cc]
cmp ecx, edx
jne 0x641ce8
mov dword [esp], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004037d0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x641e6c
lea eax, [0x68f700]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.004048e0
mov eax, dword [esp + 8]
mov dword [esp + 0xe8], eax
lea ecx, [0x68f9c0]
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.004048e0
mov eax, dword [esp + 8]
mov dword [esp + 0xec], eax
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
lea ecx, [0x643250]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], eax
lea ecx, [esp + 0x1a4]
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x108], ecx
lea edx, [esp + 0xfc]
mov dword [esp + 0x90], edx
lea edx, [esp + 0x84]
mov dword [esp], edx
call fcn.00435e50
test eax, eax
jne 0x642016
lea eax, [0x6b0ce0]
mov dword [esp], eax
call fcn.0040b800
mov eax, dword [esp + 4]
lea ecx, [0x643120]
mov dword [eax], ecx
mov ecx, dword [esp + 0x184]
mov dword [eax + 4], ecx
mov ecx, dword [0x90e260]
test ecx, ecx
jne 0x641de5
mov ecx, dword [esp + 0x188]
mov dword [eax + 8], ecx
jmp 0x641dff
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x188]
call fcn.004630d0
mov eax, ecx
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x18c]
mov dword [eax + 0xc], edx
mov edx, dword [0x90e260]
test edx, edx
jne 0x641e33
mov edx, dword [esp + 0x190]
mov dword [eax + 0x10], edx
mov ebx, dword [esp + 0xe8]
mov dword [eax + 0x14], ebx
mov ebx, dword [esp + 0xec]
mov dword [eax + 0x18], ebx
jmp 0x641e64
lea edi, [eax + 0x10]
mov edx, eax
mov eax, dword [esp + 0x190]
call fcn.004630d0
lea edi, [edx + 0x14]
mov eax, dword [esp + 0xe8]
call fcn.004630d0
lea edi, [edx + 0x18]
mov eax, dword [esp + 0xec]
call fcn.004630d0
mov eax, edx
mov dword [esp], eax
call fcn.00442540
lea eax, [0x696c40]
mov dword [esp], eax
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x4c]
lea edx, [ecx + 6]
mov dword [esp + 0x54], edx
mov dword [esp + 8], edx
call fcn.0044b780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x54]
cmp ecx, 1
jb 0x641ea5
mov edx, 1
jmp 0x641ee2
lea ecx, [0x696c40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 1
call fcn.0044b8c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
inc ecx
mov ebx, edx
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x50], edx
mov byte [eax], 5
mov ebx, dword [esp + 0x180]
mov ebp, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x18]
test ebp, ebp
je 0x641fcd
mov edi, dword [ebx + 0x24]
test edi, edi
je 0x641fcd
cmp ebp, 0xff
jg 0x641f76
mov dword [esp + 0x6c], ebp
mov dword [esp + 0xf4], esi
lea edi, [edx + 1]
cmp ecx, edi
jae 0x641f68
lea ebx, [0x696c40]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edi
call fcn.0044b8c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea edi, [ecx + 1]
mov ebx, dword [esp + 0x180]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0xf4]
mov ecx, edx
mov edx, dword [esp + 0x50]
xchg ebp, ebx
mov byte [eax + edx], bl
xchg ebp, ebx
xor edx, edx
jmp 0x6430b3
lea eax, [0x6a08e0]
mov dword [esp], eax
call fcn.0040b800
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1f
lea ecx, [0x6da040]
mov dword [eax], ecx
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea ecx, [0x751118]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
call fcn.00436440
add esp, 0x17c
ret
lea ebp, [edx + 2]
cmp ecx, ebp
jae 0x64200e
lea ebx, [0x696c40]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
call fcn.0044b8c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebp, [ecx + 2]
mov ebx, dword [esp + 0x180]
mov ecx, edx
mov edx, dword [esp + 0x50]
mov word [eax + edx], 1
jmp 0x64205e
call fcn.00436440
add esp, 0x17c
ret
call fcn.00436440
add esp, 0x17c
ret
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], ebp
mov dword [esp + 0x1a8], esi
call fcn.00436440
add esp, 0x17c
ret
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0xf0], eax
mov edx, dword [esp + 0x18c]
mov ebx, dword [edx + 0x2c]
mov esi, dword [esp + 0x190]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
call ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
test edx, edx
jne 0x642562
mov edx, dword [esp + 0x54]
cmp edx, 2
jb 0x64308e
lea eax, [0x69e840]
mov dword [esp], eax
mov ecx, dword [esp + 0x18c]
mov dword [esp + 4], ecx
call fcn.004092e0
mov eax, dword [esp + 8]
mov dword [esp], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xf0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 2
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 2
call fcn.0046c0f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
test edx, edx
jne 0x642556
mov edx, dword [esp + 0x50]
test edx, edx
jbe 0x643085
mov ebx, dword [esp + 0xf0]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x642495
cmp edx, 1
jbe 0x643079
movzx eax, byte [ebx + 1]
cmp eax, 0xff
je 0x64243e
mov ecx, dword [esp + 0x180]
mov edx, dword [ecx + 0x24]
test edx, edx
je 0x642201
mov dword [esp + 0x68], eax
lea eax, [0x6a1dc0]
mov dword [esp], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 4], eax
call fcn.004092e0
mov eax, dword [esp + 0x180]
mov edx, dword [eax + 0x24]
mov ecx, dword [edx]
mov ebx, dword [esp + 0x184]
mov dword [esp], ebx
mov ebx, dword [esp + 0x188]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x190]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x10], ebp
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
test edx, edx
jne 0x642432
mov ecx, dword [esp + 0x180]
mov ebx, dword [esp + 0xf0]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x54]
cmp ecx, 3
jb 0x642213
mov edx, 3
jmp 0x64225c
mov dword [esp + 0x64], eax
lea eax, [0x696c40]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 3
call fcn.0044b8c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add ecx, 3
mov ebx, eax
mov eax, dword [esp + 0x64]
mov ebp, edx
mov edx, ecx
mov ecx, ebp
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
mov byte [ebx], 5
mov byte [ebx + 1], al
mov byte [ebx + 2], 0
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ebp, dword [esp + 0x4c]
mov dword [esp + 4], ebp
call fcn.0059cf80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x6422b6
cmp ecx, 4
je 0x6422ad
cmp ecx, 0x10
jne 0x64302f
xor edx, edx
jmp 0x64303d
mov edx, eax
mov ebx, ecx
jmp 0x642d3d
mov eax, dword [esp + 0x4c]
cmp eax, 0xff
jg 0x6423db
mov ecx, dword [esp + 0x50]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x54]
cmp ebx, edx
jb 0x6422dd
mov ebp, dword [esp + 0xf0]
jmp 0x64231d
lea eax, [0x696c40]
mov dword [esp], eax
mov ebp, dword [esp + 0xf0]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.0044b8c0
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x4c]
mov ebp, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x50]
mov byte [ebp + ecx], 3
lea ecx, [edx + 1]
cmp ebx, ecx
jae 0x642362
mov dword [esp + 0x50], edx
lea eax, [0x696c40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.0044b8c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov byte [ebp + edx], al
lea edx, [eax + ecx]
mov dword [esp + 0x50], edx
cmp ebx, edx
jae 0x6423a3
mov dword [esp + 0x6c], ecx
lea eax, [0x696c40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.0044b8c0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x54], ebx
mov dword [esp + 0xf0], ebp
add ecx, ebp
mov dword [esp], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00463a60
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xf0]
jmp 0x64256e
lea eax, [0x6a08e0]
mov dword [esp], eax
call fcn.0040b800
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xd
lea ecx, [0x6d0dec]
mov dword [eax], ecx
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea ecx, [0x751118]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
call fcn.00436440
add esp, 0x17c
ret
call fcn.00436440
add esp, 0x17c
ret
lea eax, [0x6a08e0]
mov dword [esp], eax
call fcn.0040b800
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x24
lea ecx, [0x6dc31b]
mov dword [eax], ecx
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea ecx, [0x751118]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
call fcn.00436440
add esp, 0x17c
ret
xchg ebp, ebx
movzx eax, bl
xchg ebp, ebx
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.00478a50
mov dword [esp], 0
lea eax, [0x6d89c4]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
call fcn.0044efe0
mov eax, dword [esp + 0x14]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
lea edx, [0x6a08e0]
mov dword [esp], edx
call fcn.0040b800
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov dword [edi + 4], eax
mov eax, dword [0x90e260]
test eax, eax
jne 0x642514
mov eax, dword [esp + 0xe0]
mov dword [edi], eax
jmp 0x642520
mov eax, dword [esp + 0xe0]
call fcn.004630d0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea eax, [0x751118]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], edi
call fcn.00436440
add esp, 0x17c
ret
call fcn.00436440
add esp, 0x17c
ret
call fcn.00436440
add esp, 0x17c
ret
lea ebx, [eax + 2]
cmp ecx, ebx
jae 0x6425aa
mov dword [esp + 0x50], eax
lea ebp, [0x696c40]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.0044b8c0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + 2]
mov eax, dword [esp + 0x50]
mov dword [esp + 0xf0], edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ecx
mov ebp, dword [esp + 0x44]
mov esi, ebp
sar ebp, 8
xchg ebp, ebx
mov byte [edx + eax], bl
xchg ebp, ebx
xchg esi, ebx
mov byte [edx + eax + 1], bl
xchg esi, ebx
mov eax, dword [esp + 0x18c]
mov eax, dword [eax + 0x2c]
mov ebp, dword [esp + 0x190]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
test edx, edx
jne 0x642ce5
mov edx, dword [esp + 0x54]
cmp edx, 4
jb 0x642d33
lea eax, [0x69e840]
mov dword [esp], eax
mov ecx, dword [esp + 0x18c]
mov dword [esp + 4], ecx
call fcn.004092e0
mov eax, dword [esp + 8]
mov dword [esp], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xf0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 4
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 4
call fcn.0046c0f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
test edx, edx
jne 0x642cd9
mov edx, dword [esp + 0x50]
test edx, edx
jbe 0x642d2a
mov ebx, dword [esp + 0xf0]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x642c18
cmp edx, 1
jbe 0x642d1e
movzx ebp, byte [ebx + 1]
test ebp, ebp
jne 0x642b5f
cmp edx, 2
jbe 0x642d12
movzx eax, byte [ebx + 2]
test al, al
jne 0x642b08
lea eax, [0x6aede0]
mov dword [esp], eax
call fcn.0040b800
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x50]
cmp ecx, 3
jbe 0x642d06
mov dword [esp + 0xf8], eax
mov ecx, dword [esp + 0xf0]
movzx edx, byte [ecx + 3]
cmp dl, 1
je 0x6428eb
cmp dl, 3
je 0x64283f
cmp dl, 4
jne 0x642782
lea eax, [0x696c40]
mov dword [esp], eax
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0x10
call fcn.0044b780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xf8]
mov dword [ecx + 0xc], 0x10
mov dword [ecx + 0x10], 0x10
mov edx, dword [0x90e260]
test edx, edx
jne 0x642770
mov dword [ecx + 8], eax
jmp 0x642778
lea edi, [ecx + 8]
call fcn.004630d0
mov ebx, 0x12
jmp 0x64293e
movzx eax, dl
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.00478a50
mov dword [esp], 0
lea eax, [0x6d4cf6]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x15
call fcn.0044efe0
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
lea edx, [0x6a08e0]
mov dword [esp], edx
call fcn.0040b800
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov eax, dword [0x90e260]
test eax, eax
jne 0x6427fd
mov eax, dword [esp + 0xd4]
mov dword [edi], eax
jmp 0x642809
mov eax, dword [esp + 0xd4]
call fcn.004630d0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea eax, [0x751118]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], edi
call fcn.00436440
add esp, 0x17c
ret
lea eax, [0x69e840]
mov dword [esp], eax
mov ecx, dword [esp + 0x18c]
mov dword [esp + 4], ecx
call fcn.004092e0
mov eax, dword [esp + 8]
mov dword [esp], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xf0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 1
call fcn.0046c0f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x6428bb
mov eax, dword [esp + 0xf0]
movzx ebx, byte [eax]
add ebx, 2
mov ecx, dword [esp + 0xf8]
jmp 0x64293e
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], edx
call fcn.00436440
add esp, 0x17c
ret
lea eax, [0x696c40]
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 4
call fcn.0044b780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xf8]
mov dword [ecx + 0xc], 4
mov dword [ecx + 0x10], 4
mov edx, dword [0x90e260]
test edx, edx
jne 0x642931
mov dword [ecx + 8], eax
jmp 0x642939
lea edi, [ecx + 8]
call fcn.004630d0
mov ebx, 6
mov dword [esp + 0x48], ebx
mov edx, dword [esp + 0x54]
cmp ebx, edx
jg 0x642959
ja 0x642cff
mov eax, dword [esp + 0xf0]
jmp 0x642979
lea eax, [0x696c40]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.0044b780
mov edx, dword [esp + 0xc]
mov eax, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x54], edx
mov dword [esp + 0xf0], eax
lea ecx, [0x69e840]
mov dword [esp], ecx
mov ecx, dword [esp + 0x18c]
mov dword [esp + 4], ecx
call fcn.004092e0
mov eax, dword [esp + 8]
mov dword [esp], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.0046c0f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], ecx
test edx, edx
jne 0x642afc
mov ebx, dword [esp + 0xf8]
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
test ebp, ebp
je 0x642a49
mov ecx, dword [esp + 0x48]
cmp ecx, esi
jge 0x642a12
mov eax, ecx
jmp 0x642a16
mov eax, ecx
mov ecx, esi
mov edx, dword [esp + 0xf0]
cmp edx, ebp
je 0x642aa9
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00463a60
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf8]
jmp 0x642aa9
mov eax, dword [esp + 0x48]
lea ecx, [eax - 2]
mov edx, dword [esp + 0x54]
cmp edx, ecx
jb 0x642cfa
mov dword [esp], 0
mov eax, dword [esp + 0xf0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044f290
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xf8]
mov dword [edi + 4], ecx
mov ecx, dword [0x90e260]
test ecx, ecx
jne 0x642a97
mov dword [edi], eax
jmp 0x642a9c
call fcn.004630d0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xf0]
mov ebx, edi
lea ebp, [eax - 2]
cmp eax, ebp
jbe 0x642cf1
movzx ecx, byte [eax + edx - 2]
shl ecx, 8
movzx eax, byte [eax + edx - 1]
or ecx, eax
mov dword [ebx + 0x14], ecx
lea eax, [0x751f50]
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], ebx
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], 0
call fcn.00436440
add esp, 0x17c
ret
call fcn.00436440
add esp, 0x17c
ret
lea eax, [0x6a08e0]
mov dword [esp], eax
call fcn.0040b800
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x6d5d6e]
mov dword [eax], ecx
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea ecx, [0x751118]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
call fcn.00436440
add esp, 0x17c
ret
mov dword [esp], ebp
call fcn.006434e0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x6d180a]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xe
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044efe0
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
lea edx, [0x6a08e0]
mov dword [esp], edx
call fcn.0040b800
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov eax, dword [0x90e260]
test eax, eax
jne 0x642bd6
mov eax, dword [esp + 0xd8]
mov dword [edi], eax
jmp 0x642be2
mov eax, dword [esp + 0xd8]
call fcn.004630d0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea eax, [0x751118]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], edi
call fcn.00436440
add esp, 0x17c
ret
xchg ebp, ebx
movzx eax, bl
xchg ebp, ebx
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.00478a50
mov dword [esp], 0
lea eax, [0x6d89c4]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
call fcn.0044efe0
mov eax, dword [esp + 0x14]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
lea edx, [0x6a08e0]
mov dword [esp], edx
call fcn.0040b800
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov eax, dword [0x90e260]
test eax, eax
jne 0x642c97
mov eax, dword [esp + 0xdc]
mov dword [edi], eax
jmp 0x642ca3
mov eax, dword [esp + 0xdc]
call fcn.004630d0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea eax, [0x751118]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], edi
call fcn.00436440
add esp, 0x17c
ret
call fcn.00436440
add esp, 0x17c
ret
call fcn.00436440
add esp, 0x17c
ret
mov ecx, eax
mov eax, ebp
call fcn.00463150
call fcn.00463190
mov ecx, ebx
call fcn.00463190
mov eax, 3
mov ecx, eax
call fcn.00463150
mov eax, 2
mov ecx, eax
call fcn.00463150
mov eax, 1
mov ecx, eax
call fcn.00463150
xor eax, eax
mov ecx, eax
call fcn.00463150
mov ecx, 4
call fcn.00463190
test eax, eax
je 0x642e29
mov dword [esp + 0x30], ecx
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0x50]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x54]
cmp ebp, ebx
jb 0x642d68
mov esi, dword [esp + 0xf0]
jmp 0x642daf
lea eax, [0x696c40]
mov dword [esp], eax
mov ecx, dword [esp + 0xf0]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.0044b8c0
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x50]
mov ebp, ecx
mov esi, ebx
mov ecx, dword [esp + 0x30]
mov ebx, eax
mov eax, dword [esp + 0xd0]
mov byte [esi + edx], 1
lea edx, [ecx + ebx]
mov dword [esp + 0x50], edx
cmp ebp, edx
jae 0x642df7
mov dword [esp + 0x6c], ebx
lea eax, [0x696c40]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.0044b8c0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xf0], esi
mov dword [esp + 0x54], ebp
lea edx, [esi + ebx]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00463a60
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xf0]
jmp 0x642fcd
cmp ebx, 4
jne 0x642edd
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
movzx ebx, byte [edx + 2]
movzx edx, byte [edx + 3]
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov ebp, dword [0x8e0fc0]
mov esi, dword [0x8e0fc4]
cmp esi, 0x10
jl 0x642e7a
mov esi, 0x10
lea edi, [esp + 0x74]
cmp ebp, edi
je 0x642eb6
mov byte [esp + 0x2b], al
mov byte [esp + 0x2a], cl
mov byte [esp + 0x29], bl
mov byte [esp + 0x28], dl
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.00463a60
movzx eax, byte [esp + 0x2b]
movzx ecx, byte [esp + 0x2a]
movzx edx, byte [esp + 0x28]
movzx ebx, byte [esp + 0x29]
mov byte [esp + 0x80], al
mov byte [esp + 0x81], cl
mov byte [esp + 0x82], bl
mov byte [esp + 0x83], dl
lea edx, [esp + 0x74]
mov ebx, 0x10
jmp 0x642ee6
cmp ebx, 0x10
je 0x642ee6
xor edx, edx
xor ebx, ebx
test edx, edx
je 0x642fd8
mov dword [esp + 0x2c], ebx
mov dword [esp + 0xcc], edx
mov eax, dword [esp + 0x50]
lea ecx, [eax + 1]
mov ebp, dword [esp + 0x54]
cmp ebp, ecx
jb 0x642f11
mov esi, dword [esp + 0xf0]
jmp 0x642f58
lea edx, [0x696c40]
mov dword [esp], edx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.0044b8c0
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0xcc]
mov ebp, ecx
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov ecx, eax
mov eax, dword [esp + 0x50]
mov byte [esi + eax], 4
lea eax, [ebx + ecx]
mov dword [esp + 0x50], eax
cmp ebp, eax
jae 0x642fa0
mov dword [esp + 0x6c], ecx
lea edx, [0x696c40]
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
call fcn.0044b8c0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0xf0], esi
lea eax, [esi + ecx]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00463a60
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xf0]
mov ebx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x64256e
lea eax, [0x6a08e0]
mov dword [esp], eax
call fcn.0040b800
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x14
lea ecx, [0x6d451c]
mov dword [eax], ecx
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
lea ecx, [0x751118]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
call fcn.00436440
add esp, 0x17c
ret
mov edx, eax
mov ebx, ecx
xor eax, eax
xor ecx, ecx
jmp 0x642d3d
inc edx
cmp edx, 0xa
jge 0x64304e
jae 0x64306d
movzx ebx, byte [eax + edx]
test bl, bl
je 0x64303c
jmp 0x64302f
cmp byte [eax + 0xa], 0xff
jne 0x64302f
cmp byte [eax + 0xb], 0xff
jne 0x64302f
lea ebp, [eax + 0xc]
mov edx, eax
mov ebx, ecx
mov eax, ebp
mov ecx, 4
jmp 0x642d3d
mov eax, edx
mov ecx, 0xa
call fcn.00463150
mov eax, 1
mov ecx, eax
call fcn.00463150
xor eax, eax
mov ecx, eax
call fcn.00463150
mov ecx, 2
call fcn.00463190
mov byte [eax + edi], bl
inc edx
mov ebx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x180]
mov edi, esi
mov esi, dword [esp + 0xf4]
cmp edx, ebp
jge 0x64310e
mov ebx, dword [esi + edx*4]
lea esi, [edi + 1]
cmp ecx, esi
jae 0x643098
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
lea edx, [0x696c40]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
call fcn.0044b8c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea esi, [ecx + 1]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x5c]
mov ecx, edx
mov edx, dword [esp + 0x60]
jmp 0x643098
mov ebp, edi
jmp 0x64205e
call fcn.00461cc0
jmp fcn.00641a70