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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
mov eax, 0x2730
call fcn.004012c0
or dword [ebp + 0x48], 0xffffffff
push ebx
push esi
xor esi, esi
push edi
push 0x40
lea ecx, [ebp + 0x24]
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x74], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x64], esi
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x68], esi
call fcn.0040236f
lea ecx, [ebp - 0x1d0]
call fcn.0040ce79
lea ecx, [ebp - 0x128]
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x38], esi
call fcn.0040ce79
mov eax, dword [ebp + 0x24]
mov dword [0x411b48], eax
mov dword [0x410908], 1
cmp byte [0x425672], 0
jne 0x40328f
and dword [ebp + 0x5c], 0
and dword [ebp + 0x6c], 0
mov ebx, 0x421c8c
mov eax, dword [ebp + 0x5c]
xor edi, edi
inc edi
cmp eax, 0x40
mov esi, 0x41093c
jl 0x40255d
cmp byte [0x422524], 0
je 0x402927
cmp eax, dword [ebp + 0x28]
jl 0x40256f
mov eax, dword [ebp + 0x5c]
inc eax
push eax
lea ecx, [ebp + 0x24]
call fcn.00402435
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x6c]
push 4
add ecx, eax
push esi
mov dword [0x411b48], ecx
call fcn.00404349
test eax, eax
je 0x402874
push 4
push 0x421bb5
push esi
call fcn.004098f0
test eax, eax
jne 0x402880
call fcn.00408b0c
xor esi, esi
cmp eax, esi
jne 0x402909
movzx eax, byte [0x421be9]
push eax
call fcn.0040ddf5
test al, al
je 0x4025ce
mov eax, 0x800
or word [0x421bec], ax
xor eax, eax
mov word [0x421c8c], ax
movzx eax, word [0x421bec]
push eax
movzx eax, word [0x421c08]
push 2
push eax
call fcn.0040472a
cmp eax, esi
je 0x402601
cmp eax, dword [ebp + 0x74]
jle 0x4025f9
mov dword [ebp + 0x74], eax
cmp eax, edi
jg 0x40290e
movzx eax, word [0x421c0a]
push esi
push 3
push eax
call fcn.0040472a
cmp eax, esi
je 0x402625
cmp eax, dword [ebp + 0x74]
jle 0x40261d
mov dword [ebp + 0x74], eax
cmp eax, edi
jg 0x40290e
movzx eax, word [0x421c0a]
push esi
push eax
push dword [0x421ba8]
call fcn.004083d2
movzx eax, word [0x421c0a]
push 0x421bee
push eax
push dword [0x421ba8]
call fcn.0040d1b5
movzx eax, word [0x421c0c]
push esi
push esi
push eax
call fcn.0040472a
cmp eax, esi
je 0x402674
cmp eax, dword [ebp + 0x74]
jle 0x40266c
mov dword [ebp + 0x74], eax
cmp eax, edi
jg 0x40290e
mov eax, dword [0x421bec]
mov ecx, dword [0x421ba8]
shr eax, 0xb
and al, 1
mov byte [ebp + 0x72], al
push 0x1800
lea eax, [ebp - 0x26b8]
push eax
movzx eax, word [0x421c0a]
push dword [0x42248c]
call fcn.004022dd
test al, al
je 0x4026bf
push 0x400
push ebx
lea eax, [ebp - 0x26b8]
push eax
call fcn.0040d667
mov byte [ebp + 0x72], 1
mov eax, dword [0x411b48]
add eax, 0x28
push eax
movzx eax, word [0x421bf0]
push eax
movzx eax, word [0x421bf2]
push eax
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
mov eax, dword [0x411b48]
push 8
push 0
add eax, 0x30
push eax
call fcn.0040968d
mov eax, dword [0x411b48]
push 8
push 0
add eax, 0x38
push eax
call fcn.0040968d
mov eax, dword [0x411b48]
lea ecx, [eax + 0x38]
push ecx
lea ecx, [eax + 0x30]
push ecx
mov ecx, dword [0x421ba8]
add eax, 0x28
push eax
movzx eax, word [0x421c0a]
call fcn.0040220a
movzx esi, word [0x421c0a]
mov eax, dword [0x421ba8]
mov edi, eax
test esi, esi
je 0x40273b
test eax, eax
jne 0x402771
mov byte [ebp + 0x73], 0
jmp 0x402795
push edi
call fcn.00404944
movzx eax, ax
mov dword [ebp + 0x44], eax
lea eax, [edi + 2]
push eax
call fcn.00404944
movzx eax, ax
lea ecx, [esi - 4]
cmp eax, ecx
ja 0x40273b
cmp dword [ebp + 0x44], 0x17
je 0x402778
push 0xfffffffffffffffc
pop ecx
sub ecx, eax
lea edi, [edi + eax + 4]
add esi, ecx
cmp esi, 4
jae 0x402741
jmp 0x40273b
push ebx
push 0xb0
mov byte [ebp + 0x73], 1
call fcn.004093fa
push eax
push 0x42aeda
call fcn.0040a76e
add esp, 0xc
lea ecx, [ebp - 0xeb8]
call fcn.00402472
push 0xce8
xor edi, edi
push edi
lea eax, [ebp - 0xeb8]
push eax
call fcn.0040968d
mov esi, 0x400
push esi
push ebx
lea eax, [ebp - 0xa88]
push eax
call fcn.0040cbaa
push esi
lea eax, [ebp - 0xe88]
push eax
lea eax, [ebp - 0xa88]
push eax
call fcn.00407484
mov eax, dword [0x411b48]
add eax, 0x28
push eax
lea ecx, [ebp - 0x274]
call fcn.0040d071
mov eax, dword [0x421c00]
mov dword [ebp - 0x1d8], eax
mov eax, dword [0x421c04]
mov dword [ebp - 0x1d4], eax
mov eax, 0x200
or word [ebp - 0xeb0], ax
cmp byte [ebp + 0x73], 0
jne 0x40285d
push 5
push edi
lea eax, [ebp - 0xeb8]
push eax
mov ecx, 0x4267d8
call fcn.004014e3
test eax, eax
je 0x40285d
call fcn.00401c8a
test eax, eax
je 0x40285a
cmp byte [ebp + 0x72], 0
mov eax, ebx
jne 0x402845
mov eax, 0x40e2f8
push eax
lea ecx, [ebp - 0x1d0]
call fcn.0040cea6
inc dword [ebp + 0x5c]
add dword [ebp + 0x6c], 0x48
jmp 0x40285d
inc dword [ebp + 0x4c]
add dword [ebp + 0x54], 1
lea ecx, [ebp - 0x288]
adc dword [ebp + 0x58], edi
call fcn.0040146d
jmp 0x402540
mov dword [ebp + 0x74], 0x33
jmp 0x402924
mov ecx, dword [0x421c30]
mov eax, ecx
xor eax, dword [ebp + 0x54]
mov edx, 0xffff
and eax, edx
xor ebx, ebx
or eax, ebx
je 0x4028c4
cmp ecx, edx
jne 0x4028a4
cmp dword [0x421c34], ebx
je 0x4028c4
push 0xa0
call fcn.004093fa
push eax
push 0x42aeda
call fcn.0040a76e
pop ecx
pop ecx
mov dword [ebp + 0x74], 3
jmp 0x402924
push 0x40e2f4
lea eax, [ebp + 0x15]
push eax
mov byte [ebp + 0x14], 0x50
call fcn.0040982a
push 4
push 0x421bba
push esi
call fcn.004098f0
test eax, eax
je 0x402904
cmp byte [0x42252c], bl
je 0x4028ff
push 4
lea eax, [ebp + 0x14]
push eax
push esi
call fcn.004098f0
test eax, eax
je 0x402904
mov dword [ebp + 0x40], edi
jmp 0x402924
and dword [ebp + 0x40], ebx
jmp 0x402924
mov dword [ebp + 0x74], eax
jmp 0x402924
push ebx
push 0x68
call fcn.004093fa
push eax
push 0x42aeda
call fcn.0040a76e
add esp, 0xc
mov dword [ebp + 0x68], edi
cmp byte [0x422524], 0
mov eax, dword [0x421b98]
mov dword [ebp - 4], eax
mov eax, dword [0x421b9c]
mov dword [ebp], eax
mov eax, dword [0x421b58]
mov dword [ebp + 4], eax
mov eax, dword [0x421b60]
mov dword [ebp + 0xc], eax
mov eax, dword [0x421b64]
mov dword [ebp + 0x10], eax
je 0x4029ab
and dword [0x422528], 0
cmp byte [0x42aada], 0
je 0x402977
push 0x40e2f0
push 0x42aada
call fcn.004078ce
cmp word [0x42aeda], 0
je 0x402990
push 0x40e2e8
push 0x42aeda
call fcn.0040790d
mov ecx, dword [0x421b78]
test ecx, ecx
je 0x40299f
mov eax, dword [ecx]
push edi
call dword [eax]
and dword [0x421b78], 0
call fcn.00404082
and dword [ebp + 0x6c], 0
cmp dword [ebp + 0x5c], 0
jle 0x403231
mov eax, dword [ebp + 0x3c]
shl eax, 6
mov dword [ebp + 0x44], eax
jmp 0x4029c7
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x6c]
add eax, ecx
imul ecx, ecx, 0x48
add ecx, dword [ebp + 0x24]
mov dword [ebp + 0x48], eax
mov dword [0x411b48], ecx
lea ecx, [ebp - 0x1d0]
call fcn.0040cef8
cmp byte [0x422524], 0
mov dword [ebp + 8], eax
je 0x402aa1
mov eax, dword [0x411b48]
mov eax, dword [eax + 0x20]
cmp eax, dword [0x422528]
je 0x402aa1
movzx ecx, word [0x421c20]
cmp eax, ecx
jne 0x402a48
cmp byte [0x42aada], 0
je 0x402a2d
push 0x40e2e4
push 0x42aada
call fcn.004078ce
cmp word [0x42aeda], 0
je 0x402a78
push 0x40e2dc
push 0x42aeda
call fcn.0040790d
jmp 0x402a78
cmp byte [0x42aada], 0
je 0x402a5c
push eax
push 0x42aada
call fcn.00402194
cmp word [0x42aeda], 0
je 0x402a78
mov eax, dword [0x411b48]
push dword [eax + 0x20]
push 0x42aeda
call fcn.004021ce
mov eax, dword [0x411b48]
mov ecx, dword [0x421b78]
mov eax, dword [eax + 0x20]
mov dword [0x422528], eax
test ecx, ecx
je 0x402a95
mov eax, dword [ecx]
push 1
call dword [eax]
and dword [0x421b78], 0
call fcn.00404082
mov eax, dword [0x411b48]
mov edi, dword [eax]
add edi, dword [0x421ba0]
mov esi, dword [eax + 4]
adc esi, dword [0x421ba4]
push 0
push 0x2000
push esi
push edi
call fcn.00401200
mov ebx, eax
mov eax, edi
sub eax, ebx
mov ecx, esi
sbb ecx, edx
test esi, esi
jg 0x402b78
jl 0x402ae1
test edi, edi
jae 0x402b78
push 0xa0
call fcn.004093fa
push eax
push 0x42aeda
call fcn.0040a76e
cmp dword [ebp + 0x48], 0
pop ecx
pop ecx
mov dword [ebp + 0x74], 2
jne 0x402b6c
mov eax, dword [0x421ba0]
mov ecx, dword [0x421ba4]
mov edx, eax
or edx, ecx
je 0x402b6c
mov dword [ebp + 0x64], ecx
xor ecx, ecx
push ecx
mov dword [ebp + 0x60], eax
mov eax, dword [0x411b48]
mov dword [0x421ba0], ecx
mov dword [0x421ba4], ecx
mov esi, dword [eax + 4]
mov edi, dword [eax]
push 0x2000
push esi
push edi
call fcn.00401200
mov ebx, eax
mov eax, edi
sub eax, ebx
mov ecx, esi
sbb ecx, edx
test esi, esi
jg 0x402b78
jl 0x402b55
test edi, edi
jae 0x402b78
push 0xa0
call fcn.004093fa
push eax
push 0x42aeda
call fcn.0040a76e
pop ecx
pop ecx
mov dword [ebp + 0x74], 3
jmp 0x403222
cmp eax, dword [0x421b98]
jne 0x402bb7
cmp ecx, dword [0x421b9c]
jne 0x402bb7
cmp byte [0x422524], 0
jne 0x402bb7
mov eax, dword [0x421b58]
mov ecx, dword [0x421b54]
sub eax, ebx
sub eax, ecx
cdq
add dword [0x421b60], eax
adc dword [0x421b64], edx
add ebx, ecx
mov dword [0x421b58], ebx
jmp 0x402c25
push 0
push ecx
mov ecx, dword [0x421b78]
push eax
call fcn.00403a4e
mov ecx, dword [0x421b78]
call fcn.0040361f
push 0x2000
push dword [0x421b54]
mov dword [0x421b98], eax
mov dword [0x421b9c], edx
call fcn.004041f0
cdq
mov dword [0x421b60], eax
mov dword [0x421b64], edx
test edx, edx
jg 0x402c0a
jl 0x402b55
test eax, eax
jbe 0x402b55
mov eax, dword [0x421b54]
add eax, ebx
mov dword [0x421b58], eax
mov eax, ebx
cdq
sub dword [0x421b60], eax
sbb dword [0x421b64], edx
push 4
mov ebx, 0x41093c
push ebx
call fcn.00404349
test eax, eax
je 0x402b55
push 4
push 0x421bb0
push ebx
call fcn.004098f0
mov esi, 0xa0
test eax, eax
je 0x402d07
push esi
call fcn.004093fa
push eax
mov edi, 0x42aeda
push edi
call fcn.0040a76e
cmp dword [ebp + 0x48], 0
mov eax, dword [0x421ba0]
pop ecx
pop ecx
mov ecx, dword [0x421ba4]
mov dword [ebp + 0x74], 2
jne 0x402c86
mov edx, eax
or edx, ecx
jne 0x402cf1
or eax, ecx
jne 0x403222
mov eax, dword [ebp + 0x60]
or eax, dword [ebp + 0x64]
je 0x403222
mov eax, dword [ebp + 0x60]
mov dword [0x421ba0], eax
mov eax, dword [ebp + 0x64]
mov dword [0x421ba4], eax
mov ebx, 0x41093c
mov edi, 0x42aeda
mov eax, dword [0x411b48]
push dword [eax + 4]
push dword [eax]
call fcn.00404543
test eax, eax
jne 0x402ce4
push 4
push ebx
call fcn.00404349
test eax, eax
je 0x402ce4
push 4
push 0x421bb0
push ebx
call fcn.004098f0
test eax, eax
je 0x402d0c
push esi
call fcn.004093fa
push eax
push edi
jmp 0x402b65
and dword [0x421ba0], 0
and dword [0x421ba4], 0
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], ecx
jmp 0x402cb4
mov edi, 0x42aeda
call fcn.00408553
mov ebx, eax
test ebx, ebx
je 0x402d2e
push esi
call fcn.004093fa
push eax
push edi
call fcn.0040a76e
pop ecx
pop ecx
mov dword [ebp + 0x74], ebx
jmp 0x403222
xor eax, eax
mov word [0x421c8c], ax
movzx eax, word [0x421bc2]
push eax
movzx eax, word [0x421be0]
push 2
push eax
call fcn.0040472a
xor ebx, ebx
cmp eax, ebx
je 0x402d7b
cmp eax, dword [ebp + 0x74]
jle 0x402d5b
mov dword [ebp + 0x74], eax
cmp eax, 1
jle 0x402d7b
push 0x421c8c
push 0x68
call fcn.004093fa
push eax
push edi
call fcn.0040a76e
add esp, 0xc
jmp 0x403222
mov eax, dword [0x421ba8]
cmp eax, ebx
je 0x402d90
push eax
call fcn.0040948f
mov dword [0x421ba8], ebx
movzx eax, word [0x421be2]
push ebx
push 3
push eax
call fcn.0040472a
cmp eax, ebx
je 0x402db1
cmp eax, dword [ebp + 0x74]
jle 0x402dac
mov dword [ebp + 0x74], eax
cmp eax, 1
jg 0x402d60
movzx eax, word [0x421be2]
push 1
push eax
push dword [0x421ba8]
call fcn.004083d2
mov ecx, dword [0x421ba8]
push 0x1800
lea eax, [ebp - 0x26b8]
push eax
movzx eax, word [0x421be2]
push dword [0x42248c]
call fcn.004022dd
mov esi, 0x421c8c
test al, al
je 0x402e05
push 0x400
push esi
lea eax, [ebp - 0x26b8]
push eax
call fcn.0040d667
mov eax, dword [0x411b48]
mov ecx, dword [eax + 0x28]
mov dword [0x422490], ecx
mov ecx, dword [eax + 0x2c]
mov dword [0x422494], ecx
mov ecx, dword [eax + 0x30]
mov dword [0x422498], ecx
mov ecx, dword [eax + 0x34]
mov dword [0x42249c], ecx
mov ecx, dword [eax + 0x38]
mov dword [0x4224a0], ecx
mov eax, dword [eax + 0x3c]
mov ecx, dword [0x421ba8]
mov dword [0x4224a4], eax
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xc]
push eax
movzx eax, word [0x421be2]
call fcn.0040220a
test al, al
je 0x402e91
mov eax, dword [ebp - 0xc]
mov dword [0x422490], eax
mov eax, dword [ebp - 8]
mov dword [0x422494], eax
mov eax, dword [ebp - 0x14]
mov dword [0x422498], eax
mov eax, dword [ebp - 0x10]
mov dword [0x42249c], eax
mov eax, dword [ebp + 0x1c]
mov dword [0x4224a0], eax
mov eax, dword [ebp + 0x20]
mov dword [0x4224a4], eax
movzx eax, word [0x421be2]
push 0x421bc4
push eax
push dword [0x421ba8]
call fcn.0040d1b5
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x402ec1
cmp word [eax], bx
je 0x402ec1
push 0x400
push eax
push esi
call fcn.0040cbaa
push esi
call fcn.004071a5
cmp word [eax], 0x5c
sete bl
test bl, bl
je 0x402ed7
xor ecx, ecx
mov word [eax], cx
xor edi, edi
cmp word [0x421c8c], di
je 0x402f0c
cmp word [0x421c8e], di
je 0x402f0c
mov eax, 0x421c90
cmp word [0x421c90], di
je 0x402f0c
cmp word [eax], 0x3a
jne 0x402f05
push 0x5f
pop ecx
mov word [eax], cx
inc eax
inc eax
cmp word [eax], di
jne 0x402ef9
push esi
push esi
call fcn.00407674
mov eax, dword [0x411b48]
test byte [eax + 0x24], 0x10
je 0x402f2c
mov eax, dword [eax + 0x1c]
cmp eax, edi
je 0x402f2a
cmp eax, 0xb
jne 0x402f2c
mov bl, 1
cmp byte [0x429ea9], 0x49
push edi
sete al
movzx eax, al
push eax
movzx eax, byte [0x4295c2]
push eax
push esi
push edi
call fcn.0040a285
test al, al
je 0x403231
cmp byte [0x4295c2], 0
jne 0x40302f
xor edi, edi
test bl, bl
jne 0x4030b3
push esi
call fcn.004046b3
cmp eax, 0xffffffff
je 0x40309d
test eax, eax
je 0x402fa9
cmp eax, 1
jne 0x40302f
mov eax, dword [0x429500]
cmp eax, 2
je 0x403222
cmp byte [0x429521], 0
jne 0x402fa5
cmp byte [0x429520], 0
je 0x402fb7
test edi, edi
jmp 0x402fb1
mov eax, dword [0x429500]
cmp eax, 2
je 0x403222
test eax, eax
je 0x402fc0
cmp eax, 3
jne 0x40302a
mov esi, 0x421c8c
push esi
lea eax, [ebp - 0x9d0]
push eax
call fcn.00409995
movzx eax, word [0x421bc8]
movzx ecx, word [0x421bc6]
push 0
shl eax, 0x10
add eax, ecx
push eax
push dword [0x41092c]
lea eax, [ebp - 0x9d0]
push dword [0x410928]
push eax
push 0
call fcn.0040b0d7
cmp al, 0x43
je 0x403231
cmp al, 0x41
je 0x4031b7
cmp al, 0x4e
je 0x403222
cmp al, 0x52
je 0x403083
cmp al, 0x59
je 0x40302a
cmp al, 0x72
je 0x403083
cmp al, 0x79
jne 0x402fc0
mov esi, 0x421c8c
mov eax, dword [0x411b48]
test byte [eax + 0x40], 1
je 0x4031fc
call fcn.0040d5f7
xor edi, edi
cmp eax, edi
je 0x4031fe
cmp eax, 9
je 0x40337b
cmp eax, 1
jne 0x4031e1
cmp dword [0x4108e8], edi
jne 0x4031dc
cmp dword [0x4224a8], edi
je 0x4031c6
push edi
call fcn.0040a243
pop ecx
jmp 0x4031dc
lea eax, [ebp - 0x9d0]
push eax
mov esi, 0x421c8c
push esi
call fcn.00409995
xor edi, edi
inc edi
jmp 0x402f69
cmp byte [0x429520], 0
je 0x40302f
test edi, edi
je 0x403222
jmp 0x40302a
cmp byte [0x429520], 0
jne 0x403222
cmp word [0x421c8c], 0
je 0x403222
cmp dword [0x429524], 1
je 0x403222
mov eax, dword [0x411b48]
mov ecx, dword [eax + 0x1c]
xor ebx, ebx
xor edi, edi
cmp ecx, ebx
je 0x4030f0
cmp ecx, 0xb
jne 0x4030f3
mov edi, dword [eax + 0x24]
mov esi, 0x421c8c
push esi
call fcn.00403bdc
test al, al
jne 0x40316d
cmp byte [0x429567], al
push edi
sete al
movzx eax, al
push eax
push esi
push ebx
call fcn.00403e13
test eax, eax
je 0x40316d
push 1
push esi
call fcn.00403e7f
cmp byte [0x429567], 0
push edi
sete al
movzx eax, al
push eax
push esi
push ebx
call fcn.00403e13
test eax, eax
je 0x40316d
push esi
push 0x6f
call fcn.004093fa
push eax
push 0x42aeda
call fcn.0040a76e
add esp, 0xc
push esi
mov esi, 0x4267b8
push ebx
mov ecx, esi
call fcn.0040191c
mov ecx, esi
call fcn.00401a17
jmp 0x403222
push esi
lea ecx, [ebp - 0x128]
call fcn.0040cea6
push dword [0x422494]
lea ecx, [ebp + 0x30]
push dword [0x422490]
call fcn.0040244f
push dword [0x4224a4]
lea ecx, [ebp + 0x30]
push dword [0x4224a0]
call fcn.0040244f
push dword [0x42249c]
lea ecx, [ebp + 0x30]
push dword [0x422498]
call fcn.0040244f
jmp 0x403222
mov dword [0x429500], 1
jmp 0x40302f
push esi
push 0x73
call fcn.004093fa
push eax
push 0x42aeda
call fcn.0040a76e
add esp, 0xc
inc dword [ebp + 0x50]
jmp 0x403222
cmp eax, dword [ebp + 0x74]
jle 0x4031e9
mov dword [ebp + 0x74], eax
push esi
push 0x73
call fcn.004093fa
push eax
push 0x42aeda
jmp 0x402d6e
xor edi, edi
mov dword [0x421c5c], edi
call fcn.00401d98
cmp eax, edi
je 0x403222
cmp eax, dword [ebp + 0x74]
jle 0x403215
mov dword [ebp + 0x74], eax
cmp dword [0x421c5c], 1
jg 0x403387
inc dword [ebp + 0x6c]
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp + 0x5c]
jl 0x4029c4
mov ecx, dword [0x421b78]
push 0
push dword [ebp]
push dword [ebp - 4]
call fcn.00403a4e
mov ecx, dword [0x421b78]
call fcn.0040361f
push 0x2000
push dword [0x421b54]
mov dword [0x421b98], eax
mov dword [0x421b9c], edx
call fcn.004041f0
mov eax, dword [ebp + 4]
inc dword [ebp + 0x3c]
cmp dword [ebp + 0x68], 0
mov dword [0x421b58], eax
mov eax, dword [ebp + 0xc]
mov dword [0x421b60], eax
mov eax, dword [ebp + 0x10]
mov dword [0x421b64], eax
je 0x402526
mov edi, 0x400
push edi
lea eax, [ebp - 0x9d0]
push eax
lea ecx, [ebp - 0x128]
call fcn.0040cf1e
test al, al
je 0x4033e7
mov esi, dword [ebp + 0x30]
add esi, 0x10
xor ebx, ebx
mov eax, dword [esi - 0x10]
mov dword [ebp + 0x1c], eax
mov eax, dword [esi - 0xc]
mov dword [ebp + 0x20], eax
mov eax, dword [esi - 8]
mov dword [ebp + 0x54], eax
mov eax, dword [esi - 4]
mov dword [ebp + 0x58], eax
mov eax, dword [esi]
mov dword [ebp + 0x60], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x80]
mov dword [ebp + 0x64], eax
call fcn.0040d06b
lea ecx, [ebp - 0x5c]
call fcn.0040d06b
lea ecx, [ebp - 0x38]
call fcn.0040d06b
cmp dword [0x429a8c], ebx
je 0x403306
lea eax, [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x80]
call fcn.0040d071
cmp dword [0x429a90], ebx
je 0x403324
cmp dword [ebp + 0x58], ebx
jne 0x403318
cmp dword [ebp + 0x54], ebx
je 0x403324
lea eax, [ebp + 0x54]
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040d071
cmp dword [0x429a94], ebx
je 0x403342
cmp dword [ebp + 0x64], ebx
jne 0x403336
cmp dword [ebp + 0x60], ebx
je 0x403342
lea eax, [ebp + 0x60]
push eax
lea ecx, [ebp - 0x38]
call fcn.0040d071
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x9d0]
push eax
push ebx
call fcn.00403f2d
push edi
lea eax, [ebp - 0x9d0]
push eax
lea ecx, [ebp - 0x128]
add esi, 0x18
call fcn.0040cf1e
test al, al
jne 0x4032b7
jmp 0x4033e9
push edi
call fcn.0040a243
pop ecx
jmp 0x40328f
lea ecx, [ebp - 0x118]
call fcn.0040146d
xor esi, esi
cmp dword [ebp - 0x128], esi
je 0x4033a7
push dword [ebp - 0x128]
call fcn.0040948f
cmp dword [ebp + 0x30], esi
je 0x4033b4
push dword [ebp + 0x30]
call fcn.0040948f
lea ecx, [ebp - 0x1c0]
call fcn.0040146d
cmp dword [ebp - 0x1d0], esi
je 0x4033d2
push dword [ebp - 0x1d0]
call fcn.0040948f
cmp dword [ebp + 0x24], esi
je 0x4033df
push dword [ebp + 0x24]
call fcn.0040948f
mov eax, dword [ebp + 0x74]
jmp 0x4034f7
xor ebx, ebx
cmp byte [0x425672], 0
jne 0x403421
cmp dword [ebp + 0x40], ebx
je 0x403421
cmp byte [0x422524], 0
jne 0x403421
push 0xa0
call fcn.004093fa
push eax
push 0x42aeda
call fcn.0040a76e
mov ebx, dword [ebp + 0x74]
pop ecx
pop ecx
test ebx, ebx
jne 0x403424
inc ebx
jmp 0x403424
mov ebx, dword [ebp + 0x74]
mov edi, dword [ebp + 0x48]
movzx esi, word [ebp + 0x50]
inc edi
cmp edi, esi
jne 0x403459
cmp byte [0x429ea9], 0x49
je 0x403459
cmp dword [0x4224a8], 0
jne 0x403459
push 0x343
call fcn.004093fa
push eax
push 0x42aeda
call fcn.0040a76e
pop ecx
pop ecx
test edi, edi
jne 0x403473
cmp ebx, 1
jg 0x403473
xor ax, ax
cmp ax, word [ebp + 0x4c]
sbb ebx, ebx
and ebx, 0x46
add ebx, 0xb
jmp 0x40349d
cmp edi, esi
jne 0x403480
cmp ebx, 1
jg 0x403480
push 0x52
jmp 0x40348e
cmp word [ebp + 0x4c], 0
jbe 0x403491
cmp ebx, 1
jg 0x403491
push 0x51
pop ebx
jmp 0x40349d
cmp word [ebp + 0x50], 0
jbe 0x40349d
test ebx, ebx
jne 0x40349d
inc ebx
lea ecx, [ebp - 0x118]
call fcn.0040146d
xor esi, esi
cmp dword [ebp - 0x128], esi
je 0x4034bd
push dword [ebp - 0x128]
call fcn.0040948f
cmp dword [ebp + 0x30], esi
je 0x4034ca
push dword [ebp + 0x30]
call fcn.0040948f
lea ecx, [ebp - 0x1c0]
call fcn.0040146d
cmp dword [ebp - 0x1d0], esi
je 0x4034e8
push dword [ebp - 0x1d0]
call fcn.0040948f
cmp dword [ebp + 0x24], esi
je 0x4034f5
push dword [ebp + 0x24]
call fcn.0040948f
mov eax, ebx
pop edi
pop esi
pop ebx
add ebp, 0x78
leave
ret