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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x14c]
cmp eax, dword [ecx + 8]
jbe 0x441811
sub esp, 0x1cc
mov eax, dword [esp + 0x1e0]
test eax, eax
jle 0x4415e5
mov ecx, dword [esp + 0x1ec]
test ecx, ecx
jne 0x4417fa
mov edx, dword fs:[0x14]
mov edx, dword [edx]
mov ebx, dword [esp + 0x1dc]
cmp edx, ebx
jne 0x4401c5
mov ebp, dword [edx + 0x18]
cmp dword [ebp + 0x4c], edx
je 0x4417e4
call fcn.004335d0
mov eax, dword [esp]
cmp eax, 2
mov ecx, dword [esp + 0x1d0]
cmp ecx, 0xffffffff
jne 0x4415dc
mov edx, dword [esp + 0x1d4]
cmp edx, 0xffffffff
jne 0x4415c7
mov ecx, dword [esp + 0x1dc]
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x4415b9
mov ebx, dword [ecx + 0x3c]
xor ebp, ebp
mov dword [esp + 0x78], eax
lea edi, [esp + 0x1a0]
mov esi, eax
xor eax, eax
call fcn.0044ac85
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1b4], edx
mov ecx, dword [esp + 0x1dc]
mov edi, esi
mov esi, dword [ecx + 0xbc]
mov ecx, dword [ecx + 0xb8]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0x1e4]
test ecx, ecx
je 0x441596
xor eax, eax
mov byte [esp + 0x1f], al
xor eax, eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x18c], ebp
test ebx, ebx
jne 0x440280
mov ebx, edx
mov edx, dword [edx]
mov dword [esp + 0x1a8], edx
lea edx, [ebx + 4]
mov dword [esp + 0x1b4], edx
mov eax, dword [esp + 0x1a8]
mov dword [esp], eax
call fcn.0043c250
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x4414e6
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
lea edi, [esp + 0x9c]
xor eax, eax
call fcn.0044ac60
mov ecx, dword [esp + 0x1e8]
mov ebx, dword [esp + 0x1dc]
mov ebp, dword [esp + 0x1e0]
mov esi, dword [esp + 0x190]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x18c]
xor edi, edi
xor edi, edi
xchg edi, eax
mov byte [esp + 0x1c], al
xchg edi, eax
xor edi, edi
xchg edi, eax
mov byte [esp + 0x1d], al
xchg edi, eax
xor edi, edi
mov dword [esp + 0x2c], edi
jmp 0x440383
mov dword [esp + 0x1a0], ebx
mov ebx, dword [esp + 0x174]
mov dword [esp + 0x1a4], ebx
mov ebx, dword [esp + 0x1b0]
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1b0], 0
mov ebx, dword [esp + 0x1b8]
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1c8], 0
xchg ebp, eax
cmp al, 9
xchg ebp, eax
sete bl
mov ebp, dword [esp + 0x1dc]
mov edi, eax
mov byte [esp + 0x1c], bl
mov eax, esi
mov esi, dword [esp + 0x19c]
mov ebp, dword [esp + 0x1e0]
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x1dc]
xor edx, edx
cmp edi, ecx
jge 0x4414db
mov dword [esp + 0x38], edi
mov dword [esp + 0x1e0], ebp
mov ebp, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a4]
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x4414ce
mov dword [esp + 0x18c], edx
mov ebx, dword [esp + 0x1b8]
test ebx, ebx
je 0x441378
mov dword [esp + 0x178], edi
mov ebx, dword [esp + 0x1dc]
mov edi, dword [ebx + 0x18]
test edi, edi
je 0x441371
cmp dword [edi], ebx
xchg edi, ebx
sete bl
xchg edi, ebx
movzx ebx, byte [ebp + 0x20]
cmp bl, 2
jne 0x44132c
mov ebx, 1
mov dword [esp + 0x5c], eax
mov dword [esp + 0x19c], esi
mov dword [esp + 0x180], ebp
test bl, bl
je 0x441143
mov dword [esp + 0x1b0], 0
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x174], ebx
mov dword [esp + 0x184], edi
mov ebx, dword [esp + 0x1b8]
mov dword [esp + 0x1bc], ebx
add ebx, 0xfffffffc
mov dword [esp + 0x1bc], ebx
mov ebx, dword [esp + 0x1ec]
test ebx, ebx
je 0x441126
mov edi, dword [esp + 0x1b8]
mov dword [esp + 0x1c0], edi
je 0x44111f
cmp dword [ebp + 8], 0x80000000
xchg edi, ebx
sete bl
xchg edi, ebx
mov esi, dword [ebp + 8]
mov dword [esp + 0x1c4], esi
mov dword [esp + 0x1c8], 0
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4410ba
mov esi, dword [esp + 0x1a8]
mov dword [esp + 0x1ac], esi
movzx esi, byte [esp + 0x1c]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4410b1
mov edi, dword [esp + 0x1a0]
mov edx, esi
mov esi, dword [edi + 0xc]
test esi, esi
je 0x44109f
mov edi, dword [edi]
lea esi, [esi + edi + 1]
mov dword [esp + 0x1ac], esi
test ebx, ebx
jne 0x44103d
mov esi, dword [esp + 0x1e4]
test esi, esi
je 0x441028
mov edi, dword [esp + 0x1a8]
mov dword [esp + 0x20], edi
mov ebx, dword [esp + 0x38]
test ebx, ebx
jle 0x441001
cmp dword [ebp], edi
jae 0x440511
test dl, dl
je 0x440ff2
cmp byte [ebp + 0x23], 4
ja 0x440fd1
mov dword [esp + 0x94], eax
xor eax, eax
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x198]
test edi, edi
jne 0x440e5b
movzx edi, byte [esp + 0x1d]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x28], edi
movzx edi, byte [esp + 0x1d]
cmp byte [ebp + 0x20], 0x14
jne 0x440577
xchg edi, eax
cmp al, 0x12
xchg edi, eax
jne 0x440e3f
mov edi, 1
xchg edi, eax
test al, al
xchg edi, eax
je 0x440e33
mov edi, dword [esp + 0x1e0]
test edi, edi
jle 0x440e0f
dec edi
movzx esi, byte [ebp + 0x20]
dec ebx
mov dword [esp + 0x1e0], edi
movzx edi, byte [esp + 0x1f]
xchg edi, eax
test al, al
xchg edi, eax
je 0x440dff
mov dword [esp + 0x70], ebx
mov edi, dword [esp + 0x1a8]
test ebx, ebx
jle 0x440dde
cmp dword [ebp], edi
jae 0x4405c2
test dl, dl
je 0x440dd8
cmp byte [ebp + 0x23], 4
ja 0x440dc0
xor edx, edx
test edx, edx
jne 0x440b3f
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x1f4]
test edi, 1
je 0x440ad9
mov esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x44071d
movzx esi, byte [ebp + 0x20]
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
inc ebx
cmp byte [ebp + 0x20], 0xe
jne 0x44070f
test eax, eax
jle 0x44070f
mov edi, dword [esp + 0x19c]
mov esi, dword [edi + eax*4 - 4]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x1e0]
test esi, esi
jne 0x440703
mov esi, dword [esp + 0x1ec]
test esi, esi
je 0x4406aa
lea esi, [eax - 1]
movzx ebp, byte [ebp + 0x20]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
mov eax, ebx
mov ebx, dword [esp + 0x184]
test ebx, ebx
jne 0x4402ff
movzx ebx, byte [esp + 0x1f]
test bl, bl
je 0x4406a6
mov eax, dword [esp + 0x1ec]
test eax, eax
je 0x440698
cmp edx, ecx
jge 0x440698
mov eax, dword [esp + 0x1b4]
mov ebx, dword [esp + 0x1dc]
mov ebp, dword [ebx + 0x40]
cmp eax, ebp
jne 0x4415f1
mov dword [esp + 0x1f8], edx
add esp, 0x1cc
ret
mov edx, eax
jmp 0x440670
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x1e4]
mov dword [esp], eax
movzx edx, byte [esp + 0x1f]
mov byte [esp + 4], dl
mov ebp, dword [esp + 0x58]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.004419a0
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x180]
mov esi, dword [esp + 0x1ec]
mov edi, dword [esp + 0x19c]
jmp 0x44064a
mov esi, dword [esp + 0x1ec]
jmp 0x44064a
mov edi, dword [esp + 0x19c]
mov esi, eax
jmp 0x44064d
mov dword [esp], ebp
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
call fcn.0043c840
mov eax, dword [esp + 8]
mov dword [esp + 0x160], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x180]
mov dword [esp], edx
mov ebx, dword [esp + 0x178]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], ebx
call fcn.0043cac0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x16c], edx
mov ebx, dword [esp + 0x30]
cmp ebx, 0xf
je 0x440a93
mov ebp, dword [esp + 0x160]
mov dword [esp + 0x160], ebp
mov dword [esp + 0x30], ebx
call fcn.00428420
mov eax, dword [esp + 0x160]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call fcn.00428cc0
lea eax, [0x4e24d5]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00428cc0
call fcn.00428490
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x198], eax
xor ecx, ecx
jmp 0x44081d
test byte [eax], al
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x74], edx
call fcn.00428420
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
call fcn.00428490
mov eax, dword [esp + 0x4c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x198]
mov edx, dword [esp + 0x1c4]
shr edx, 2
cmp ecx, edx
jae 0x440885
cmp ecx, 0xa
jae 0x440865
mov dword [esp + 0x4c], ecx
test ecx, ecx
je 0x4407e8
call fcn.00428420
lea eax, [0x4e250c]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.00428cc0
call fcn.00428490
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x4c]
jmp 0x4407e8
call fcn.00428420
lea eax, [0x4e2869]
mov dword [esp], eax
mov dword [esp + 4], 5
call fcn.00428cc0
call fcn.00428490
call fcn.00428420
lea eax, [0x4e250a]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.00428cc0
call fcn.00428490
call fcn.00428420
lea eax, [0x4e24ef]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00428cc0
mov eax, dword [esp + 0x16c]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.00428cc0
lea eax, [0x4e24df]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00428cc0
mov eax, dword [esp + 0x44]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00428b00
call fcn.00428490
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x180]
mov edx, dword [ecx]
cmp eax, edx
ja 0x440a45
mov eax, dword [esp + 0x1dc]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x440a3c
mov ebx, dword [edx + 0x6c]
test ebx, ebx
jle 0x440a33
cmp dword [edx + 0x4c], eax
jne 0x440a24
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x1a8]
mov dword [esp + 0x64], edx
call fcn.00428420
lea eax, [0x4e26ae]
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00428cc0
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
lea eax, [0x4e26ca]
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00428cc0
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
lea eax, [0x4e26c2]
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00428cc0
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
call fcn.00428490
call fcn.00428420
call fcn.00428640
call fcn.00428490
mov eax, dword [esp + 0x2c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1e8]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x180]
mov edi, dword [esp + 0x1f4]
jmp 0x440604
mov edx, dword [esp + 0x78]
cmp edx, 2
jge 0x440943
jmp 0x4409ec
mov edx, dword [esp + 0x78]
cmp edx, 2
jmp 0x440a2b
mov edx, dword [esp + 0x78]
cmp edx, 2
jmp 0x440a2b
mov dword [esp + 0x74], eax
mov dword [esp + 0x68], edx
call fcn.00428420
lea eax, [0x4e24fc]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.00428cc0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
sub eax, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
call fcn.00428490
mov ecx, dword [esp + 0x180]
jmp 0x44091d
mov eax, dword [esp + 0x160]
mov dword [esp], eax
lea ecx, [0x4e4494]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00402260
movzx eax, byte [esp + 0xc]
test al, al
je 0x440ac9
lea ebp, [0x4e2931]
mov ebx, 5
jmp 0x440794
mov ebp, dword [esp + 0x160]
mov ebx, dword [esp + 0x30]
jmp 0x440794
movzx eax, byte [ebp + 0x20]
mov dword [esp], ebp
mov ecx, dword [esp + 0x178]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0x1dc]
mov dword [esp + 8], ebx
test edx, edx
xchg edi, ebx
sete bl
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0xc], al
xchg edi, eax
mov byte [esp + 0xd], al
xchg esi, eax
mov byte [esp + 0xe], al
xchg esi, eax
call fcn.00442730
movzx esi, byte [esp + 0x10]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x180]
mov edi, dword [esp + 0x1f4]
jmp 0x4405fa
mov dword [esp + 0x198], edx
jmp 0x440b76
mov ebx, dword [esp + 0x1a0]
lea eax, [eax + eax*4]
mov ebp, eax
shl eax, 2
mov edx, dword [esp + 0x198]
movzx eax, byte [edx + eax + 2]
mov edi, dword [edx + ebp*4 + 0x10]
add edi, dword [ebx]
mov ebp, dword [esp + 0x180]
mov esi, eax
mov dword [esp + 0x2c], ecx
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
mov dword [esp + 0x24], edi
mov dword [esp], ebp
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], 0
call fcn.0043cc70
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x440d98
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x1f4]
test edx, 1
je 0x440d21
mov ecx, 1
test cl, cl
jne 0x440be7
mov ecx, dword [esp + 0x2c]
cmp eax, 0x100000
jb 0x440b48
jmp 0x44177a
cmp eax, 0x100000
jae 0x441784
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x198]
mov ecx, dword [edx + ecx*4 + 0xc]
mov ebx, dword [esp + 0x180]
mov dword [esp], ebx
mov ebp, dword [esp + 0x178]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call fcn.0043c8c0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x15c], ecx
mov edx, dword [esp + 0x180]
mov dword [esp], edx
mov ebx, dword [esp + 0x178]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x24]
mov dword [esp + 8], ebp
call fcn.0043cac0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x170], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], edx
call fcn.00428420
mov eax, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00428cc0
lea eax, [0x4e29c8]
mov dword [esp], eax
mov dword [esp + 4], 6
call fcn.00428cc0
call fcn.00428490
call fcn.00428420
lea eax, [0x4e24ef]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00428cc0
mov eax, dword [esp + 0x170]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
call fcn.00428cc0
lea eax, [0x4e24df]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00428cc0
mov eax, dword [esp + 0x40]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00428b00
call fcn.00428640
call fcn.00428490
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x1f4]
jmp 0x440bd7
cmp eax, 0x100000
jae 0x44178e
lea ecx, [eax + eax*4]
shl ecx, 2
mov edx, dword [esp + 0x198]
movzx ecx, byte [edx + ecx + 2]
mov ebx, dword [esp + 0x180]
mov dword [esp], ebx
mov ebp, dword [esp + 0x178]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x1dc]
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.00442730
movzx ecx, byte [esp + 0x10]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x1f4]
jmp 0x440bcf
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1e8]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x180]
movzx esi, byte [esp + 0x1d]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
jmp 0x4405da
lea edx, [ebp + 0x23]
mov ecx, dword [ebp + 0x1c]
lea ecx, [edx + ecx*4 + 0x11]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x1e8]
jmp 0x4405ce
dec edi
jmp 0x4405c2
mov ebx, dword [esp + 0x1f4]
test ebx, 2
jne 0x440df6
mov ebx, dword [esp + 0x70]
jmp 0x4405b5
mov ebx, dword [esp + 0x70]
jmp 0x4405c2
mov edi, dword [esp + 0x1f4]
mov edx, dword [esp + 0x2c]
jmp 0x440608
cmp ebx, ecx
jge 0x440e27
cmp ebx, 0x100000
jae 0x441798
mov ebp, dword [esp + 0x28]
mov dword [esi + ebx*4], ebp
inc ebx
mov ebp, dword [esp + 0x180]
jmp 0x440587
mov edi, dword [esp + 0x1e0]
jmp 0x440587
xchg edi, eax
cmp al, 9
xchg edi, eax
je 0x440568
xchg edi, eax
cmp al, 0x13
xchg edi, eax
xchg edi, ebx
sete bl
xchg edi, ebx
jmp 0x44056d
mov dword [esp + 0x8c], eax
movzx eax, byte [esp + 0x1d]
mov byte [esp + 0x1e], al
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov byte [esp + 0x7c], dl
mov edx, dword [esp + 0x74]
mov dword [esp + 0x20], edx
jmp 0x440eb9
mov esi, dword [esp + 0x1a0]
movzx edx, byte [ebp + edx + 2]
mov edi, dword [ebp + ebx*4 + 0x10]
add edi, dword [esi]
lea esi, [edi + 1]
mov ebp, dword [esp + 0x180]
mov dword [esp + 0x20], edi
mov byte [esp + 0x1e], dl
mov ebx, ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x70], ebx
mov dword [esp], ebp
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x9c]
mov dword [esp + 0x10], ecx
call fcn.0043cc70
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x440fa5
cmp eax, 0x100000
jae 0x4417ae
lea edx, [eax + eax*4]
mov ebx, edx
shl edx, 2
mov ebp, dword [esp + 0x198]
movzx esi, byte [ebp + edx + 2]
xchg esi, eax
cmp al, 0x14
xchg esi, eax
jne 0x440f32
movzx esi, byte [esp + 0x1e]
xchg esi, eax
cmp al, 0x12
xchg esi, eax
jne 0x440f94
mov eax, 1
test al, al
je 0x440f84
mov esi, dword [esp + 0x1e0]
test esi, esi
jle 0x440f49
lea eax, [esi - 1]
mov ecx, dword [esp + 0x70]
jmp 0x440e88
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x1e8]
cmp eax, edi
jge 0x440f7b
cmp eax, 0x100000
jae 0x4417a4
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x1e4]
mov dword [edi + eax*4], ecx
inc eax
mov ecx, eax
mov eax, esi
jmp 0x440e88
mov edi, dword [esp + 0x1e4]
jmp 0x440f72
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1e0]
jmp 0x440e88
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x440f29
xchg esi, eax
cmp al, 0x13
xchg esi, eax
sete al
jmp 0x440f2e
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1e8]
movzx edx, byte [esp + 0x1c]
mov ebp, dword [esp + 0x180]
mov esi, dword [esp + 0x1e4]
movzx edi, byte [esp + 0x1e]
mov ebx, dword [esp + 0x70]
jmp 0x440557
lea edx, [ebp + 0x23]
mov eax, dword [ebp + 0x1c]
lea eax, [edx + eax*4 + 0x11]
mov eax, dword [eax]
movzx edx, byte [esp + 0x1c]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x5c]
jmp 0x440532
lea edx, [edi - 1]
mov edi, edx
movzx edx, byte [esp + 0x1c]
jmp 0x440511
mov esi, dword [esp + 0x1f4]
test esi, 2
jne 0x44101c
mov esi, dword [esp + 0x1e4]
jmp 0x440504
mov esi, dword [esp + 0x1e4]
jmp 0x440511
mov ebx, dword [esp + 0x38]
movzx esi, byte [esp + 0x1d]
mov edi, dword [esp + 0x1e0]
jmp 0x44058c
lea eax, [esp + 0x1a0]
mov dword [esp], eax
mov ecx, dword [esp + 0x1f0]
mov dword [esp + 4], ecx
mov ebp, dword [ebx]
mov edx, ebx
call ebp
movzx eax, byte [esp + 8]
test al, al
je 0x44108d
mov esi, dword [esp + 0x1e4]
test esi, esi
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1e8]
movzx edx, byte [esp + 0x1c]
mov ebx, dword [esp + 0x1ec]
mov ebp, dword [esp + 0x180]
jmp 0x4404e7
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1f8], eax
add esp, 0x1cc
ret
mov dword [esp + 0x1ac], 0
test ebx, ebx
jmp 0x4404d8
test ebx, ebx
mov edx, esi
jmp 0x4404d8
lea eax, [esp + 0x1a0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov ecx, dword [esp + 0x178]
mov dword [esp + 8], ecx
test ebx, ebx
xchg esi, ebx
setne bl
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0xc], al
xchg esi, eax
mov dword [esp + 0x10], edx
call fcn.00441820
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1e8]
mov ebx, dword [esp + 0x1ec]
mov ebp, dword [esp + 0x180]
jmp 0x440498
xor edi, edi
jmp 0x440479
movzx edi, byte [esp + 0x1f]
xchg edi, eax
test al, al
xchg edi, eax
je 0x440498
test ebx, ebx
mov edi, dword [esp + 0x184]
jmp 0x440457
mov ebx, dword [esp + 0x1b0]
test ebx, ebx
jne 0x441325
mov ebx, dword [esp + 0x1b8]
add ebx, 0xfffffffc
mov edi, ebx
mov ebx, dword [ebx]
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x1b0]
mov dword [esp], eax
call fcn.0043c250
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x4411af
mov edx, dword [esp + 0x18c]
mov ebp, dword [esp + 0x180]
mov esi, dword [esp + 0x19c]
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1e8]
jmp 0x440422
movzx ebx, byte [esp + 0x1f]
test bl, bl
je 0x441315
mov ebp, dword [esp + 0x1dc]
mov esi, dword [ebp + 0x18]
movzx esi, byte [esi + 0x88]
xchg esi, eax
test al, al
xchg esi, eax
je 0x44130c
mov esi, dword [esp + 0x180]
cmp byte [esi + 0x20], 9
jne 0x441305
xor edx, edx
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], ecx
mov edi, dword [esp + 0x1ec]
test edi, edi
jne 0x441214
test dl, dl
jne 0x441214
test edi, edi
je 0x441186
jmp 0x4417b8
mov dword [esp], esi
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
call fcn.0043c840
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x194], ecx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 0x74], edx
call fcn.00428420
lea eax, [0x4e92e7]
mov dword [esp], eax
mov dword [esp + 4], 0x22
call fcn.00428cc0
mov eax, dword [esp + 0x194]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.00428cc0
lea eax, [0x4e3bcc]
mov dword [esp], eax
mov dword [esp + 4], 0xd
call fcn.00428cc0
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
call fcn.00428640
call fcn.00428490
mov eax, dword [esp + 0x1dc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0x1a0]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
call fcn.00442ef0
mov edi, dword [esp + 0x1ec]
test edi, edi
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x168]
movzx ebx, byte [esp + 0x1f]
mov ebp, dword [esp + 0x1dc]
mov esi, dword [esp + 0x180]
jmp 0x441209
mov edx, ebx
jmp 0x4411ea
mov esi, dword [esp + 0x180]
jmp 0x441305
mov ebp, dword [esp + 0x1dc]
mov esi, dword [esp + 0x180]
jmp 0x441305
xor edi, edi
jmp 0x441167
cmp bl, 6
je 0x4403f4
cmp bl, 4
je 0x4403f4
cmp bl, 5
je 0x4403f4
cmp bl, 7
je 0x4403f4
cmp bl, 0x10
je 0x4403f4
xchg edi, eax
test al, al
xchg edi, eax
je 0x44136a
cmp bl, 8
sete bl
jmp 0x4403f9
xor ebx, ebx
jmp 0x4403f9
xor edi, edi
jmp 0x4403e7
mov ebx, dword [esp + 0x1f4]
test ebx, 4
je 0x4414c5
mov ecx, dword [esp + 0x1dc]
mov edx, dword [ecx + 0x18]
cmp dword [edx], ecx
jne 0x4414bc
mov edx, dword [edx + 0x4c]
test edx, edx
je 0x4414bc
movzx ebx, byte [ebp + 0x20]
cmp bl, 5
je 0x441466
cmp bl, 0xd
jne 0x44145d
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x1b4], eax
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x4c]
mov edx, dword [eax + 0xbc]
mov eax, dword [eax + 0xb8]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x19c], eax
mov dword [esp + 0x17c], edi
mov dword [esp + 0x188], ebp
mov dword [esp], ebp
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x9c]
mov dword [esp + 0xc], ecx
call fcn.0043cb20
mov eax, dword [esp + 0x1b4]
add eax, dword [esp + 0x10]
mov dword [esp + 0x1b8], eax
add eax, 4
mov dword [esp + 0x1b8], eax
mov ecx, dword [esp + 0x1e8]
mov edx, dword [esp + 0x18c]
mov edi, dword [esp + 0x17c]
mov ebp, dword [esp + 0x188]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x19c]
jmp 0x4403c5
mov edx, eax
mov eax, esi
jmp 0x4413da
mov eax, dword [edx + 0x20]
mov dword [esp + 0x1a8], eax
mov dword [esp], eax
call fcn.0043c250
mov ebp, dword [esp + 4]
mov edi, dword [esp + 8]
mov dword [esp + 0x1a0], ebp
mov dword [esp + 0x1a4], edi
mov ecx, dword [esp + 0x1dc]
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x1b4], eax
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x4c]
mov edx, dword [eax + 0xbc]
mov eax, dword [eax + 0xb8]
jmp 0x4413da
mov edx, eax
mov eax, esi
jmp 0x4413da
mov ecx, dword [esp + 0x1dc]
jmp 0x4414bc
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
jmp 0x440667
mov edx, dword [esp + 0x2c]
mov eax, edi
jmp 0x440667
mov eax, dword [esp + 0x1ec]
test eax, eax
je 0x441585
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x74], eax
call fcn.00428420
lea eax, [0x4e596b]
mov dword [esp], eax
mov dword [esp + 4], 0x14
call fcn.00428cc0
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
call fcn.00428640
call fcn.00428490
mov eax, dword [esp + 0x1dc]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [esp + 0x1a0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00442ef0
mov eax, dword [esp + 0x1ec]
test eax, eax
jne 0x4417ce
mov dword [esp + 0x1f8], 0
add esp, 0x1cc
ret
movzx ecx, byte [esp + 0x1f]
test cl, cl
jne 0x4414f5
test eax, eax
jmp 0x44156d
mov edi, dword [esp + 0x1ec]
test edi, edi
setne cl
xor ecx, 1
mov edi, dword [esp + 0x78]
mov byte [esp + 0x1f], cl
mov ecx, dword [esp + 0x1e4]
jmp 0x44025c
mov ebx, dword [ecx + 0x20]
mov edx, dword [ecx + 0x1c]
mov ebp, dword [ecx + 0x28]
jmp 0x440207
mov ecx, dword [esp + 0x1dc]
mov ebx, dword [esp + 0x1d0]
xor ebp, ebp
jmp 0x440207
mov edx, dword [esp + 0x1d4]
jmp 0x4415c7
mov ecx, dword [esp + 0x1ec]
jmp 0x4401a1
mov dword [esp + 0x74], eax
mov dword [esp + 0x68], ebp
mov dword [esp + 0x38], edx
mov eax, dword [ebx + 0x54]
mov dword [esp + 0x60], eax
mov ecx, dword [ebx + 0x50]
mov dword [esp + 0x78], ecx
call fcn.00428420
lea eax, [0x4e3440]
mov dword [esp], eax
mov dword [esp + 4], 0xa
call fcn.00428cc0
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
call fcn.00428b00
lea eax, [0x4e35ad]
mov dword [esp], eax
mov dword [esp + 4], 0xb
call fcn.00428cc0
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
lea eax, [0x4e282d]
mov dword [esp], eax
mov dword [esp + 4], 5
call fcn.00428cc0
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
call fcn.00428640
call fcn.00428490
mov eax, dword [esp + 0x1dc]
mov ecx, dword [eax]
mov dword [esp + 0x74], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x68], eax
call fcn.00428420
lea eax, [0x4e2ebf]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.00428cc0
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
lea eax, [0x4e24da]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00428cc0
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00428b90
lea eax, [0x4e275a]
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00428cc0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00428b00
lea eax, [0x4e2819]
mov dword [esp], eax
mov dword [esp + 4], 5
call fcn.00428cc0
mov eax, dword [esp + 0x1e8]
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
call fcn.00428b00
call fcn.00428640
call fcn.00428490
lea eax, [0x4e9579]
mov dword [esp], eax
mov dword [esp + 4], 0x23
call fcn.00427930
mov ecx, 0x100000
call fcn.0044ab10
mov ecx, 0x100000
call fcn.0044ab10
mov ecx, 0x100000
call fcn.0044ab10
mov eax, ebx
mov ecx, 0x100000
call fcn.0044ab10
mov ecx, 0x100000
call fcn.0044ab10
mov ecx, 0x100000
call fcn.0044ab10
lea eax, [0x4e4bef]
mov dword [esp], eax
mov dword [esp + 4], 0x11
call fcn.00427930
lea eax, [0x4e3486]
mov dword [esp], eax
mov dword [esp + 4], 0xa
call fcn.00427930
lea eax, [0x4eb64f]
mov dword [esp], eax
mov dword [esp + 4], 0x39
call fcn.00427930
lea eax, [0x4eb494]
mov dword [esp], eax
mov dword [esp + 4], 0x37
call fcn.00427930
nop
call fcn.00449350
jmp fcn.00440160