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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4c12fb
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2ee44
call fcn.004af740
mov eax, dword [0x4d88f0]
xor eax, esp
mov dword [esp + 0x2ee40], eax
push ebx
push esi
push edi
mov eax, dword [0x4d88f0]
xor eax, esp
push eax
lea eax, [esp + 0x2ee58]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
xor edx, edx
mov ebx, ecx
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], edx
cmp byte [eax + 0x3f4c], dl
je 0x403caa
mov dword [eax + 0x3958], edx
mov dword [eax + 0x395c], edx
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x410], dl
je 0x403d56
push 0x4c57cc
push esi
call fcn.00455af0
test al, al
jne 0x403d54
push 0x4c57c8
push esi
call fcn.00455af0
test al, al
jne 0x403d54
push 0x4c57c4
push esi
call fcn.00455af0
test al, al
jne 0x403d48
mov eax, esi
dec eax
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x403cf0
mov ecx, dword [str..ext]
mov dword [eax], ecx
mov dl, byte [0x4c57c0]
mov byte [eax + 4], dl
test edi, edi
je 0x403d48
cmp word [edi], 0
je 0x403d48
mov eax, edi
add eax, 0xfffffffe
jmp 0x403d20
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x403d20
mov ecx, dword [0x4c57b0]
mov dword [eax], ecx
mov edx, dword [0x4c57b4]
mov dword [eax + 4], edx
mov cx, word [0x4c57b8]
mov word [eax + 8], cx
push esi
call fcn.00457790
push edi
call fcn.004577b0
xor edx, edx
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x398b], 0
je 0x403d6a
push esi
call fcn.004364e0
xor edx, edx
mov eax, dword [ebx + 0x28]
mov byte [esp + 0x2e24c], 0
mov ecx, dword [eax + 0x3930]
cmp ecx, edx
mov byte [esp + 0x2e64c], 0
jge 0x403d99
mov edi, dword [eax + 0x3958]
or edi, dword [eax + 0x395c]
mov dword [esp + 0x40], ecx
jne 0x403d9d
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 0x3958]
or ecx, dword [eax + 0x395c]
je 0x403db4
mov byte [ebx + 0x23f8], 1
jmp 0x403dbb
and dword [eax + 0x393c], 0xffffffe7
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x281c], 0
lea ecx, [eax + 0x281c]
jne 0x403de3
add eax, 0x2c1c
cmp word [eax], dx
je 0x403de3
push 0x400
push ecx
push eax
call fcn.00455650
mov eax, dword [ebx + 0x28]
movzx edx, byte [eax + 0x397d]
mov ecx, dword [eax + 0x3950]
push 1
push edx
mov edx, dword [eax + 0x6bc4]
push ecx
push edx
lea ecx, [esp + 0x16d4c]
call fcn.00468780
mov dword [esp + 0x2ee60], 0
lea edx, [esp + 0x18d64]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x403e20
mov eax, dword [ebx + 0x28]
lea ecx, [esp + 0x2e90]
mov dword [esp + 0x19164], eax
call fcn.004128b0
lea ecx, [esp + 0x2eb4]
call fcn.004128b0
lea ecx, [esp + 0x2ed8]
call fcn.004128b0
mov eax, dword [ebx + 0x28]
push eax
lea ecx, [esp + 0xa8]
call fcn.00406b10
mov byte [esp + 0x2ee60], 1
mov eax, dword [ebx + 0x28]
xor edi, edi
cmp byte [eax + 0x3f4c], 0
lea esi, [eax + 0x3f4c]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
je 0x403eff
push 0x48
lea ecx, [esp + 0x50]
push edi
push ecx
call fcn.004afbb0
add esp, 0xc
lea ecx, [esp + 0x164]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x78], 2
call fcn.004128b0
lea ecx, [esp + 0x164]
call fcn.00472810
lea ecx, [esp + 0x164]
call fcn.00472370
lea ecx, [esp + 0x164]
mov dword [esp + 0x60], eax
call fcn.00472620
mov dword [esp + 0x68], edx
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0xa8]
mov dword [esp + 0x68], eax
call fcn.00406340
mov edi, 1
jmp 0x4040dc
lea eax, [esp + 0x227c]
push eax
lea ecx, [esp + 0x16d40]
call fcn.004692d0
test eax, eax
jne 0x4040dc
mov esi, dword [esp + 0x24]
nop
mov ecx, dword [esp + 0x158]
mov eax, dword [esp + 0x18]
push edi
push ecx
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x2284]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.004023a0
test al, al
je 0x4040bc
push 0x48
lea edx, [esp + 0x50]
push 0
push edx
call fcn.004afbb0
add esp, 0xc
lea ecx, [esp + 0x267c]
lea eax, [esp + 0x227c]
push ecx
mov dword [esp + 0x50], eax
call fcn.0046f330
mov ecx, dword [esp + 0x2e7c]
movzx edx, al
neg edx
sbb edx, edx
not edx
lea eax, [esp + 0x267c]
and edx, eax
mov eax, dword [esp + 0x2e84]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x2e88]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x2e80]
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x2e90]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
call fcn.00472620
lea ecx, [esp + 0x2ed8]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
call fcn.00472620
lea ecx, [esp + 0x227c]
mov dword [esp + 0x6c], eax
mov ax, word [esp + 0x18d60]
mov dword [esp + 0x70], edx
mov dx, word [esp + 0x18d5c]
push ecx
mov ecx, dword [ebx + 0x28]
mov word [esp + 0x78], dx
mov word [esp + 0x7a], ax
mov dword [esp + 0x7c], 2
call fcn.0041cb80
test al, al
je 0x40401b
or dword [esp + 0x8c], 1
mov eax, dword [ebx + 0x28]
mov edx, dword [eax + 0x6bc8]
cmp dword [edx + 0x20], 0
jbe 0x404065
lea ecx, [esp + 0x1b4]
push ecx
lea edx, [esp + 0x2ea50]
push edx
lea ecx, [esp + 0x54]
push ecx
push eax
call fcn.00401590
mov edx, dword [esp + 0x2e8c]
mov ecx, dword [ebx + 0x28]
push 0
push 0
push edx
lea eax, [esp + 0x2ea58]
push eax
call fcn.0041d240
test al, al
jne 0x4040bc
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0xa8]
call fcn.00406340
cmp byte [esp + 0x2e8c], 0
jne 0x4040bc
mov edx, dword [ebx + 0x28]
mov ecx, dword [esp + 0x2e80]
inc edi
cmp dword [edx + 0x393c], 0
je 0x4040a3
mov eax, dword [esp + 0x2e7c]
add esi, eax
adc dword [esp + 0x28], ecx
jmp 0x4040bc
cmp dword [esp + 0x28], ecx
jg 0x4040bc
mov eax, dword [esp + 0x2e7c]
jl 0x4040b6
cmp esi, eax
ja 0x4040bc
mov esi, eax
mov dword [esp + 0x28], ecx
lea edx, [esp + 0x227c]
push edx
lea ecx, [esp + 0x16d40]
call fcn.004692d0
test eax, eax
je 0x403f20
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x158]
mov esi, dword [esp + 0x34]
push edi
push eax
push 0
push 0
push 0
mov ecx, ebx
call fcn.004023a0
cmp dword [esp + 0x17554], 0
je 0x404139
mov ecx, dword [ebx + 0x28]
cmp byte [ecx + 0x3a0f], 0
je 0x40412d
push 0x44c
call fcn.00465ff0
push eax
call fcn.00498f80
add esp, 4
push 6
mov ecx, 0x5062f4
call fcn.0042ca70
jmp 0x404139
push 6
mov ecx, 0x5062f4
call fcn.0042c280
lea ecx, [esp + 0xa4]
call fcn.00406b90
lea ecx, [esp + 0x190]
call fcn.004128b0
lea ecx, [esp + 0x190]
call fcn.00472810
mov edx, dword [ebx + 0x28]
push edx
lea ecx, [esp + 0xd230]
call fcn.0040e310
mov byte [esp + 0x2ee60], 2
mov eax, dword [ebx + 0x28]
push eax
lea ecx, [esp + 0x3720]
call fcn.0040e310
mov byte [esp + 0x2ee60], 3
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x351c], 0
je 0x4041aa
cmp word [eax + 0x341c], 0
je 0x4041aa
mov ecx, 1
jmp 0x4041ac
xor ecx, ecx
mov byte [esp + 0xc604], cl
mov ecx, dword [eax + 0x3f48]
mov edx, dword [eax + 0x3f44]
push ecx
mov ecx, dword [eax + 0x3f40]
push edx
mov edx, dword [eax + 0x3f3c]
push ecx
push edx
lea ecx, [esp + 0x372c]
call fcn.0040b980
mov eax, dword [ebx + 0x28]
movzx ecx, byte [eax + 0x3989]
mov edi, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
and ecx, 3
inc ecx
push ecx
push edi
push esi
lea ecx, [esp + 0xd238]
call fcn.00433e20
test al, al
je 0x40444a
mov eax, dword [ebx + 0x28]
mov edx, dword [eax + 0x3958]
or edx, dword [eax + 0x395c]
jne 0x40422a
cmp byte [esp + 0x1610d], dl
jne 0x404280
cmp dword [eax + 0x393c], edx
je 0x404280
lea ecx, [esp + 0xd22c]
call fcn.00433d30
cmp eax, 0x14
jne 0x40425b
test edx, edx
jne 0x40425b
lea ecx, [esp + 0xd22c]
call fcn.00433b10
mov dword [esp + 0xde4c], 1
jmp 0x404458
mov eax, dword [ebx + 0x28]
mov ecx, dword [eax + 0x3958]
or ecx, dword [eax + 0x395c]
je 0x404280
xor ecx, ecx
mov dword [eax + 0x3958], ecx
mov dword [eax + 0x395c], ecx
mov byte [ebx + 0x23f8], cl
push 0
lea ecx, [esp + 0xd230]
call fcn.0040d2d0
lea ecx, [esp + 0xd22c]
call fcn.0040b690
test al, al
jne 0x4042aa
push edi
push esi
mov ecx, 0x5062f4
call fcn.0042cb60
lea ecx, [esp + 0xd22c]
call fcn.0045a230
push 0
lea ecx, [esp + 0xd230]
call fcn.0040b510
test al, al
je 0x4042d4
push 4
mov ecx, 0x5062f4
call fcn.0042ca70
lea ecx, [esp + 0xd22c]
call fcn.0040b5a0
test al, al
je 0x4042f0
push 3
mov ecx, 0x5062f4
call fcn.0042ca70
mov al, byte [esp + 0x1610d]
mov byte [esp + 0xc5fd], al
push 1
push edi
push esi
push 0
call fcn.0040a030
mov eax, dword [ebx + 0x28]
mov ecx, dword [eax + 0x3958]
mov eax, dword [eax + 0x395c]
mov edx, ecx
or edx, eax
je 0x40432d
push eax
push ecx
lea eax, [esp + 0x3724]
push eax
call fcn.0047ebd0
cmp dword [esp + 0xd230], 0xffffffff
mov byte [esp + 0x15], 0
setne al
mov byte [esp + 0x14], al
test al, al
je 0x404527
cmp dword [esp + 0x158], 0
jne 0x404363
mov ecx, dword [ebx + 0x28]
cmp byte [ecx + 0x3a0f], 0
je 0x40453f
lea ecx, [esp + 0x371c]
call fcn.0040b5e0
push 0
push 1
lea edx, [esp + 0xd234]
push edx
lea ecx, [esp + 0x3728]
call fcn.0040f400
lea eax, [esp + 0x13]
push eax
lea ecx, [esp + 0x19]
push ecx
lea edx, [esp + 0xac]
push edx
lea eax, [esp + 0xd238]
push eax
mov ecx, ebx
call fcn.00402780
cmp byte [esp + 0x13], 0
je 0x40453f
xor esi, esi
cmp dword [esp + 0x158], esi
jbe 0x4043e1
lea edi, [esi + 4]
push esi
lea ecx, [esp + 0xa8]
call fcn.004063f0
cmp dword [eax + 0x2c], edi
jne 0x40453f
inc esi
cmp esi, dword [esp + 0x158]
jb 0x4043c1
mov ecx, dword [ebx + 0x28]
cmp dword [ecx + 0x3974], 0
jne 0x40453f
push 0xa
mov ecx, 0x5062f4
call fcn.0042c280
lea ecx, [esp + 0x371c]
call fcn.00433b10
mov byte [esp + 0x2ee60], 2
lea ecx, [esp + 0x371c]
call fcn.0040bd60
mov byte [esp + 0x2ee60], 1
lea ecx, [esp + 0xd22c]
call fcn.0040bd60
mov byte [esp + 0x2ee60], 0
lea ecx, [esp + 0xa4]
call fcn.00402710
jmp 0x405dba
cmp dword [esp + 0xde4c], 1
jne 0x404509
push 1
push edi
push esi
lea ecx, [esp + 0x3728]
mov byte [esp + 0xc634], 1
call fcn.004343f0
mov edx, dword [ebx + 0x28]
cmp byte [edx + 0x410], 0
je 0x4044e5
lea ecx, [esp + 0x1b4]
call fcn.004339e0
mov byte [esp + 0x2ee60], 4
mov eax, dword [ebx + 0x28]
lea ecx, [eax + 0x810]
push ecx
add eax, 0x410
push eax
lea ecx, [esp + 0x1bc]
call fcn.004343b0
push 0x7fffffff
push 0x7fffffff
lea edx, [esp + 0x3724]
push edx
lea ecx, [esp + 0x1c0]
call fcn.00434880
mov dword [esp + 0xc608], eax
mov byte [esp + 0x2ee60], 3
lea ecx, [esp + 0x1b4]
call fcn.00433df0
mov eax, dword [ebx + 0x28]
cmp dword [eax + 0x393c], 0
je 0x404502
cmp dword [eax + 0x392c], 0
je 0x404502
mov byte [esp + 0xc5fd], 1
push 0
jmp 0x404300
push 0
push esi
mov ecx, 0x5062f4
call fcn.0042cb40
push 9
mov ecx, 0x5062f4
call fcn.0042ca70
jmp 0x404309
push 0
push 0
lea edx, [esp + 0xd234]
push edx
lea ecx, [esp + 0x3728]
call fcn.0040f400
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x3f4c], 0
jne 0x4045c1
cmp byte [esp + 0x14], 0
je 0x40455c
cmp byte [esp + 0x1610d], 0
jne 0x4045c1
mov ecx, dword [eax + 0x393c]
neg ecx
sbb ecx, ecx
and ecx, 0xe0000
add ecx, 0x20000
cmp dword [eax + 0xc], ecx
jbe 0x4045c1
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push 0
push 2
push edx
push eax
call fcn.004b01d0
mov edi, eax
lea esp, [esp]
mov ecx, dword [ebx + 0x28]
mov eax, dword [ecx + 0xc]
xor esi, esi
cmp esi, edx
jl 0x4045c1
jg 0x4045a2
cmp eax, edi
jbe 0x4045c1
shr dword [ecx + 0xc], 1
mov ecx, dword [ebx + 0x28]
mov eax, dword [ecx + 0x393c]
neg eax
sbb eax, eax
and eax, 0xe0000
add eax, 0x20000
cmp dword [ecx + 0xc], eax
ja 0x404590
xor edi, edi
xor esi, esi
cmp dword [esp + 0x158], edi
jbe 0x40469c
mov ecx, dword [ebx + 0x28]
cmp byte [ecx + 0x3948], 0
je 0x4045f1
push esi
lea ecx, [esp + 0xa8]
call fcn.004063f0
cmp dword [eax + 0x2c], 2
je 0x404604
push esi
lea ecx, [esp + 0xa8]
call fcn.004063f0
cmp dword [eax + 0x2c], 1
jne 0x404614
push esi
lea ecx, [esp + 0xa8]
call fcn.004063f0
mov dword [eax + 0x2c], edi
push esi
lea ecx, [esp + 0xa8]
call fcn.004063f0
cmp dword [eax + 0x2c], 2
je 0x40463a
push esi
lea ecx, [esp + 0xa8]
call fcn.004063f0
cmp dword [eax + 0x2c], 3
jne 0x40468e
push esi
lea ecx, [esp + 0xa8]
call fcn.004063f0
mov edx, dword [eax + 8]
add dword [esp + 0xc61c], edx
mov eax, dword [eax + 0xc]
push esi
adc dword [esp + 0xc624], eax
lea ecx, [esp + 0xa8]
call fcn.004063f0
mov eax, dword [eax]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404670
mov ecx, dword [esp + 0xc624]
sub eax, edx
lea edx, [eax + ecx]
lea eax, [edx + eax*2 + 0x20]
mov dword [esp + 0xc624], eax
inc esi
cmp esi, dword [esp + 0x158]
jb 0x4045d2
cmp byte [esp + 0xc5fd], 0
je 0x4046b6
mov ecx, dword [ebx + 0x28]
cmp byte [ecx + 0x3972], 0
jne 0x4046b6
mov al, 1
jmp 0x4046b8
xor al, al
push edi
push eax
lea ecx, [esp + 0xac]
call fcn.00406be0
mov esi, dword [ebx + 0x1ed8]
cmp esi, edi
je 0x4046e0
mov ecx, esi
call fcn.0044e660
push esi
call fcn.004af219
add esp, 4
push 0x1b870
call fcn.004b0160
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x2ee60], 5
cmp eax, edi
je 0x404714
mov ecx, dword [ebx + 0x28]
lea edx, [ebx + 0x1ef0]
push edx
mov edx, dword [ecx + 0xc]
push edx
mov ecx, eax
call fcn.00450200
jmp 0x404716
xor eax, eax
mov byte [esp + 0x2ee60], 3
mov ecx, dword [ebx + 0x28]
mov dword [ebx + 0x1ed8], eax
mov dword [ecx + 0x5360], eax
mov edx, dword [ebx + 0x28]
mov eax, dword [edx + 0x434c]
mov ecx, dword [ebx + 0x1ed8]
push eax
call fcn.0044e7b0
mov ecx, dword [ebx + 0x1ed8]
call fcn.00451ab0
mov eax, dword [ebx + 0x1ed8]
mov dword [eax + 0x1b868], ebx
lea eax, [ebx + 0x1ef0]
push eax
lea ecx, [esp + 0x19170]
call fcn.0047aef0
mov byte [esp + 0x2ee60], 6
cmp byte [esp + 0x1610d], 0
lea ecx, [esp + 0xd22c]
lea edx, [esp + 0x371c]
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x24], ebx
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x1c], edx
mov byte [esp + 0x13], 0
mov byte [esp + 0x16], 0
je 0x40480a
mov eax, dword [ebx + 0x28]
cmp word [eax + 0x341c], di
jne 0x4047bb
cmp byte [esp + 0x15], 0
je 0x4047d7
mov ecx, dword [ebx + 0x1ee0]
add dword [esp + 0xc61c], ecx
mov edx, dword [ebx + 0x1ee4]
adc dword [esp + 0xc620], edx
jmp 0x4047dc
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x1916c]
call fcn.0047c4d0
movzx eax, word [esp + 0x13a1a]
mov ecx, dword [esp + 0x16118]
push edi
lea edx, [eax + ecx + 7]
push edi
push edx
lea ecx, [esp + 0xd238]
call fcn.00434440
push 8
lea eax, [esp + 0x2e248]
push eax
call fcn.00421e50
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x24], edi
cmp dword [esp + 0x158], edi
jbe 0x405579
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0xa8]
call fcn.004063f0
mov esi, eax
mov ecx, 0x12
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], eax
test esi, esi
je 0x405563
mov edi, dword [esp + 0x5c]
cmp esi, 6
je 0x405062
cmp esi, 5
je 0x405189
cmp esi, 4
je 0x405197
lea ecx, [esp + 0x19f0]
call fcn.004128b0
lea ecx, [esp + 0x1a14]
call fcn.004128b0
lea ecx, [esp + 0x1a38]
call fcn.004128b0
lea ecx, [esp + 0x1b4]
call fcn.004339e0
mov byte [esp + 0x2ee60], 8
push edi
call fcn.00434f40
mov byte [esp + 0x15], al
test al, al
jne 0x4048eb
push edi
call fcn.00434f70
test al, al
jne 0x4048eb
push edi
call fcn.00434f60
test al, al
jne 0x4048eb
mov byte [esp + 0x30], al
jmp 0x404907
cmp byte [esp + 0x15], 0
mov byte [esp + 0x30], 1
je 0x404907
mov ecx, dword [ebx + 0x28]
cmp dword [ecx + 0x394c], 1
je 0x40554f
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x3f4c], 0
jne 0x404955
movzx edx, byte [eax + 0x397d]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
push edx
lea eax, [esp + 0xde0]
push eax
push ecx
push esi
call fcn.0043a670
cmp byte [esp + 0x15], 0
mov byte [esp + 0x12], al
je 0x40496c
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
push edx
push eax
lea ecx, [esp + 0x1a40]
call fcn.00472660
jmp 0x40496c
push 1
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x16], 0
call fcn.00433db0
mov esi, dword [esp + 0x2c]
cmp byte [esp + 0x30], 0
jne 0x404b7b
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x3f4c], 0
jne 0x404b7b
cmp byte [esp + 0x12], 0
je 0x4049af
movzx ecx, byte [eax + 0x3989]
mov edx, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
and ecx, 4
push ecx
push edx
push esi
lea ecx, [esp + 0x1c0]
call fcn.00433e20
cmp dword [esp + 0x1b8], 0xffffffff
jne 0x404a61
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
push eax
push esi
push ecx
push edx
mov ecx, 0x5062f4
call fcn.0042c7e0
mov eax, dword [esp + 0x54]
sub dword [esp + 0xc61c], eax
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x24]
sbb dword [esp + 0xc620], ecx
push edx
lea ecx, [esp + 0xa8]
call fcn.004063f0
inc dword [esp + 0x38]
cmp dword [esp + 0x88], 0
mov dword [eax + 0x2c], 0
jl 0x40554f
jg 0x404a27
cmp dword [esp + 0x84], 0
jbe 0x40554f
cmp dword [esp + 0x90], 0
jne 0x40554f
mov esi, 4
mov dword [esp + 0x78], esi
mov dword [ebx + 0x1edc], 0
mov byte [esp + 0x2ee60], 6
lea ecx, [esp + 0x1b4]
call fcn.00433df0
jmp 0x404870
cmp byte [esp + 0x12], 0
je 0x404a87
mov eax, dword [esp + 0x19e8]
lea ecx, [esp + 0x19f0]
mov dword [esp + 0x60], eax
call fcn.00472620
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
xor edi, edi
mov ecx, dword [esp + 0x20]
push ecx
push esi
push 1
mov ecx, 0x506300
call fcn.0041ce30
lea edx, [esp + 0xa34c]
push edx
mov edx, dword [ebx + 0x28]
lea eax, [esp + 0x9f50]
push eax
lea ecx, [esp + 0x54]
push ecx
push edx
call fcn.00401590
cmp byte [esp + 0x16], 0
je 0x404b2e
lea ecx, [esp + 0xd22c]
call fcn.00433c30
push 0
mov esi, eax
mov eax, dword [esp + 0x1611c]
push 0
push eax
lea ecx, [esp + 0xd238]
mov edi, edx
call fcn.00434440
push 0
lea ecx, [esp + 0x19170]
push ecx
push edi
push esi
lea edx, [esp + 0xd23c]
push edx
mov ecx, ebx
call fcn.00401b60
mov eax, dword [ebx + 0x28]
mov ecx, dword [eax + 0x392c]
dec ecx
push ecx
mov ecx, dword [ebx + 0x1ed8]
lea edx, [esp + 0x19170]
push edx
call fcn.00450c00
mov esi, dword [esp + 0x2c]
mov byte [ebx + 0x1eec], 1
xor edi, edi
cmp byte [esp + 0xc5fd], 0
mov byte [esp + 0x16], 0
mov byte [esp + 0x13], 0
je 0x404c90
mov eax, dword [ebx + 0x28]
mov ecx, dword [eax + 0x393c]
mov byte [esp + 0x17], 0
test cl, 2
je 0x404b9e
mov esi, dword [eax + 0x3940]
test esi, esi
jle 0x404b9e
mov edi, dword [esp + 0x3c]
test edi, edi
jle 0x404ba2
mov eax, edi
cdq
idiv esi
test edx, edx
jne 0x404ba2
mov byte [esp + 0x17], 1
jmp 0x404ba2
push edi
call fcn.00434f60
test al, al
jne 0x404a87
xor edi, edi
mov dword [esp + 0x19dc], edi
mov dword [esp + 0x19e0], edi
jmp 0x404a89
mov edi, dword [esp + 0x3c]
test cl, 4
je 0x404bf4
lea eax, [esp + 0x9f4c]
push eax
call fcn.00455a90
mov esi, eax
test esi, esi
je 0x404bec
lea ecx, [esp + 0x2e24c]
push ecx
push esi
call fcn.0046f370
test eax, eax
je 0x404bd1
mov byte [esp + 0x17], 1
lea edx, [esp + 0x2e24c]
mov eax, esi
sub edx, esi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404be0
jmp 0x404bf4
mov byte [esp + 0x2e24c], 0
mov edx, dword [ebx + 0x28]
mov edx, dword [edx + 0x393c]
test dl, 8
jne 0x404c51
lea esi, [esp + 0x3739]
lea eax, [esp + 0x2e64c]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x404c30
test cl, cl
je 0x404c2c
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x404c30
add eax, 2
add esi, 2
test cl, cl
jne 0x404c10
xor eax, eax
jmp 0x404c35
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x404c51
test dl, 0x10
jne 0x404c58
cmp dword [esp + 0x48], 0
jg 0x404c58
jl 0x404c51
cmp dword [esp + 0x44], 0x400000
ja 0x404c58
cmp byte [esp + 0x17], 0
je 0x404c7a
test edi, edi
jle 0x404c7a
mov ecx, dword [ebx + 0x1ed8]
call fcn.0044e9e0
xor eax, eax
mov byte [ebx + 0x1eec], 0
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
jmp 0x404c8a
mov eax, dword [esp + 0x54]
add dword [esp + 0x44], eax
mov ecx, dword [esp + 0x58]
adc dword [esp + 0x48], ecx
mov esi, dword [esp + 0x2c]
xor edi, edi
xor eax, eax
jmp 0x404ca0
mov cl, byte [esp + eax + 0x3739]
mov byte [esp + eax + 0x2e64c], cl
inc eax
test cl, cl
jne 0x404ca0
mov eax, dword [esp + 0x78]
cmp eax, 2
jne 0x404cc6
mov edx, dword [esp + 0x20]
push edi
push edi
push edi
push edx
jmp 0x404cd4
cmp eax, 3
jne 0x404cdb
mov eax, dword [esp + 0x20]
push edi
push edi
push 1
push eax
push esi
push edi
call fcn.0040a070
mov eax, dword [esp + 0x19dc]
mov ecx, dword [esp + 0x19e0]
mov dword [esp + 0x9f2c], eax
mov dword [esp + 0xabfc], eax
mov eax, dword [ebx + 0x28]
xor edx, edx
mov dword [esp + 0xac00], ecx
mov dword [esp + 0x9f20], 0x74
mov dword [esp + 0x9f34], edi
mov dword [esp + 0x9f28], edi
mov word [esp + 0x9f24], dx
cmp word [eax + 0x341c], di
je 0x404d72
cmp byte [esp + 0x15], dl
jne 0x404d72
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.00434f70
test al, al
jne 0x404d72
mov edx, dword [esp + 0x9f24]
mov eax, dword [esp + 0x2e244]
mov ecx, dword [esp + 0x2e248]
or edx, 0x404
mov word [esp + 0x9f24], dx
mov dword [esp + 0xab58], eax
mov dword [esp + 0xab5c], ecx
mov edx, dword [ebx + 0x28]
mov byte [esp + 0x9f3c], 0x1d
mov eax, dword [edx + 0xc]
cmp eax, 0x80000
ja 0x404db3
je 0x404dac
cmp eax, 0x10000
je 0x404dc8
cmp eax, 0x20000
je 0x404da5
cmp eax, 0x40000
jne 0x404dc8
mov eax, 0x40
jmp 0x404ddf
mov eax, 0x20
jmp 0x404ddf
mov eax, 0x60
jmp 0x404ddf
cmp eax, 0x100000
je 0x404dda
cmp eax, 0x200000
je 0x404dd3
cmp eax, 0x400000
je 0x404dcc
xor eax, eax
jmp 0x404ddf
mov eax, 0xc0
jmp 0x404ddf
mov eax, 0xa0
jmp 0x404ddf
mov eax, 0x80
mov ecx, dword [esp + 0x9f24]
or ecx, eax
cmp byte [ebx + 0x1eec], 0
mov word [esp + 0x9f24], cx
je 0x404e0b
mov eax, dword [esp + 0x9f24]
or eax, 0x10
mov word [esp + 0x9f24], ax
mov ecx, dword [esp + 0x9f24]
mov eax, dword [esp + 0x60]
or ecx, 0x8000
cmp byte [esp + 0x12], 0
mov word [esp + 0x9f24], cx
mov dword [esp + 0x9f38], eax
je 0x404e73
mov ecx, 9
lea esi, [esp + 0x19f0]
lea edi, [esp + 0xab60]
rep movsd dword es:[edi], dword [esi]
mov ecx, 9
lea esi, [esp + 0x1a38]
lea edi, [esp + 0xaba8]
rep movsd dword es:[edi], dword [esi]
mov ecx, 9
lea esi, [esp + 0x1a14]
lea edi, [esp + 0xab84]
rep movsd dword es:[edi], dword [esi]
jmp 0x404e88
mov dword [esp + 0xab60], edi
mov dword [esp + 0xaba8], edi
mov dword [esp + 0xab84], edi
mov ecx, 9
lea esi, [esp + 0x190]
lea edi, [esp + 0xabcc]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x9f40], ecx
mov eax, dword [edx + 0x392c]
add eax, 0x30
mov byte [esp + 0x9f3d], al
mov eax, dword [esp + 0x19e0]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x9f44], 0
mov dword [esp + 0x9f48], eax
test eax, eax
jne 0x404eef
cmp dword [esp + 0x9f2c], 0x80000000
ja 0x404eef
cmp byte [edx + 0x3f4c], al
je 0x404f03
mov eax, dword [esp + 0x9f24]
or eax, 0x100
mov word [esp + 0x9f24], ax
cmp word [esp + 0xa34c], 0
jne 0x404f3f
cmp byte [edx + 0x281c], 0
lea eax, [edx + 0x281c]
je 0x404f27
push eax
call fcn.0046f300
test al, al
je 0x404f3f
mov eax, dword [ebx + 0x28]
add eax, 0x2c1c
cmp word [eax], 0
je 0x404f54
push eax
call fcn.0046f330
test al, al
jne 0x404f54
mov ecx, dword [esp + 0x9f24]
or ecx, 0x200
mov word [esp + 0x9f24], cx
lea ecx, [esp + 0x371c]
call fcn.0040c830
inc dword [esp + 0x3c]
lea edx, [esp + 0x371c]
push edx
lea eax, [esp + 0x1b8]
lea esi, [ebx + 0x1ef0]
push eax
mov ecx, esi
mov dword [ebx + 0x2440], 0xffffffff
mov byte [esp + 0x9f38], 2
call fcn.0045c9d0
xor edi, edi
cmp byte [esp + 0x30], 0
mov byte [ebx + 0x1f40], 1
mov dword [ebx + 0x2410], edi
mov dword [ebx + 0x2414], edi
jne 0x4053f5
mov ecx, dword [ebx + 0x28]
cmp byte [ecx + 0x3f4c], 0
jne 0x4053f5
mov ecx, esi
call fcn.0045c970
test al, al
jne 0x4053f5
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x38]
push eax
push ecx
push edx
mov ecx, 0x5062f4
call fcn.0042c7e0
mov eax, dword [esp + 0x54]
sub dword [esp + 0xc61c], eax
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x24]
sbb dword [esp + 0xc620], ecx
push edx
lea ecx, [esp + 0xa8]
call fcn.004063f0
inc dword [esp + 0x38]
cmp dword [esp + 0x88], edi
mov dword [eax + 0x2c], edi
jl 0x40554f
jg 0x40503a
cmp dword [esp + 0x84], edi
jbe 0x40554f
mov esi, 4
mov dword [esp + 0x78], esi
mov dword [ebx + 0x1edc], edi
mov byte [esp + 0x2ee60], 6
lea ecx, [esp + 0x1b4]
call fcn.00433df0
jmp 0x40486c
lea eax, [esp + 0xd22c]
push eax
lea ecx, [esp + 0x168]
call fcn.00468080
mov byte [esp + 0x2ee60], 7
mov ecx, dword [ebx + 0x1ed8]
call fcn.0044e9e0
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
push 0
push ecx
push edx
lea ecx, [esp + 0xd238]
call fcn.00434440
lea ecx, [esp + 0xd22c]
call fcn.0040fd30
mov al, byte [esp + 0x16114]
cmp al, byte [esp + 0xc604]
je 0x405120
mov eax, dword [esp + 0x139e8]
cmp eax, 0x74
je 0x405117
cmp eax, 0x7a
jne 0x405170
lea ecx, [esp + 0x1473c]
push ecx
push eax
lea ecx, [esp + 0x3724]
call fcn.0040c3b0
lea ecx, [esp + 0xd22c]
call fcn.00433c30
mov ecx, dword [esp + 0x16104]
sub ecx, eax
mov eax, dword [esp + 0x16108]
sbb eax, edx
push eax
push ecx
lea ecx, [esp + 0x3724]
push ecx
jmp 0x405164
lea ecx, [esp + 0x13a2c]
jmp 0x4050df
mov edx, dword [esp + 0x16100]
mov eax, dword [esp + 0x160fc]
push 0
push edx
push eax
lea ecx, [esp + 0xd238]
call fcn.00434440
mov ecx, dword [esp + 0x16104]
sub ecx, dword [esp + 0x160fc]
mov edx, dword [esp + 0x16108]
sbb edx, dword [esp + 0x16100]
lea eax, [esp + 0x371c]
push edx
push ecx
push eax
lea ecx, [esp + 0xd238]
call fcn.00434880
mov byte [esp + 0x2ee60], 6
lea ecx, [esp + 0x164]
call fcn.004680b0
jmp 0x405563
inc dword [esp + 0x1c]
call fcn.004701e0
jmp 0x405563
cmp byte [esp + 0x1610d], 0
je 0x40520b
cmp byte [esp + 0x13], 0
jne 0x40520b
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
push 0
lea ecx, [esp + 0x19170]
push ecx
push edx
push eax
lea ecx, [esp + 0xd23c]
push ecx
mov ecx, ebx
call fcn.00401b60
mov edx, dword [esp + 0x90]
mov ecx, dword [ebx + 0x1ed8]
push edx
push 0
lea eax, [esp + 0x19174]
push eax
push ecx
lea edx, [esp + 0x372c]
push edx
lea eax, [esp + 0xd240]
push eax
mov ecx, ebx
call fcn.00403460
call fcn.004701e0
jmp 0x405563
mov ecx, dword [ebx + 0x1ed8]
call fcn.0044e9e0
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
push 0
push ecx
push edx
lea ecx, [esp + 0xd238]
call fcn.00434440
lea ecx, [esp + 0xd22c]
call fcn.0040fd30
mov eax, dword [esp + 0xab4c]
test eax, eax
je 0x40525f
push eax
call fcn.004af901
add esp, 4
mov dword [esp + 0xab4c], 0
xor eax, eax
mov dword [esp + 0xab50], eax
mov dword [esp + 0xab54], eax
mov ecx, 0x33a
lea esi, [esp + 0x13a2c]
lea edi, [esp + 0x9f1c]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xab4c], eax
mov ecx, dword [esp + 0x14660]
mov dword [esp + 0xab50], eax
mov dword [esp + 0xab54], eax
mov dword [esp + 0xab50], eax
mov dword [esp + 0xab54], eax
mov dword [esp + 0xab50], ecx
cmp ecx, eax
jbe 0x4052fa
mov esi, ecx
cmp ecx, 0x20
ja 0x4052c5
mov esi, 0x20
push esi
push 0
call fcn.004af98f
add esp, 8
mov dword [esp + 0xab4c], eax
test eax, eax
jne 0x4052ec
mov ecx, 0x5062f4
call fcn.0042c410
mov eax, dword [esp + 0xab4c]
mov ecx, dword [esp + 0x14660]
mov dword [esp + 0xab54], esi
test ecx, ecx
je 0x405310
push ecx
mov ecx, dword [esp + 0x14660]
push ecx
push eax
call fcn.004afc30
add esp, 0xc
mov edx, dword [esp + 0x9f24]
mov eax, dword [esp + 0x90]
and edx, 0xfffffff7
mov word [esp + 0x9f24], dx
test eax, eax
je 0x40533d
push eax
lea eax, [esp + 0x9f20]
push eax
mov ecx, ebx
call fcn.00401970
lea ecx, [esp + 0xd22c]
call fcn.0040f890
test al, al
jne 0x405368
lea ecx, [esp + 0xd22c]
call fcn.0040f8b0
test al, al
jne 0x405368
mov cl, byte [esp + 0x1610d]
mov byte [esp + 0x16], cl
cmp byte [esp + 0x16], 0
je 0x4053bb
mov esi, dword [ebx + 0x28]
mov eax, dword [esi + 0xc]
movzx edx, word [esp + 0x9f24]
push eax
mov ecx, ebx
call fcn.004011c0
mov ecx, edx
and ecx, 0xe0
cmp eax, ecx
jbe 0x4053bb
and edx, 0xffffff1f
mov word [esp + 0x9f24], dx
mov edx, dword [esi + 0xc]
push edx
mov ecx, ebx
call fcn.004011c0
mov ecx, dword [esp + 0x9f24]
or eax, ecx
mov word [esp + 0x9f24], ax
lea ecx, [esp + 0x371c]
call fcn.0040c830
push 0
push 0x74
lea ecx, [esp + 0x3724]
call fcn.0040c3b0
lea edx, [esp + 0xd22c]
push edx
lea ecx, [esp + 0x3720]
call fcn.0040b640
call fcn.004701e0
jmp 0x405563
test byte [esp + 0x8c], 1
jne 0x40540f
mov eax, dword [ebx + 0x28]
mov byte [esp + 0x12], 0
cmp dword [eax + 0x392c], edi
jne 0x405414
mov byte [esp + 0x12], 1
mov ecx, dword [esp + 0x9f40]
push ecx
call fcn.00434f40
test al, al
je 0x40543a
mov edx, dword [esp + 0x9f24]
or edx, 0xe0
mov word [esp + 0x9f24], dx
cmp byte [esp + 0x30], 0
jne 0x405448
cmp byte [esp + 0x12], 0
je 0x40546b
mov eax, dword [ebx + 0x28]
mov byte [esp + 0x9f3d], 0x30
cmp word [eax + 0x341c], di
jne 0x405464
mov byte [esp + 0x9f3c], 0x14
cmp byte [esp + 0x12], 0
jne 0x40549e
mov ecx, dword [ebx + 0x1ed8]
add ecx, 0x1b69c
call fcn.0041ae60
xor ecx, ecx
add eax, dword [esp + 0xabfc]
adc ecx, dword [esp + 0xac00]
mov dword [esp + 0x98], ecx
js 0x4054a9
jg 0x40549e
cmp eax, 0x8000
jbe 0x4054a9
mov ecx, dword [ebx + 0x1ed8]
call fcn.0044e9e0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [ebx + 0x1ed8]
push 1
push eax
push ecx
push edx
lea eax, [esp + 0x1c8]
push eax
mov ecx, ebx
call fcn.00403260
cmp byte [esp + 0x30], 0
jne 0x405532
cmp byte [esp + 0x12], 0
je 0x4054fc
push edi
mov ecx, ebx
call fcn.00403320
push esi
call fcn.004024f0
push edi
mov ecx, ebx
call fcn.00402c30
mov dword [ebx + 8], edi
mov dword [ebx + 4], edi
jmp 0x405532
mov eax, dword [ebx + 0x28]
mov edx, dword [eax + 0x392c]
lea ecx, [eax + 0x3a74]
movzx eax, byte [ebx + 0x1eec]
push ecx
mov ecx, dword [ebx + 0x1ed8]
dec edx
push edx
push eax
call fcn.00452780
cmp byte [esp + 0xc5fd], 0
je 0x40553c
mov byte [ebx + 0x1eec], 1
cmp byte [esp + 0xc5fd], 0
jne 0x405547
mov ecx, dword [ebx + 0x1ed8]
call fcn.0044e9e0
call fcn.004701e0
mov dword [ebx + 0x20], edi
mov byte [esp + 0x2ee60], 6
lea ecx, [esp + 0x1b4]
call fcn.00433df0
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x158]
jb 0x404832
mov ecx, dword [ebx + 0x1ed8]
call fcn.0044e9e0
cmp dword [esp + 0x38], 0
mov ecx, dword [ebx + 0x28]
mov dword [ecx + 0x5360], 0
jle 0x4055a4
push 6
mov ecx, 0x5062f4
call fcn.0042c280
cmp dword [esp + 0x3c], 0
jne 0x405633
cmp dword [esp + 0x1c], 0
jne 0x405633
push 0xa
mov ecx, 0x5062f4
call fcn.0042c280
lea ecx, [esp + 0x371c]
call fcn.00433b10
mov byte [esp + 0x2ee60], 3
lea ecx, [esp + 0x1916c]
call fcn.0047afe0
mov byte [esp + 0x2ee60], 2
lea ecx, [esp + 0x371c]
call fcn.0040bd60
mov byte [esp + 0x2ee60], 1
lea ecx, [esp + 0xd22c]
call fcn.0040bd60
mov byte [esp + 0x2ee60], 9
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x405626
push eax
call fcn.004af901
add esp, 4
mov byte [esp + 0x2ee60], 0xb
jmp 0x405d8a
cmp byte [esp + 0x14], 0
lea ecx, [esp + 0x371c]
je 0x405650
lea edx, [esp + 0xd22c]
push edx
call fcn.0040ebe0
jmp 0x405660
mov eax, dword [esp + 0x40]
push 0
push 0
push 0
push eax
call fcn.0040f310
mov byte [esp + 0x2ee60], 3
lea ecx, [esp + 0x1916c]
call fcn.0047afe0
lea ecx, [esp + 0x3b3a]
push ecx
lea edx, [esp + 0x373d]
push edx
push 0
mov ecx, 0x506300
call fcn.0041ce30
mov eax, dword [ebx + 0x28]
lea esi, [eax + 0x3b34]
mov al, byte [esi]
test al, al
je 0x4056c9
xor ecx, ecx
cmp al, 0x40
sete cl
lea edx, [esp + 0x3739]
dec ecx
and ecx, esi
mov eax, ecx
push eax
push edx
call fcn.00470420
test al, al
jne 0x4056c9
push 2
mov ecx, 0x5062f4
call fcn.0042ca70
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x3944], 0
je 0x4057fc
push 0x33e
call fcn.00465ff0
push eax
call fcn.0048bb60
call fcn.0048c200
cmp dword [esp + 0x158], 0
mov dword [esp + 0x1c], 0
jbe 0x4057fc
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0xa8]
call fcn.004063f0
mov esi, eax
mov ecx, 0x12
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x78]
cmp eax, 2
je 0x405734
cmp eax, 3
jne 0x4057e6
lea ecx, [esp + 0x19f0]
call fcn.004128b0
lea ecx, [esp + 0x1a14]
call fcn.004128b0
lea ecx, [esp + 0x1a38]
call fcn.004128b0
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
push 0
lea edx, [esp + 0xde0]
push edx
push edi
push esi
call fcn.0043a670
test al, al
je 0x4057e6
lea ecx, [esp + 0x19f0]
call fcn.00472620
cmp eax, dword [esp + 0x64]
jne 0x4057e6
cmp edx, dword [esp + 0x68]
jne 0x4057e6
mov eax, dword [esp + 0x19dc]
cmp eax, dword [esp + 0x54]
jne 0x4057e6
mov ecx, dword [esp + 0x19e0]
cmp ecx, dword [esp + 0x58]
jne 0x4057e6
mov edx, dword [esp + 0x5c]
and edx, 0xffffffdf
push edx
push edi
push esi
call fcn.00434fd0
test al, al
jne 0x4057d9
push esi
call fcn.0046f600
push eax
push 0x4bf
call fcn.00465ff0
push eax
mov eax, dword [esp + 0x20]
push eax
call fcn.00499570
add esp, 0xc
push 0
push esi
call fcn.0048bc50
call fcn.0048c200
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x158]
jb 0x405704
cmp byte [esp + 0xc629], 0
je 0x405813
lea ecx, [esp + 0xc629]
mov dword [esp + 0x18], ecx
jmp 0x40581e
lea edx, [esp + 0x3739]
mov dword [esp + 0x18], edx
cmp word [esp + 0xca2a], 0
lea edi, [esp + 0xca2a]
jne 0x405837
lea edi, [esp + 0x3b3a]
mov eax, dword [ebx + 0x28]
mov edx, dword [esp + 0x18]
add eax, 0x5fc2
mov cl, byte [edx]
mov byte [eax], cl
inc edx
inc eax
test cl, cl
jne 0x405843
mov eax, dword [ebx + 0x28]
mov edx, edi
add eax, 0x63c2
movzx ecx, word [edx]
mov word [eax], cx
add edx, 2
add eax, 2
test cx, cx
jne 0x405857
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x3a72], cl
je 0x405a39
mov esi, dword [ebx + 0x1ed8]
test esi, esi
je 0x405891
mov ecx, esi
call fcn.0044e660
push esi
call fcn.004af219
add esp, 4
lea ecx, [esp + 0x2766c]
mov dword [ebx + 0x1ed8], 0
call fcn.0041f680
mov byte [esp + 0x2ee60], 0xd
mov eax, dword [ebx + 0x28]
mov byte [esp + 0x2b0de], 1
mov dword [esp + 0x2b5a0], 1
movzx ecx, byte [eax + 0x3938]
mov byte [esp + 0x2afa4], cl
movzx edx, byte [eax + 0x3947]
mov byte [esp + 0x2afb3], dl
movzx ecx, byte [eax + 0x3971]
mov byte [esp + 0x2afdd], cl
movzx edx, byte [eax + 0x3989]
mov byte [esp + 0x2aff5], dl
mov ecx, 0x54
add eax, 0x341c
lea edx, [esp + 0x2aa88]
mov word [esp + 0x2c9fd], cx
sub edx, eax
jmp 0x405920
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x405920
mov esi, dword [esp + 0x18]
push edi
push esi
call fcn.00434ec0
test al, al
jne 0x40597a
mov edi, edi
mov edx, dword [ebx + 0x28]
cmp byte [edx + 0x3b34], 0x2e
je 0x405a25
push edi
push esi
call fcn.0047e740
test al, al
sete al
mov byte [esp + 0x14], al
cmp al, 1
je 0x40596f
push edi
push esi
call fcn.00434ec0
test al, al
je 0x405940
cmp byte [esp + 0x14], 0
jne 0x405a25
call fcn.0048bfc0
mov eax, dword [esp + 0x18]
push edi
push eax
lea ecx, [esp + 0x27674]
call fcn.0041cc30
mov ecx, dword [esp + 0x2e230]
push 0x4c57ac
call fcn.0046fb60
mov esi, dword [0x5062f8]
lea ecx, [esp + 0x2766c]
push ecx
lea ecx, [ebx + 0x30]
call fcn.00433060
cmp esi, dword [0x5062f8]
je 0x405a25
mov byte [esp + 0x2ee60], 3
lea ecx, [esp + 0x2766c]
call fcn.0041f370
mov byte [esp + 0x2ee60], 2
lea ecx, [esp + 0x371c]
call fcn.0040bd60
mov byte [esp + 0x2ee60], 1
lea ecx, [esp + 0xd22c]
call fcn.0040bd60
mov byte [esp + 0x2ee60], 0xe
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x405a18
push eax
call fcn.004af901
add esp, 4
mov byte [esp + 0x2ee60], 0x10
jmp 0x405d8a
mov byte [esp + 0x2ee60], 3
lea ecx, [esp + 0x2766c]
call fcn.0041f370
mov edx, dword [ebp + 0x14]
cmp byte [edx], 0x4d
je 0x405a51
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x398a], 0
je 0x405ce0
push 0x33f
call fcn.00465ff0
push eax
call fcn.0048bb60
push 1
push 0
lea ecx, [esp + 0xac]
call fcn.00406be0
mov esi, dword [esp + 0x158]
or edi, 0xffffffff
lea ecx, [esp + 0x94]
dec esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], edi
call fcn.004367b0
mov byte [esp + 0x2ee60], 0x12
mov ecx, dword [ebx + 0x28]
cmp byte [ecx + 0x398d], 0
mov byte [esp + 0x14], 0
je 0x405ae8
call fcn.0041d300
test al, al
jne 0x405ae8
cmp dword [esp + 0x38], 0
jne 0x405ae8
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x3948], 0
jne 0x405ae8
cmp byte [eax + 0x3949], 0
jne 0x405ae8
mov edi, dword [esp + 0x158]
mov byte [esp + 0x14], 1
xor esi, esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x18], esi
cmp esi, edi
je 0x405ccc
test byte [esp + 0x18], 0xf
jne 0x405b00
call fcn.004701e0
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0xa8]
call fcn.004063f0
mov esi, eax
mov ecx, 0x12
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x78]
cmp eax, 2
je 0x405b30
cmp eax, 3
jne 0x405cb6
mov edx, dword [esp + 0x5c]
push edx
call fcn.00434f70
test al, al
jne 0x405cb6
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x398d], 0
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
jne 0x405b6b
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.00434f90
test al, al
jne 0x405b6b
push edi
push esi
call fcn.00435d10
mov edx, dword [ebp + 0x14]
cmp byte [edx + 1], 0x46
mov eax, dword [esp + 0x5c]
push eax
setne byte [esp + 0x17]
call fcn.00434f40
test al, al
je 0x405c23
cmp byte [esp + 0x13], 0
je 0x405cb6
mov eax, dword [ebx + 0x28]
mov cl, byte [eax + 0x398d]
test cl, cl
je 0x405bdb
cmp byte [esp + 0x14], 0
je 0x405bdb
push edi
push esi
call fcn.00434ec0
test al, al
je 0x405cb6
push edi
push esi
lea ecx, [esp + 0x9c]
call fcn.00436860
lea ecx, [esp + 0x94]
call fcn.004360f0
mov byte [esp + 0x12], 1
jmp 0x405c74
cmp byte [eax + 0x398c], 0
je 0x405c0a
push edi
push esi
call fcn.00435390
test al, al
je 0x405bf8
push edi
push esi
call fcn.00436430
jmp 0x405c70
push 0x91
mov byte [esp + 0x16], 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x405c74
test cl, cl
je 0x405c1a
lea ecx, [esp + 0x94]
call fcn.004360f0
push edi
push esi
call fcn.00435280
jmp 0x405c70
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x398d], 0
push edi
push esi
je 0x405c5b
call fcn.00434ec0
test al, al
je 0x405cb6
push edi
push esi
lea ecx, [esp + 0x9c]
call fcn.00436860
push 0
push esi
call fcn.0048bc50
call fcn.0048c200
jmp 0x405cb6
cmp byte [eax + 0x398c], 0
je 0x405c6b
call fcn.00436220
jmp 0x405c70
call fcn.00435220
mov byte [esp + 0x12], al
cmp byte [esp + 0x12], 0
je 0x405c8a
push 0
push esi
call fcn.0048bc50
call fcn.0048c200
jmp 0x405cb6
push esi
call fcn.0046f600
push eax
push 0x202
call fcn.00465ff0
push eax
lea ecx, [esp + 0x3b42]
push ecx
call fcn.00499570
add esp, 0xc
mov ecx, 0x5062f4
call fcn.0042c340
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x40]
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jne 0x405af4
mov byte [esp + 0x2ee60], 3
lea ecx, [esp + 0x94]
call fcn.00436800
test byte [esp + 0x9f08], 1
je 0x405d3e
mov edx, dword [ebx + 0x28]
cmp dword [edx + 0x3934], 0
je 0x405d3e
lea ecx, [esp + 0x1b4]
call fcn.0045ef80
mov byte [esp + 0x2ee60], 0x13
mov edx, dword [ebx + 0x28]
lea eax, [esp + 0xca2a]
push eax
lea ecx, [esp + 0xc62d]
push ecx
push edx
lea ecx, [esp + 0x1c0]
call fcn.0045d470
mov byte [esp + 0x2ee60], 3
lea ecx, [esp + 0x1b4]
call fcn.0045d3e0
mov byte [esp + 0x2ee60], 2
lea ecx, [esp + 0x371c]
call fcn.0040bd60
mov byte [esp + 0x2ee60], 1
lea ecx, [esp + 0xd22c]
call fcn.0040bd60
mov byte [esp + 0x2ee60], 0x14
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x405d82
push eax
call fcn.004af901
add esp, 4
mov byte [esp + 0x2ee60], 0x16
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x405d9e
push eax
call fcn.004af901
add esp, 4
mov byte [esp + 0x2ee60], 0
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x405dba
push eax
call fcn.004af901
add esp, 4
mov dword [esp + 0x2ee60], 0xffffffff
lea ecx, [esp + 0x16d3c]
call fcn.00468a20
mov ecx, dword [esp + 0x2ee58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2ee40]
xor ecx, esp
call fcn.004af72c
mov esp, ebp
pop ebp
ret 0x10