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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
mov eax, 0x273c
call fcn.00401ec0
or dword [ebp + 0x44], 0xffffffff
push ebx
push esi
xor esi, esi
push edi
push 0x40
lea ecx, [ebp + 0x20]
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x70], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x64], esi
call fcn.0040306a
lea ecx, [ebp - 0x1dc]
call fcn.0040d567
lea ecx, [ebp - 0x134]
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x34], esi
call fcn.0040d567
mov eax, dword [ebp + 0x20]
mov dword [0x414b48], eax
mov dword [0x413908], 1
cmp byte [0x42dd82], 0
jne 0x403f89
and dword [ebp + 0x58], 0
and dword [ebp + 0x68], 0
mov ebx, 0x424c8c
mov eax, dword [ebp + 0x58]
xor edi, edi
inc edi
cmp eax, 0x40
mov esi, 0x41393c
jl 0x403258
cmp byte [0x425524], 0
je 0x403623
cmp eax, dword [ebp + 0x24]
jl 0x40326a
mov eax, dword [ebp + 0x58]
inc eax
push eax
lea ecx, [ebp + 0x20]
call fcn.00403130
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x68]
push 4
add ecx, eax
push esi
mov dword [0x414b48], ecx
call fcn.00405280
test eax, eax
je 0x403570
push 4
push 0x424bb5
push esi
call fcn.00409cae
test eax, eax
jne 0x40357c
call fcn.00408f87
xor esi, esi
cmp eax, esi
jne 0x403605
xor eax, eax
mov word [0x424c8c], ax
movzx eax, byte [0x424be9]
push eax
movzx eax, word [0x424c08]
push 0x424bec
push 2
push eax
call fcn.00405644
cmp eax, esi
je 0x4032e4
cmp eax, dword [ebp + 0x70]
jle 0x4032dc
mov dword [ebp + 0x70], eax
cmp eax, edi
jg 0x40360a
movzx eax, word [0x424c0a]
push esi
push esi
push 3
push eax
call fcn.00405644
cmp eax, esi
je 0x403309
cmp eax, dword [ebp + 0x70]
jle 0x403301
mov dword [ebp + 0x70], eax
cmp eax, edi
jg 0x40360a
movzx eax, word [0x424c0a]
push esi
push eax
push dword [0x424ba8]
call fcn.0040884d
movzx eax, word [0x424c0a]
push 0x424bee
push eax
push dword [0x424ba8]
call fcn.0040d8a3
movzx eax, word [0x424c0c]
push esi
push esi
push esi
push eax
call fcn.00405644
cmp eax, esi
je 0x403359
cmp eax, dword [ebp + 0x70]
jle 0x403351
mov dword [ebp + 0x70], eax
cmp eax, edi
jg 0x40360a
mov eax, dword [0x424bec]
mov ecx, dword [0x424ba8]
shr eax, 0xb
and al, 1
mov byte [ebp + 0x6f], al
push 0x1800
lea eax, [ebp - 0x26c4]
push eax
movzx eax, word [0x424c0a]
push dword [0x42548c]
call fcn.00402fd8
test al, al
je 0x4033ad
mov edi, 0x400
push edi
push ebx
lea eax, [ebp - 0x26c4]
push eax
call fcn.0040dd8e
push edi
push esi
push ebx
call fcn.004076b3
mov byte [ebp + 0x6f], 1
lea eax, [ebp - 0x20]
push eax
movzx eax, word [0x424bf0]
push eax
movzx eax, word [0x424bf2]
push eax
call dword [0x40f154]
mov eax, dword [0x414b48]
add eax, 0x28
push eax
lea eax, [ebp - 0x20]
push eax
call dword [0x40f158]
mov eax, dword [0x414b48]
push 8
push 0
add eax, 0x30
push eax
call fcn.00409a46
mov eax, dword [0x414b48]
push 8
push 0
add eax, 0x38
push eax
call fcn.00409a46
mov eax, dword [0x414b48]
lea ecx, [eax + 0x38]
push ecx
lea ecx, [eax + 0x30]
push ecx
mov ecx, dword [0x424ba8]
add eax, 0x28
push eax
movzx eax, word [0x424c0a]
call fcn.00402f05
movzx esi, word [0x424c0a]
mov eax, dword [0x424ba8]
mov edi, eax
test esi, esi
je 0x403437
test eax, eax
jne 0x40346d
mov byte [ebp + 0x77], 0
jmp 0x403491
push edi
call fcn.0040588d
movzx eax, ax
mov dword [ebp + 0x40], eax
lea eax, [edi + 2]
push eax
call fcn.0040588d
movzx eax, ax
lea ecx, [esi - 4]
cmp eax, ecx
ja 0x403437
cmp dword [ebp + 0x40], 0x17
je 0x403474
push 0xfffffffffffffffc
pop ecx
sub ecx, eax
lea edi, [edi + eax + 4]
add esi, ecx
cmp esi, 4
jae 0x40343d
jmp 0x403437
push ebx
push 0xb0
mov byte [ebp + 0x77], 1
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
add esp, 0xc
lea ecx, [ebp - 0xec4]
call fcn.0040316d
push 0xce8
xor edi, edi
push edi
lea eax, [ebp - 0xec4]
push eax
call fcn.00409a46
mov esi, 0x400
push esi
push ebx
lea eax, [ebp - 0xa94]
push eax
call fcn.0040d258
push esi
lea eax, [ebp - 0xe94]
push eax
lea eax, [ebp - 0xa94]
push eax
call fcn.004078fe
mov eax, dword [0x414b48]
add eax, 0x28
push eax
lea ecx, [ebp - 0x280]
call fcn.0040d75f
mov eax, dword [0x424c00]
mov dword [ebp - 0x1e4], eax
mov eax, dword [0x424c04]
mov dword [ebp - 0x1e0], eax
mov eax, 0x200
or word [ebp - 0xebc], ax
cmp byte [ebp + 0x77], 0
jne 0x403559
push 5
push edi
lea eax, [ebp - 0xec4]
push eax
mov ecx, 0x42eee8
call fcn.004020e3
test eax, eax
je 0x403559
call fcn.0040298c
test eax, eax
je 0x403556
cmp byte [ebp + 0x6f], 0
mov eax, ebx
jne 0x403541
mov eax, 0x40f308
push eax
lea ecx, [ebp - 0x1dc]
call fcn.0040d594
inc dword [ebp + 0x58]
add dword [ebp + 0x68], 0x48
jmp 0x403559
inc dword [ebp + 0x48]
add dword [ebp + 0x50], 1
lea ecx, [ebp - 0x294]
adc dword [ebp + 0x54], edi
call fcn.0040206d
jmp 0x40323b
mov dword [ebp + 0x70], 0x33
jmp 0x403620
mov ecx, dword [0x424c30]
mov eax, ecx
xor eax, dword [ebp + 0x50]
mov edx, 0xffff
and eax, edx
xor ebx, ebx
or eax, ebx
je 0x4035c0
cmp ecx, edx
jne 0x4035a0
cmp dword [0x424c34], ebx
je 0x4035c0
push 0xa0
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
pop ecx
pop ecx
mov dword [ebp + 0x70], 3
jmp 0x403620
push 0x40f304
lea eax, [ebp + 0x11]
push eax
mov byte [ebp + 0x10], 0x50
call fcn.00409be8
push 4
push 0x424bba
push esi
call fcn.00409cae
test eax, eax
je 0x403600
cmp byte [0x42552c], bl
je 0x4035fb
push 4
lea eax, [ebp + 0x10]
push eax
push esi
call fcn.00409cae
test eax, eax
je 0x403600
mov dword [ebp + 0x3c], edi
jmp 0x403620
and dword [ebp + 0x3c], ebx
jmp 0x403620
mov dword [ebp + 0x70], eax
jmp 0x403620
push ebx
push 0x68
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
add esp, 0xc
mov dword [ebp + 0x64], edi
cmp byte [0x425524], 0
mov eax, dword [0x424b98]
mov dword [ebp - 4], eax
mov eax, dword [0x424b9c]
mov dword [ebp], eax
mov eax, dword [0x424b58]
mov dword [ebp - 8], eax
mov eax, dword [0x424b60]
mov dword [ebp + 8], eax
mov eax, dword [0x424b64]
mov dword [ebp + 0xc], eax
je 0x4036a7
and dword [0x425528], 0
cmp byte [0x4331ea], 0
je 0x403673
push 0x40f300
push 0x4331ea
call fcn.00407d48
cmp word [0x4335ea], 0
je 0x40368c
push 0x40f2f8
push 0x4335ea
call fcn.00407d87
mov ecx, dword [0x424b78]
test ecx, ecx
je 0x40369b
mov eax, dword [ecx]
push edi
call dword [eax]
and dword [0x424b78], 0
call fcn.00404fb4
and dword [ebp + 0x68], 0
cmp dword [ebp + 0x58], 0
jle 0x403f2b
mov eax, dword [ebp + 0x38]
shl eax, 6
mov dword [ebp + 0x40], eax
jmp 0x4036c3
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x68]
add eax, ecx
imul ecx, ecx, 0x48
add ecx, dword [ebp + 0x20]
mov dword [ebp + 0x44], eax
mov dword [0x414b48], ecx
lea ecx, [ebp - 0x1dc]
call fcn.0040d5e6
cmp byte [0x425524], 0
mov dword [ebp + 4], eax
je 0x40379d
mov eax, dword [0x414b48]
mov eax, dword [eax + 0x20]
cmp eax, dword [0x425528]
je 0x40379d
movzx ecx, word [0x424c20]
cmp eax, ecx
jne 0x403744
cmp byte [0x4331ea], 0
je 0x403729
push 0x40f2f4
push 0x4331ea
call fcn.00407d48
cmp word [0x4335ea], 0
je 0x403774
push 0x40f2ec
push 0x4335ea
call fcn.00407d87
jmp 0x403774
cmp byte [0x4331ea], 0
je 0x403758
push eax
push 0x4331ea
call fcn.00402e8f
cmp word [0x4335ea], 0
je 0x403774
mov eax, dword [0x414b48]
push dword [eax + 0x20]
push 0x4335ea
call fcn.00402ec9
mov eax, dword [0x414b48]
mov ecx, dword [0x424b78]
mov eax, dword [eax + 0x20]
mov dword [0x425528], eax
test ecx, ecx
je 0x403791
mov eax, dword [ecx]
push 1
call dword [eax]
and dword [0x424b78], 0
call fcn.00404fb4
mov eax, dword [0x414b48]
mov edi, dword [eax]
add edi, dword [0x424ba0]
mov esi, dword [eax + 4]
adc esi, dword [0x424ba4]
push 0
push 0x2000
push esi
push edi
call fcn.00401e00
mov ebx, eax
mov eax, edi
sub eax, ebx
mov ecx, esi
sbb ecx, edx
test esi, esi
jg 0x403874
jl 0x4037dd
test edi, edi
jae 0x403874
push 0xa0
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
cmp dword [ebp + 0x44], 0
pop ecx
pop ecx
mov dword [ebp + 0x70], 2
jne 0x403868
mov eax, dword [0x424ba0]
mov ecx, dword [0x424ba4]
mov edx, eax
or edx, ecx
je 0x403868
mov dword [ebp + 0x60], ecx
xor ecx, ecx
push ecx
mov dword [ebp + 0x5c], eax
mov eax, dword [0x414b48]
mov dword [0x424ba0], ecx
mov dword [0x424ba4], ecx
mov esi, dword [eax + 4]
mov edi, dword [eax]
push 0x2000
push esi
push edi
call fcn.00401e00
mov ebx, eax
mov eax, edi
sub eax, ebx
mov ecx, esi
sbb ecx, edx
test esi, esi
jg 0x403874
jl 0x403851
test edi, edi
jae 0x403874
push 0xa0
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
pop ecx
pop ecx
mov dword [ebp + 0x70], 3
jmp 0x403f1c
cmp eax, dword [0x424b98]
jne 0x4038b5
cmp ecx, dword [0x424b9c]
jne 0x4038b5
cmp byte [0x425524], 0
jne 0x4038b5
mov eax, dword [0x424b58]
mov ecx, dword [0x424b54]
sub eax, ebx
sub eax, ecx
cdq
add dword [0x424b60], eax
adc dword [0x424b64], edx
add ebx, ecx
mov dword [0x424b58], ebx
xor edi, edi
jmp 0x403924
xor edi, edi
push edi
push ecx
mov ecx, dword [0x424b78]
push eax
call fcn.0040486d
mov ecx, dword [0x424b78]
call fcn.00404329
push 0x2000
push dword [0x424b54]
mov dword [0x424b98], eax
mov dword [0x424b9c], edx
call fcn.00405127
cdq
cmp edx, edi
mov dword [0x424b60], eax
mov dword [0x424b64], edx
jg 0x403909
jl 0x403851
cmp eax, edi
jbe 0x403851
mov eax, dword [0x424b54]
add eax, ebx
mov dword [0x424b58], eax
mov eax, ebx
cdq
sub dword [0x424b60], eax
sbb dword [0x424b64], edx
push 4
mov ebx, 0x41393c
push ebx
call fcn.00405280
test eax, eax
je 0x403851
push 4
push 0x424bb0
push ebx
call fcn.00409cae
mov esi, 0xa0
test eax, eax
je 0x4039f8
push esi
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
mov eax, dword [0x424ba0]
pop ecx
pop ecx
mov ecx, dword [0x424ba4]
mov dword [ebp + 0x70], 2
cmp dword [ebp + 0x44], edi
jne 0x403983
mov edx, eax
or edx, ecx
jne 0x4039e4
or eax, ecx
jne 0x403f1c
mov eax, dword [ebp + 0x5c]
or eax, dword [ebp + 0x60]
je 0x403f1c
mov eax, dword [ebp + 0x5c]
mov dword [0x424ba0], eax
mov eax, dword [ebp + 0x60]
mov dword [0x424ba4], eax
xor edi, edi
mov ebx, 0x41393c
mov eax, dword [0x414b48]
push dword [eax + 4]
push dword [eax]
call fcn.0040547a
test eax, eax
jne 0x4039de
push 4
push ebx
call fcn.00405280
test eax, eax
je 0x4039de
push 4
push 0x424bb0
push ebx
call fcn.00409cae
test eax, eax
je 0x4039f8
push esi
jmp 0x403856
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], ecx
mov dword [0x424ba0], edi
mov dword [0x424ba4], edi
jmp 0x4039ae
call fcn.004089ce
mov ebx, eax
cmp ebx, edi
je 0x403a1e
push esi
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
pop ecx
pop ecx
mov dword [ebp + 0x70], ebx
jmp 0x403f1c
xor eax, eax
push edi
mov word [0x424c8c], ax
movzx eax, word [0x424be0]
push 0x424bc2
push 2
push eax
call fcn.00405644
cmp eax, edi
je 0x403a6b
cmp eax, dword [ebp + 0x70]
jle 0x403a47
mov dword [ebp + 0x70], eax
cmp eax, 1
jle 0x403a6b
push 0x424c8c
push 0x68
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
add esp, 0xc
jmp 0x403f1c
mov eax, dword [0x424ba8]
cmp eax, edi
je 0x403a80
push eax
call fcn.00409906
mov dword [0x424ba8], edi
movzx eax, word [0x424be2]
push edi
push edi
push 3
push eax
call fcn.00405644
cmp eax, edi
je 0x403aa2
cmp eax, dword [ebp + 0x70]
jle 0x403a9d
mov dword [ebp + 0x70], eax
cmp eax, 1
jg 0x403a4c
movzx eax, word [0x424be2]
push 1
push eax
push dword [0x424ba8]
call fcn.0040884d
mov ecx, dword [0x424ba8]
push 0x1800
lea eax, [ebp - 0x26c4]
push eax
movzx eax, word [0x424be2]
push dword [0x42548c]
call fcn.00402fd8
mov ebx, 0x400
mov esi, 0x424c8c
test al, al
je 0x403aff
push ebx
push esi
lea eax, [ebp - 0x26c4]
push eax
call fcn.0040dd8e
push ebx
push edi
push esi
call fcn.004076b3
mov eax, dword [0x414b48]
mov ecx, dword [eax + 0x28]
mov dword [0x425490], ecx
mov ecx, dword [eax + 0x2c]
mov dword [0x425494], ecx
mov ecx, dword [eax + 0x30]
mov dword [0x425498], ecx
mov ecx, dword [eax + 0x34]
mov dword [0x42549c], ecx
mov ecx, dword [eax + 0x38]
mov dword [0x4254a0], ecx
mov eax, dword [eax + 0x3c]
mov ecx, dword [0x424ba8]
mov dword [0x4254a4], eax
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
movzx eax, word [0x424be2]
call fcn.00402f05
test al, al
je 0x403b8b
mov eax, dword [ebp - 0x10]
mov dword [0x425490], eax
mov eax, dword [ebp - 0xc]
mov dword [0x425494], eax
mov eax, dword [ebp - 0x18]
mov dword [0x425498], eax
mov eax, dword [ebp - 0x14]
mov dword [0x42549c], eax
mov eax, dword [ebp + 0x18]
mov dword [0x4254a0], eax
mov eax, dword [ebp + 0x1c]
mov dword [0x4254a4], eax
movzx eax, word [0x424be2]
push 0x424bc4
push eax
push dword [0x424ba8]
call fcn.0040d8a3
mov eax, dword [ebp + 4]
cmp eax, edi
je 0x403bb7
cmp word [eax], di
je 0x403bb7
push ebx
push eax
push esi
call fcn.0040d258
push esi
call fcn.0040761f
cmp word [eax], 0x5c
sete byte [ebp + 0x77]
cmp byte [ebp + 0x77], 0
je 0x403bd0
xor ecx, ecx
mov word [eax], cx
cmp word [0x424c8c], di
je 0x403c03
cmp word [0x424c8e], di
je 0x403c03
mov eax, 0x424c90
cmp word [0x424c90], di
je 0x403c03
cmp word [eax], 0x3a
jne 0x403bfc
push 0x5f
pop ecx
mov word [eax], cx
inc eax
inc eax
cmp word [eax], di
jne 0x403bf0
push esi
push esi
call fcn.00407aee
mov eax, dword [0x414b48]
test byte [eax + 0x24], 0x10
je 0x403c2d
mov ecx, dword [eax + 0x10]
or ecx, dword [eax + 0x14]
jne 0x403c2d
mov eax, dword [eax + 0x1c]
cmp eax, edi
je 0x403c29
cmp eax, 0xb
jne 0x403c2d
mov byte [ebp + 0x77], 1
cmp byte [0x4325b9], 0x49
push edi
sete al
movzx eax, al
push eax
movzx eax, byte [0x431cd2]
push eax
push esi
push edi
call fcn.0040a812
test al, al
je 0x403f2b
cmp byte [0x431cd2], 0
jne 0x403d68
xor ebx, ebx
cmp byte [ebp + 0x77], bl
jne 0x403dba
push esi
call fcn.004055cd
cmp eax, 0xffffffff
je 0x403d50
cmp eax, edi
je 0x403cab
cmp eax, 1
jne 0x403d68
mov eax, dword [0x431c10]
cmp eax, 2
je 0x403f1c
cmp byte [0x431c31], 0
jne 0x403ca7
cmp byte [0x431c30], 0
je 0x403cb9
test ebx, ebx
jmp 0x403cb3
mov eax, dword [0x431c10]
cmp eax, 2
je 0x403f1c
xor edi, edi
cmp eax, edi
je 0x403cc8
cmp eax, 3
jne 0x403d63
mov esi, 0x424c8c
push esi
lea eax, [ebp - 0x9dc]
push eax
call fcn.00409d53
movzx eax, word [0x424bc8]
movzx ecx, word [0x424bc6]
push edi
shl eax, 0x10
add eax, ecx
push eax
push dword [0x41392c]
lea eax, [ebp - 0x9dc]
push dword [0x413928]
push eax
push edi
call fcn.0040b68c
cmp al, 0x43
je 0x403f2b
cmp al, 0x41
je 0x403ebe
cmp al, 0x4e
je 0x403f1c
cmp al, 0x52
je 0x403d34
cmp al, 0x59
je 0x403d61
cmp al, 0x72
je 0x403d34
cmp al, 0x79
je 0x403d61
xor edi, edi
jmp 0x403cc8
lea eax, [ebp - 0x9dc]
push eax
mov esi, 0x424c8c
push esi
call fcn.00409d53
xor ebx, ebx
inc ebx
xor edi, edi
jmp 0x403c6b
cmp byte [0x431c30], 0
je 0x403d68
cmp ebx, edi
je 0x403f1c
xor edi, edi
mov esi, 0x424c8c
mov eax, dword [0x414b48]
test byte [eax + 0x40], 1
je 0x403ef8
call fcn.0040dd1e
cmp eax, edi
je 0x403ef8
cmp eax, 9
je 0x40407e
cmp eax, 1
jne 0x403ee8
cmp dword [0x4138e8], edi
jne 0x403ee3
cmp dword [0x4254a8], edi
je 0x403ecd
push edi
call fcn.0040a7d0
pop ecx
jmp 0x403ee3
cmp byte [0x431c30], 0
jne 0x403f1c
cmp word [0x424c8c], 0
je 0x403f1c
cmp dword [0x431c34], 1
je 0x403f1c
mov eax, dword [0x414b48]
mov ecx, dword [eax + 0x1c]
xor ebx, ebx
xor edi, edi
cmp ecx, ebx
je 0x403df7
cmp ecx, 0xb
jne 0x403dfa
mov edi, dword [eax + 0x24]
mov esi, 0x424c8c
push esi
call fcn.00404b10
test al, al
jne 0x403e74
cmp byte [0x431c77], al
push edi
sete al
movzx eax, al
push eax
push esi
push ebx
call fcn.00404d3e
test eax, eax
je 0x403e74
push 1
push esi
call fcn.00404daa
cmp byte [0x431c77], 0
push edi
sete al
movzx eax, al
push eax
push esi
push ebx
call fcn.00404d3e
test eax, eax
je 0x403e74
push esi
push 0x6f
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
add esp, 0xc
push esi
mov esi, 0x42ddbc
push ebx
mov ecx, esi
call fcn.0040254b
mov ecx, esi
call fcn.00402646
jmp 0x403f1c
push esi
lea ecx, [ebp - 0x134]
call fcn.0040d594
push dword [0x425494]
lea ecx, [ebp + 0x2c]
push dword [0x425490]
call fcn.0040314a
push dword [0x4254a4]
lea ecx, [ebp + 0x2c]
push dword [0x4254a0]
call fcn.0040314a
push dword [0x42549c]
lea ecx, [ebp + 0x2c]
push dword [0x425498]
call fcn.0040314a
jmp 0x403f1c
mov dword [0x431c10], 1
jmp 0x403d68
push esi
push 0x73
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
add esp, 0xc
inc dword [ebp + 0x4c]
jmp 0x403f1c
cmp eax, dword [ebp + 0x70]
jle 0x403ef0
mov dword [ebp + 0x70], eax
push esi
push 0x73
jmp 0x403a53
mov dword [0x424c5c], edi
call fcn.00402a9a
cmp eax, edi
je 0x403f1c
cmp eax, dword [ebp + 0x70]
jle 0x403f0f
mov dword [ebp + 0x70], eax
cmp dword [0x424c5c], 1
jg 0x40408a
inc dword [ebp + 0x68]
mov eax, dword [ebp + 0x68]
cmp eax, dword [ebp + 0x58]
jl 0x4036c0
mov ecx, dword [0x424b78]
push 0
push dword [ebp]
push dword [ebp - 4]
call fcn.0040486d
mov ecx, dword [0x424b78]
call fcn.00404329
push 0x2000
push dword [0x424b54]
mov dword [0x424b98], eax
mov dword [0x424b9c], edx
call fcn.00405127
mov eax, dword [ebp - 8]
inc dword [ebp + 0x38]
cmp dword [ebp + 0x64], 0
mov dword [0x424b58], eax
mov eax, dword [ebp + 8]
mov dword [0x424b60], eax
mov eax, dword [ebp + 0xc]
mov dword [0x424b64], eax
je 0x403221
mov edi, 0x400
push edi
lea eax, [ebp - 0x9dc]
push eax
lea ecx, [ebp - 0x134]
call fcn.0040d60c
test al, al
je 0x4040ea
mov esi, dword [ebp + 0x2c]
add esi, 0x10
xor ebx, ebx
mov eax, dword [esi - 0x10]
mov dword [ebp + 0x18], eax
mov eax, dword [esi - 0xc]
mov dword [ebp + 0x1c], eax
mov eax, dword [esi - 8]
mov dword [ebp + 0x50], eax
mov eax, dword [esi - 4]
mov dword [ebp + 0x54], eax
mov eax, dword [esi]
mov dword [ebp + 0x5c], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x8c]
mov dword [ebp + 0x60], eax
call fcn.0040d759
lea ecx, [ebp - 0x68]
call fcn.0040d759
lea ecx, [ebp - 0x44]
call fcn.0040d759
cmp dword [0x43219c], ebx
je 0x404006
lea eax, [ebp + 0x18]
push eax
lea ecx, [ebp - 0x8c]
call fcn.0040d75f
cmp dword [0x4321a0], ebx
je 0x404024
cmp dword [ebp + 0x54], ebx
jne 0x404018
cmp dword [ebp + 0x50], ebx
je 0x404024
lea eax, [ebp + 0x50]
push eax
lea ecx, [ebp - 0x68]
call fcn.0040d75f
cmp dword [0x4321a4], ebx
je 0x404042
cmp dword [ebp + 0x60], ebx
jne 0x404036
cmp dword [ebp + 0x5c], ebx
je 0x404042
lea eax, [ebp + 0x5c]
push eax
lea ecx, [ebp - 0x44]
call fcn.0040d75f
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x9dc]
push eax
push ebx
call fcn.00404e5f
push edi
lea eax, [ebp - 0x9dc]
push eax
lea ecx, [ebp - 0x134]
add esi, 0x18
call fcn.0040d60c
test al, al
jne 0x403fb1
jmp 0x4040ec
push edi
call fcn.0040a7d0
pop ecx
jmp 0x403f89
lea ecx, [ebp - 0x124]
call fcn.0040206d
xor esi, esi
cmp dword [ebp - 0x134], esi
je 0x4040aa
push dword [ebp - 0x134]
call fcn.00409906
cmp dword [ebp + 0x2c], esi
je 0x4040b7
push dword [ebp + 0x2c]
call fcn.00409906
lea ecx, [ebp - 0x1cc]
call fcn.0040206d
cmp dword [ebp - 0x1dc], esi
je 0x4040d5
push dword [ebp - 0x1dc]
call fcn.00409906
cmp dword [ebp + 0x20], esi
je 0x4040e2
push dword [ebp + 0x20]
call fcn.00409906
mov eax, dword [ebp + 0x70]
jmp 0x4041fa
xor ebx, ebx
cmp byte [0x42dd82], 0
jne 0x404124
cmp dword [ebp + 0x3c], ebx
je 0x404124
cmp byte [0x425524], 0
jne 0x404124
push 0xa0
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
mov ebx, dword [ebp + 0x70]
pop ecx
pop ecx
test ebx, ebx
jne 0x404127
inc ebx
jmp 0x404127
mov ebx, dword [ebp + 0x70]
mov edi, dword [ebp + 0x44]
movzx esi, word [ebp + 0x4c]
inc edi
cmp edi, esi
jne 0x40415c
cmp byte [0x4325b9], 0x49
je 0x40415c
cmp dword [0x4254a8], 0
jne 0x40415c
push 0x343
call fcn.00409871
push eax
push 0x4335ea
call fcn.0040ad23
pop ecx
pop ecx
test edi, edi
jne 0x404176
cmp ebx, 1
jg 0x404176
xor ax, ax
cmp ax, word [ebp + 0x48]
sbb ebx, ebx
and ebx, 0x46
add ebx, 0xb
jmp 0x4041a0
cmp edi, esi
jne 0x404183
cmp ebx, 1
jg 0x404183
push 0x52
jmp 0x404191
cmp word [ebp + 0x48], 0
jbe 0x404194
cmp ebx, 1
jg 0x404194
push 0x51
pop ebx
jmp 0x4041a0
cmp word [ebp + 0x4c], 0
jbe 0x4041a0
test ebx, ebx
jne 0x4041a0
inc ebx
lea ecx, [ebp - 0x124]
call fcn.0040206d
xor esi, esi
cmp dword [ebp - 0x134], esi
je 0x4041c0
push dword [ebp - 0x134]
call fcn.00409906
cmp dword [ebp + 0x2c], esi
je 0x4041cd
push dword [ebp + 0x2c]
call fcn.00409906
lea ecx, [ebp - 0x1cc]
call fcn.0040206d
cmp dword [ebp - 0x1dc], esi
je 0x4041eb
push dword [ebp - 0x1dc]
call fcn.00409906
cmp dword [ebp + 0x20], esi
je 0x4041f8
push dword [ebp + 0x20]
call fcn.00409906
mov eax, ebx
pop edi
pop esi
pop ebx
add ebp, 0x78
leave
ret