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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x344]
cmp eax, dword [ecx + 8]
jbe 0x451e23
sub esp, 0x3c4
mov eax, dword [esp + 0x3d8]
test eax, eax
jle 0x451b2a
mov ecx, dword [esp + 0x3e4]
test ecx, ecx
jne 0x451e0c
mov edx, dword fs:[0x14]
mov edx, dword [edx]
mov ebx, dword [esp + 0x3d4]
cmp ebx, edx
jne 0x450395
mov ebp, dword [edx + 0x18]
cmp dword [ebp + 0x4c], edx
je 0x451df6
call fcn.004413a0
mov eax, dword [esp]
cmp eax, 2
mov ecx, dword [esp + 0x3c8]
cmp ecx, 0xffffffff
jne 0x451b21
mov edx, dword [esp + 0x3cc]
cmp edx, 0xffffffff
jne 0x451b0c
mov ecx, dword [esp + 0x3d4]
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x451afe
mov ebx, dword [ecx + 0x3c]
xor ebp, ebp
mov dword [esp + 0x68], eax
lea edi, [esp + 0x2e8]
mov esi, eax
xor eax, eax
call fcn.0045ff85
mov dword [esp + 0x2f0], ebx
mov dword [esp + 0x2fc], edx
mov ecx, dword [esp + 0x3d4]
mov edi, esi
mov esi, dword [ecx + 0xb8]
mov ecx, dword [ecx + 0xbc]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x3dc]
test ecx, ecx
je 0x451adb
xor eax, eax
mov byte [esp + 0x1f], al
xor eax, eax
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x1c4], ebp
test ebx, ebx
jne 0x450450
mov ebx, edx
mov edx, dword [edx]
mov dword [esp + 0x2f0], edx
lea edx, [ebx + 4]
mov dword [esp + 0x2fc], edx
mov eax, dword [esp + 0x2f0]
mov dword [esp], eax
call fcn.0044b170
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
test eax, eax
je 0x4519e0
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x2ec], ecx
lea edi, [esp + 0xdc]
xor eax, eax
call fcn.0045ff60
mov ecx, dword [esp + 0x3e0]
mov ebx, dword [esp + 0x3d4]
mov ebp, dword [esp + 0x3d8]
mov esi, dword [esp + 0x1c8]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x1c4]
xor eax, eax
mov dword [esp + 0x38], eax
xor eax, eax
mov byte [esp + 0x1c], al
xor eax, eax
mov byte [esp + 0x1d], al
xor eax, eax
mov dword [esp + 0x2c], eax
xor eax, eax
jmp 0x450555
mov dword [esp + 0x2e8], ebx
mov ebx, dword [esp + 0x1ac]
mov dword [esp + 0x2ec], ebx
mov ebx, dword [esp + 0x2f8]
mov dword [esp + 0x2f0], ebx
mov dword [esp + 0x2f8], 0
mov ebx, dword [esp + 0x300]
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x300], 0
mov dword [esp + 0x310], 0
xchg esi, eax
cmp al, 9
xchg esi, eax
sete bl
mov esi, dword [esp + 0x3d4]
mov dword [esp + 0x38], ebp
mov byte [esp + 0x1c], bl
mov esi, dword [esp + 0x1d8]
mov ebp, dword [esp + 0x3d8]
mov dword [esp + 0x2c], edi
mov ebx, dword [esp + 0x3d4]
xor edi, edi
mov dword [esp + 0x3d8], ebp
mov ebp, dword [esp + 0x38]
cmp ecx, ebp
jle 0x4519d7
mov ebp, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x2ec]
mov dword [esp + 0x1dc], ebx
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x4519ca
mov dword [esp + 0x1c4], edi
mov ebx, dword [esp + 0x300]
test ebx, ebx
je 0x451852
mov ebx, dword [esp + 0x1dc]
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1d8], esi
mov ebx, dword [esp + 0x3d4]
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x45184b
cmp dword [esi], ebx
xchg esi, ebx
sete bl
xchg esi, ebx
mov dword [esp + 0x1bc], ebp
mov dword [esp + 0x5c], edx
movzx ebx, byte [ebp + 0x20]
cmp bl, 2
jne 0x4515d5
mov dword [esp + 0x2f8], 0
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x1ac], esi
mov dword [esp + 0x1b8], ebx
mov esi, dword [esp + 0x300]
mov dword [esp + 0x304], esi
add esi, 0xfffffffc
mov dword [esp + 0x304], esi
mov esi, dword [esp + 0x3e4]
test esi, esi
je 0x4515ba
mov ebx, dword [esp + 0x300]
mov dword [esp + 0x308], ebx
je 0x4515b3
cmp dword [ebp + 8], 0x80000000
sete bl
mov ebp, dword [ebp + 8]
mov dword [esp + 0x30c], ebp
mov dword [esp + 0x310], 0
test bl, bl
jne 0x451552
mov ebx, dword [esp + 0x2f0]
mov dword [esp + 0x2f4], ebx
movzx ebx, byte [esp + 0x1c]
test bl, bl
je 0x451549
mov ebp, dword [esp + 0x2e8]
mov edi, ebx
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x451537
mov ebp, dword [ebp]
lea ebx, [ebx + ebp + 1]
mov dword [esp + 0x2f4], ebx
test esi, esi
jne 0x4514d7
mov ebx, dword [esp + 0x3dc]
test ebx, ebx
je 0x4514c2
mov ebp, dword [esp + 0x2f0]
mov esi, dword [esp + 0x38]
test esi, esi
jne 0x4514b5
mov ebx, dword [esp + 0x3ec]
test ebx, 2
je 0x451486
lea ebx, [ebp + 1]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1bc]
cmp byte [ebp + 0x23], 4
ja 0x451467
xor eax, eax
mov dword [esp + 0x1d4], eax
xor eax, eax
mov ebp, dword [esp + 0x1d4]
test ebp, ebp
jne 0x451329
movzx ebp, byte [esp + 0x1d]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x1bc]
cmp byte [ebx + 0x20], 0x16
jne 0x450732
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x451307
mov ebp, dword [esp + 0x3d8]
test ebp, ebp
jle 0x4512c5
dec ebp
movzx ebx, byte [ebx + 0x20]
dec esi
mov dword [esp + 0x3d8], ebp
mov dword [esp + 0x38], esi
movzx ebp, byte [esp + 0x1f]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4512ae
mov ebp, dword [esp + 0x2f0]
test esi, esi
jle 0x45128a
mov esi, dword [esp + 0x1bc]
cmp dword [esi], ebp
jae 0x450785
xchg edi, eax
test al, al
xchg edi, eax
je 0x451284
cmp byte [esi + 0x23], 4
ja 0x451271
xor edi, edi
test edi, edi
jne 0x450f40
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x3ec]
test ebp, 1
je 0x450ede
mov ebx, 1
test bl, bl
jne 0x4508cd
movzx ebx, byte [esi + 0x20]
mov byte [esp + 0x1d], bl
mov ebp, dword [esp + 0x38]
inc ebp
cmp byte [esi + 0x20], 0xe
jne 0x4508c6
test edx, edx
jle 0x4508c6
mov ebx, dword [esp + 0x1d8]
mov ebx, dword [ebx + edx*4 - 4]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x3d8]
test ebx, ebx
jne 0x4508ba
mov ebx, dword [esp + 0x3e4]
test ebx, ebx
je 0x450866
lea ebx, [edx - 1]
movzx esi, byte [esi + 0x20]
mov edx, ebx
mov ebx, dword [esp + 0x1b8]
test ebx, ebx
jne 0x4504d1
movzx edx, byte [esp + 0x1f]
test dl, dl
je 0x450862
mov edx, dword [esp + 0x3e4]
test edx, edx
je 0x450854
cmp ecx, edi
jle 0x450854
mov edx, dword [esp + 0x3d4]
mov ebx, dword [edx + 0x40]
cmp dword [esp + 0x2fc], ebx
jne 0x451b36
mov dword [esp + 0x3f0], edi
add esp, 0x3c4
ret
mov edi, ebp
jmp 0x45082e
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x3dc]
mov dword [esp], eax
movzx edx, byte [esp + 0x1f]
mov byte [esp + 4], dl
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.00451fd0
mov ebp, dword [esp + 0x14]
xor eax, eax
mov ecx, dword [esp + 0x3e0]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x3e4]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x64]
jmp 0x45080d
mov ebx, dword [esp + 0x3e4]
jmp 0x45080d
mov ebx, edx
jmp 0x450810
mov dword [esp], esi
mov eax, dword [esp + 0x1b4]
mov dword [esp + 4], eax
call fcn.0044b920
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x1a0], ecx
mov edx, dword [esp + 0x1bc]
mov dword [esp], edx
mov ebx, dword [esp + 0x1b4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], ebx
call fcn.0044bb90
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1a8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0x34]
cmp ebx, 0xf
je 0x450e98
mov ebp, dword [esp + 0x1a0]
mov dword [esp + 0x240], 0
mov dword [esp + 0x244], 0
mov dword [esp + 0x248], 0
mov dword [esp + 0x24c], 0
mov dword [esp + 0x210], ebp
mov dword [esp + 0x214], ebx
lea eax, [0x7739a0]
mov dword [esp + 0x240], eax
lea ecx, [esp + 0x210]
mov dword [esp + 0x244], ecx
mov dword [esp + 0x248], eax
lea ecx, [0x835b38]
mov dword [esp + 0x24c], ecx
lea edx, [esp + 0x240]
mov dword [esp], edx
mov dword [esp + 4], 2
mov dword [esp + 8], 2
call fcn.00408350
mov eax, dword [esp + 0x308]
mov dword [esp + 0x1d4], eax
xor ecx, ecx
jmp 0x450a53
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], 0
test byte [eax], al
mov edx, dword [eax + ecx*4]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], 0
lea edx, [0x7736a0]
mov dword [esp + 0x1f8], edx
lea ebx, [esp + 0xc4]
mov dword [esp + 0x1fc], ebx
lea ebx, [esp + 0x1f8]
mov dword [esp], ebx
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00408350
mov eax, dword [esp + 0x4c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x1d4]
mov edx, dword [esp + 0x30c]
shr edx, 2
cmp ecx, edx
jae 0x450b24
cmp ecx, 0xa
jae 0x450ad5
mov dword [esp + 0x4c], ecx
test ecx, ecx
je 0x4509de
mov dword [esp + 0x200], 0
mov dword [esp + 0x204], 0
lea eax, [0x7739a0]
mov dword [esp + 0x200], eax
lea ecx, [0x835b48]
mov dword [esp + 0x204], ecx
lea edx, [esp + 0x200]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00408350
mov eax, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x4c]
jmp 0x4509de
mov dword [esp + 0x208], 0
mov dword [esp + 0x20c], 0
lea eax, [0x7739a0]
mov dword [esp + 0x208], eax
lea ecx, [0x835b40]
mov dword [esp + 0x20c], ecx
lea edx, [esp + 0x208]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00408350
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1f4], 0
lea eax, [0x7739a0]
mov dword [esp + 0x1f0], eax
lea ecx, [0x835b50]
mov dword [esp + 0x1f4], ecx
lea edx, [esp + 0x1f0]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00408350
lea edi, [esp + 0x278]
xor eax, eax
call fcn.0045ff88
lea ecx, [0x7739a0]
mov dword [esp + 0x278], ecx
lea edx, [0x835b58]
mov dword [esp + 0x27c], edx
mov ebx, dword [esp + 0x1a8]
mov dword [esp + 0x1e8], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x280], ecx
lea ebx, [esp + 0x1e8]
mov dword [esp + 0x284], ebx
mov dword [esp + 0x288], ecx
lea ebx, [0x835b60]
mov dword [esp + 0x28c], ebx
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x74], ebp
lea ebp, [0x773020]
mov dword [esp + 0x290], ebp
lea esi, [esp + 0x74]
mov dword [esp + 0x294], esi
lea esi, [esp + 0x278]
mov dword [esp], esi
mov dword [esp + 4], 4
mov dword [esp + 8], 4
call fcn.00408350
mov eax, dword [esp + 0x1bc]
mov ecx, dword [eax]
cmp dword [esp + 0x2f0], ecx
ja 0x450df1
mov ecx, dword [esp + 0x3d4]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x450de8
mov ebx, dword [edx + 0x6c]
test ebx, ebx
jle 0x450ddf
cmp dword [edx + 0x4c], ecx
jne 0x450dcd
lea edi, [esp + 0x314]
xor eax, eax
call fcn.0045ff84
lea ecx, [0x7739a0]
mov dword [esp + 0x314], ecx
lea edx, [0x835b78]
mov dword [esp + 0x318], edx
mov ebx, dword [esp + 0x300]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], 0
lea ebx, [0x7736a0]
mov dword [esp + 0x31c], ebx
lea ebp, [esp + 0xb4]
mov dword [esp + 0x320], ebp
mov dword [esp + 0x324], ecx
lea ebp, [0x835b80]
mov dword [esp + 0x328], ebp
mov esi, dword [esp + 0x2fc]
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], 0
mov dword [esp + 0x32c], ebx
lea esi, [esp + 0xac]
mov dword [esp + 0x330], esi
mov dword [esp + 0x334], ecx
lea esi, [0x835b88]
mov dword [esp + 0x338], esi
mov esi, dword [esp + 0x2f0]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], 0
mov dword [esp + 0x33c], ebx
lea esi, [esp + 0xa4]
mov dword [esp + 0x340], esi
lea esi, [esp + 0x314]
mov dword [esp], esi
mov dword [esp + 4], 6
mov dword [esp + 8], 6
call fcn.00408350
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1e4], 0
lea eax, [0x7739a0]
mov dword [esp + 0x1e0], eax
lea ecx, [0x835b90]
mov dword [esp + 0x1e4], ecx
lea edx, [esp + 0x1e0]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00408350
mov eax, dword [esp + 0x2c]
lea edi, [eax + 1]
xor eax, eax
mov ecx, dword [esp + 0x3e0]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x3ec]
mov esi, dword [esp + 0x1bc]
jmp 0x4507c5
mov edx, dword [esp + 0x68]
cmp edx, 2
jge 0x450c58
jmp 0x450d57
mov edx, dword [esp + 0x68]
cmp edx, 2
jmp 0x450dd4
mov edx, dword [esp + 0x68]
cmp edx, 2
jmp 0x450dd4
mov dword [esp + 0x230], 0
mov dword [esp + 0x234], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
lea ecx, [0x7739a0]
mov dword [esp + 0x230], ecx
lea edx, [0x835b68]
mov dword [esp + 0x234], edx
mov ebx, dword [esp + 0x2f0]
sub ebx, dword [eax]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], 0
lea ebx, [0x7736a0]
mov dword [esp + 0x238], ebx
lea ebp, [esp + 0xbc]
mov dword [esp + 0x23c], ebp
lea ebp, [esp + 0x230]
mov dword [esp], ebp
mov dword [esp + 4], 2
mov dword [esp + 8], 2
call fcn.00408350
mov eax, dword [esp + 0x1bc]
jmp 0x450c32
mov eax, dword [esp + 0x1a0]
mov dword [esp], eax
lea ecx, [0x7caaa3]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00402b40
movzx eax, byte [esp + 0xc]
test al, al
je 0x450ece
mov ebx, 5
lea ebp, [0x7c73e4]
jmp 0x450944
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1a0]
jmp 0x450944
movzx eax, byte [esi + 0x20]
mov dword [esp], esi
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x3d4]
mov dword [esp + 8], edx
test edi, edi
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
mov byte [esp + 0xc], al
xchg ebp, eax
mov byte [esp + 0xd], al
mov byte [esp + 0xe], bl
call fcn.00452fc0
movzx ebx, byte [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0x3e0]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x3ec]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x2c]
jmp 0x4507bd
mov dword [esp + 0x1d4], edi
jmp 0x450f78
mov edi, dword [esp + 0x2e8]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x1d4]
mov ebp, ecx
lea ecx, [edx + eax*4 + 2]
movzx ecx, byte [ecx]
mov eax, dword [edx + eax*4 + 0x10]
add eax, dword [edi]
mov esi, dword [esp + 0x1bc]
mov ebx, ecx
mov dword [esp + 0x2c], ebp
mov ebp, eax
mov byte [esp + 0x1d], bl
mov dword [esp + 0x24], ebp
mov dword [esp], esi
mov eax, dword [esp + 0x1b4]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], 0
call fcn.0044bec0
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x45124b
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x3ec]
test edx, 1
je 0x4511d5
mov ecx, 1
test cl, cl
jne 0x450fe7
mov ecx, dword [esp + 0x2c]
cmp eax, 0x100000
jb 0x450f49
jmp 0x451d8c
cmp eax, 0x100000
jae 0x451d96
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x1d4]
mov ecx, dword [edx + ecx*4 + 0xc]
mov ebx, dword [esp + 0x1bc]
mov dword [esp], ebx
mov ebp, dword [esp + 0x1b4]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call fcn.0044b9a0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x19c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x1bc]
mov dword [esp], edx
mov ebx, dword [esp + 0x1b4]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x24]
mov dword [esp + 8], ebp
call fcn.0044bb90
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1a4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], edx
mov dword [esp + 0x250], 0
mov dword [esp + 0x254], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x25c], 0
mov ebx, dword [esp + 0x19c]
mov dword [esp + 0x220], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x224], ebx
lea ebx, [0x7739a0]
mov dword [esp + 0x250], ebx
lea ebp, [esp + 0x220]
mov dword [esp + 0x254], ebp
mov dword [esp + 0x258], ebx
lea ebp, [0x835b10]
mov dword [esp + 0x25c], ebp
lea esi, [esp + 0x250]
mov dword [esp], esi
mov dword [esp + 4], 2
mov dword [esp + 8], 2
call fcn.00408350
lea edi, [esp + 0x298]
xor eax, eax
call fcn.0045ff86
lea ecx, [0x7739a0]
mov dword [esp + 0x298], ecx
lea edx, [0x835b20]
mov dword [esp + 0x29c], edx
mov ebx, dword [esp + 0x1a4]
mov dword [esp + 0x218], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x2a0], ecx
lea ebx, [esp + 0x218]
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x2a8], ecx
lea ebx, [0x835b28]
mov dword [esp + 0x2ac], ebx
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x78], ebp
lea ebp, [0x773020]
mov dword [esp + 0x2b0], ebp
lea esi, [esp + 0x78]
mov dword [esp + 0x2b4], esi
mov dword [esp + 0x2b8], ecx
lea esi, [0x835b30]
mov dword [esp + 0x2bc], esi
lea edi, [esp + 0x298]
mov dword [esp], edi
mov dword [esp + 4], 5
mov dword [esp + 8], 5
call fcn.00408350
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x3ec]
jmp 0x450fd7
cmp eax, 0x100000
jae 0x451da0
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x1d4]
lea ecx, [edx + ecx*4 + 2]
movzx ecx, byte [ecx]
mov ebx, dword [esp + 0x1bc]
mov dword [esp], ebx
mov ebp, dword [esp + 0x1b4]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x3d4]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x2c]
test edi, edi
xchg esi, ebx
sete bl
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0xc], al
xchg esi, eax
mov byte [esp + 0xd], cl
movzx ecx, byte [esp + 0x1d]
mov byte [esp + 0xe], cl
call fcn.00452fc0
movzx ecx, byte [esp + 0x10]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x3ec]
jmp 0x450fcf
xor eax, eax
mov ecx, dword [esp + 0x3e0]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x1bc]
movzx ebx, byte [esp + 0x1d]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
jmp 0x45079d
lea edi, [esi + 0x23]
mov eax, dword [esi + 0x1c]
lea eax, [edi + eax*4 + 0x11]
mov edi, dword [eax]
xor eax, eax
jmp 0x450791
dec ebp
jmp 0x450785
mov esi, dword [esp + 0x3ec]
test esi, 2
jne 0x4512a2
mov esi, dword [esp + 0x38]
jmp 0x450770
mov esi, dword [esp + 0x1bc]
jmp 0x450785
mov ebp, dword [esp + 0x3ec]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x2c]
jmp 0x4507c9
cmp ecx, esi
jle 0x4512fc
cmp esi, 0x100000
jae 0x451daa
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x3dc]
mov dword [ebp + esi*4], ebx
lea ebx, [esi + 1]
mov esi, ebx
mov ebp, dword [esp + 0x3d8]
mov ebx, dword [esp + 0x1bc]
jmp 0x450742
mov ebp, dword [esp + 0x3dc]
mov ebx, esi
jmp 0x4512e7
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x450732
xchg ebp, eax
cmp al, 0x13
xchg ebp, eax
je 0x450732
mov ebp, dword [esp + 0x3d8]
jmp 0x450742
movzx eax, byte [esp + 0x1d]
mov byte [esp + 0x1e], al
jmp 0x45135d
mov edi, dword [esp + 0x2e8]
movzx ebp, byte [ebp + 2]
mov edx, dword [ebx + edx*4 + 0x10]
add edx, dword [edi]
lea edi, [edx + 1]
mov dword [esp + 0x20], edx
xchg ebp, eax
mov byte [esp + 0x1e], al
xchg ebp, eax
mov esi, ecx
mov ebx, edi
mov dword [esp + 0x3d8], eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x1bc]
mov dword [esp], eax
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc], edx
lea edx, [esp + 0xdc]
mov dword [esp + 0x10], edx
call fcn.0044bec0
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x451443
cmp eax, 0x100000
jae 0x451dc0
lea edx, [eax + eax*4]
mov ebx, dword [esp + 0x1d4]
lea ebp, [ebx + edx*4]
lea esi, [ebx + edx*4 + 2]
cmp byte [esi], 0x16
jne 0x4513d3
movzx esi, byte [esp + 0x1e]
xchg esi, eax
cmp al, 0x12
xchg esi, eax
jne 0x451425
mov esi, dword [esp + 0x3d8]
test esi, esi
jle 0x4513ea
lea eax, [esi - 1]
mov ecx, dword [esp + 0x38]
jmp 0x451334
mov edi, dword [esp + 0x3e0]
mov eax, dword [esp + 0x38]
cmp edi, eax
jle 0x45141c
cmp eax, 0x100000
jae 0x451db6
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x3dc]
mov dword [edi + eax*4], ecx
inc eax
mov ecx, eax
mov eax, esi
jmp 0x451334
mov edi, dword [esp + 0x3dc]
jmp 0x451413
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x4513d3
xchg esi, eax
cmp al, 0x13
xchg esi, eax
je 0x4513d3
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3d8]
jmp 0x451334
xor eax, eax
mov ecx, dword [esp + 0x3e0]
mov edx, dword [esp + 0x5c]
movzx edi, byte [esp + 0x1c]
movzx ebp, byte [esp + 0x1e]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x28]
jmp 0x450716
lea eax, [ebp + 0x23]
mov edi, dword [ebp + 0x1c]
lea eax, [eax + edi*4 + 0x11]
mov eax, dword [eax]
movzx edi, byte [esp + 0x1c]
mov dword [esp + 0x1d4], eax
xor eax, eax
jmp 0x450702
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4506df
mov ebx, dword [esp + 0x1bc]
cmp dword [ebx], ebp
jne 0x4514a7
mov ebx, dword [esp + 0x3ec]
jmp 0x4506df
lea eax, [ebp - 1]
mov ebx, ebp
mov ebp, eax
xor eax, eax
jmp 0x4506e2
xchg edi, eax
test al, al
xchg edi, eax
mov ebx, dword [esp + 0x3ec]
jmp 0x45148a
mov esi, dword [esp + 0x38]
movzx ebx, byte [esp + 0x1d]
mov ebp, dword [esp + 0x3d8]
jmp 0x450747
lea eax, [esp + 0x2e8]
mov dword [esp], eax
mov ecx, dword [esp + 0x3e8]
mov dword [esp + 4], ecx
mov ebx, dword [esi]
mov edx, esi
call ebx
movzx eax, byte [esp + 8]
test al, al
je 0x451525
mov ebx, dword [esp + 0x3dc]
test ebx, ebx
mov eax, 0
mov ecx, dword [esp + 0x3e0]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x3e4]
movzx edi, byte [esp + 0x1c]
jmp 0x4506b3
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3f0], eax
add esp, 0x3c4
ret
mov dword [esp + 0x2f4], 0
test esi, esi
jmp 0x4506a4
test esi, esi
mov edi, ebx
jmp 0x4506a4
lea eax, [esp + 0x2e8]
mov dword [esp], eax
mov ecx, dword [esp + 0x1bc]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x1b4]
mov dword [esp + 8], edx
test esi, esi
setne bl
mov byte [esp + 0xc], bl
mov dword [esp + 0x10], edi
call fcn.00451e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x310], ecx
xor eax, eax
mov ecx, dword [esp + 0x3e0]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x3e4]
jmp 0x450665
xor ebx, ebx
jmp 0x450648
movzx ebx, byte [esp + 0x1f]
test bl, bl
je 0x450665
test esi, esi
mov ebx, dword [esp + 0x1b8]
jmp 0x45062a
cmp bl, 6
je 0x4505e6
cmp bl, 4
je 0x4505e6
cmp bl, 5
je 0x4505e6
cmp bl, 7
je 0x4505e6
cmp bl, 0x10
je 0x4505e6
xchg esi, eax
test al, al
xchg esi, eax
je 0x451611
cmp bl, 8
je 0x4505e6
mov ebx, dword [esp + 0x2f8]
test ebx, ebx
jne 0x451844
mov ebx, dword [esp + 0x300]
add ebx, 0xfffffffc
mov esi, ebx
mov ebx, dword [ebx]
mov dword [esp + 0x2f8], ebx
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x2f8]
mov dword [esp], eax
call fcn.0044b170
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
test eax, eax
je 0x451678
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x1bc]
mov edi, dword [esp + 0x1c4]
mov ebx, eax
mov esi, ecx
xor eax, eax
mov ecx, dword [esp + 0x3e0]
jmp 0x4505f5
movzx ebx, byte [esp + 0x1f]
test bl, bl
je 0x451834
mov ebp, dword [esp + 0x3d4]
mov esi, dword [ebp + 0x18]
movzx esi, byte [esi + 0x88]
xchg esi, eax
test al, al
xchg esi, eax
je 0x45182b
mov esi, dword [esp + 0x1bc]
cmp byte [esi + 0x20], 9
jne 0x451824
xor edx, edx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1cc], eax
mov edi, ebp
mov ebp, dword [esp + 0x3e4]
test ebp, ebp
jne 0x4516df
test dl, dl
jne 0x4516df
test ebp, ebp
je 0x451654
jmp 0x451dca
mov dword [esp], esi
mov eax, dword [esp + 0x1b4]
mov dword [esp + 4], eax
call fcn.0044b920
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], ecx
lea edi, [esp + 0x2c0]
mov edx, eax
xor eax, eax
call fcn.0045ff86
lea ecx, [0x7739a0]
mov dword [esp + 0x2c0], ecx
lea ebx, [0x835af8]
mov dword [esp + 0x2c4], ebx
mov dword [esp + 0x228], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x22c], edx
mov dword [esp + 0x2c8], ecx
lea edx, [esp + 0x228]
mov dword [esp + 0x2cc], edx
mov dword [esp + 0x2d0], ecx
lea edx, [0x835b00]
mov dword [esp + 0x2d4], edx
mov ebp, dword [esp + 0x2f8]
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], 0
lea ebp, [0x7736a0]
mov dword [esp + 0x2d8], ebp
lea esi, [esp + 0xcc]
mov dword [esp + 0x2dc], esi
mov dword [esp + 0x2e0], ecx
lea esi, [0x835b08]
mov dword [esp + 0x2e4], esi
lea edi, [esp + 0x2c0]
mov dword [esp], edi
mov dword [esp + 4], 5
mov dword [esp + 8], 5
call fcn.00408350
mov eax, dword [esp + 0x3d4]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0x2e8]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
call fcn.00453880
mov ebp, dword [esp + 0x3e4]
test ebp, ebp
mov eax, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x1d0]
movzx ebx, byte [esp + 0x1f]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x3d4]
jmp 0x4516d4
mov edx, ebx
jmp 0x4516b3
mov esi, dword [esp + 0x1bc]
jmp 0x451824
mov ebp, dword [esp + 0x3d4]
mov esi, dword [esp + 0x1bc]
jmp 0x451824
xor esi, esi
jmp 0x451635
xor esi, esi
jmp 0x4505ce
mov ebx, dword [esp + 0x3ec]
test ebx, 4
je 0x4519c1
mov eax, dword [esp + 0x3d4]
mov ecx, dword [eax + 0x18]
cmp dword [ecx], eax
jne 0x4519b1
mov ecx, dword [ecx + 0x4c]
test ecx, ecx
je 0x4519b1
movzx edi, byte [ebp + 0x20]
xchg edi, eax
cmp al, 5
xchg edi, eax
je 0x451954
xchg edi, eax
cmp al, 0xd
xchg edi, eax
jne 0x451944
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x2fc], ecx
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx + 0x4c]
mov edx, dword [ecx + 0xb8]
mov ecx, dword [ecx + 0xbc]
mov esi, dword [esp + 0x1dc]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x1d8], edx
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x1c0], ebp
mov dword [esp], ebp
mov dword [esp + 4], esi
mov eax, dword [esp + 0x2f0]
mov dword [esp + 8], eax
lea eax, [esp + 0xdc]
mov dword [esp + 0xc], eax
call fcn.0044bbf0
mov eax, dword [esp + 0x2fc]
add eax, dword [esp + 0x10]
mov dword [esp + 0x300], eax
add eax, 4
mov dword [esp + 0x300], eax
xor eax, eax
mov ecx, dword [esp + 0x3e0]
mov edi, dword [esp + 0x1c4]
mov ebp, dword [esp + 0x1c0]
mov ebx, dword [esp + 0x1b0]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x1d8]
jmp 0x4505a5
mov ecx, edx
mov edx, esi
mov esi, dword [esp + 0x1dc]
jmp 0x4518bf
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x2f0], eax
mov dword [esp], eax
call fcn.0044b170
mov ebp, dword [esp + 4]
mov esi, dword [esp + 8]
mov dword [esp + 0x2e8], ebp
mov dword [esp + 0x2ec], esi
mov eax, dword [esp + 0x3d4]
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx + 0x4c]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x2fc], ecx
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx + 0x4c]
mov edx, dword [ecx + 0xb8]
mov ecx, dword [ecx + 0xbc]
mov ebx, dword [esp + 0x3ec]
jmp 0x4518bf
mov ecx, edx
mov edx, esi
mov esi, dword [esp + 0x1dc]
jmp 0x4518bf
mov eax, dword [esp + 0x3d4]
jmp 0x4519b1
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x38]
jmp 0x450825
mov edi, dword [esp + 0x2c]
jmp 0x450825
mov ecx, dword [esp + 0x3e4]
test ecx, ecx
je 0x451aca
lea edi, [esp + 0x260]
xor eax, eax
call fcn.0045ff8a
lea ecx, [0x7739a0]
mov dword [esp + 0x260], ecx
lea edx, [0x835ae8]
mov dword [esp + 0x264], edx
mov edx, dword [esp + 0x2f0]
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], 0
lea edx, [0x7736a0]
mov dword [esp + 0x268], edx
lea edx, [esp + 0xd4]
mov dword [esp + 0x26c], edx
mov dword [esp + 0x270], ecx
lea ecx, [0x835af0]
mov dword [esp + 0x274], ecx
lea ecx, [esp + 0x260]
mov dword [esp], ecx
mov dword [esp + 4], 3
mov dword [esp + 8], 3
call fcn.00408350
mov ecx, dword [esp + 0x3d4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp], ecx
mov dword [esp + 4], edx
lea ecx, [esp + 0x2e8]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.00453880
mov ecx, dword [esp + 0x3e4]
test ecx, ecx
jne 0x451de0
mov dword [esp + 0x3f0], 0
add esp, 0x3c4
ret
movzx edx, byte [esp + 0x1f]
test dl, dl
jne 0x4519ef
test ecx, ecx
jmp 0x451ab2
mov edi, dword [esp + 0x3e4]
test edi, edi
setne cl
xor ecx, 1
mov edi, dword [esp + 0x68]
mov byte [esp + 0x1f], cl
mov ecx, dword [esp + 0x3dc]
jmp 0x450429
mov ebx, dword [ecx + 0x20]
mov edx, dword [ecx + 0x1c]
mov ebp, dword [ecx + 0x28]
jmp 0x4503d7
mov ecx, dword [esp + 0x3d4]
mov ebx, dword [esp + 0x3c8]
xor ebp, ebp
jmp 0x4503d7
mov edx, dword [esp + 0x3cc]
jmp 0x451b0c
mov ecx, dword [esp + 0x3e4]
jmp 0x450371
mov dword [esp + 0x38], edi
lea edi, [esp + 0x344]
call fcn.0045ff82
lea ecx, [0x7739a0]
mov dword [esp + 0x344], ecx
lea ebx, [0x835b98]
mov dword [esp + 0x348], ebx
mov ebx, dword [edx + 0x50]
mov ebp, dword [edx + 0x54]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebp
lea ebx, [0x773060]
mov dword [esp + 0x34c], ebx
lea ebx, [esp + 0x9c]
mov dword [esp + 0x350], ebx
mov dword [esp + 0x354], ecx
lea ebx, [0x835ba0]
mov dword [esp + 0x358], ebx
mov ebx, dword [esp + 0x2fc]
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], 0
lea ebx, [0x7736a0]
mov dword [esp + 0x35c], ebx
lea ebp, [esp + 0x94]
mov dword [esp + 0x360], ebp
mov dword [esp + 0x364], ecx
lea ebp, [0x835ba8]
mov dword [esp + 0x368], ebp
mov ebp, dword [edx + 0x40]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], 0
mov dword [esp + 0x36c], ebx
lea ebp, [esp + 0x8c]
mov dword [esp + 0x370], ebp
mov dword [esp + 0x374], ecx
lea ebp, [0x835bb0]
mov dword [esp + 0x378], ebp
lea ebp, [esp + 0x344]
mov dword [esp], ebp
mov dword [esp + 4], 7
mov dword [esp + 8], 7
call fcn.00408350
lea edi, [esp + 0x37c]
xor eax, eax
call fcn.0045ff7e
lea ecx, [0x7739a0]
mov dword [esp + 0x37c], ecx
lea edx, [0x835bb8]
mov dword [esp + 0x380], edx
mov edx, dword [esp + 0x3d4]
mov ebx, dword [edx]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], 0
lea ebx, [0x7736a0]
mov dword [esp + 0x384], ebx
lea ebp, [esp + 0x84]
mov dword [esp + 0x388], ebp
mov dword [esp + 0x38c], ecx
lea ebp, [0x835bc0]
mov dword [esp + 0x390], ebp
mov edx, dword [edx + 4]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], 0
mov dword [esp + 0x394], ebx
lea edx, [esp + 0x7c]
mov dword [esp + 0x398], edx
mov dword [esp + 0x39c], ecx
lea edx, [0x835bd0]
mov dword [esp + 0x3a0], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x70], edx
lea edx, [0x772fa0]
mov dword [esp + 0x3a4], edx
lea ebx, [esp + 0x70]
mov dword [esp + 0x3a8], ebx
mov dword [esp + 0x3ac], ecx
lea ebx, [0x835bd8]
mov dword [esp + 0x3b0], ebx
mov ebx, dword [esp + 0x3e0]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x3b4], edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x3b8], edx
mov dword [esp + 0x3bc], ecx
lea ecx, [0x835be0]
mov dword [esp + 0x3c0], ecx
lea ecx, [esp + 0x37c]
mov dword [esp], ecx
mov dword [esp + 4], 9
mov dword [esp + 8], 9
call fcn.00408350
lea ecx, [0x7d48e4]
mov dword [esp], ecx
mov dword [esp + 4], 0x23
call fcn.004333f0
mov ecx, 0x100000
call fcn.0045fd60
mov ecx, 0x100000
call fcn.0045fd60
mov ecx, 0x100000
call fcn.0045fd60
mov eax, esi
mov ecx, 0x100000
call fcn.0045fd60
mov ecx, 0x100000
call fcn.0045fd60
mov ecx, 0x100000
call fcn.0045fd60
lea eax, [0x7cb9a3]
mov dword [esp], eax
mov dword [esp + 4], 0x11
call fcn.004333f0
lea eax, [0x7c8ae4]
mov dword [esp], eax
mov dword [esp + 4], 0xa
call fcn.004333f0
lea eax, [0x7db3ce]
mov dword [esp], eax
mov dword [esp + 4], 0x39
call fcn.004333f0
lea eax, [0x7dadba]
mov dword [esp], eax
mov dword [esp + 4], 0x37
call fcn.004333f0
nop
call fcn.0045e790
jmp fcn.00450330