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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xcc
fld qword [esp + 0xe4]
fstp qword [esp + 0x18]
mov eax, dword [esp + 0xe0]
call fcn.004025d0
mov esi, eax
cmp eax, 0xffffffff
je 0x4029e4
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call sub.msvcrt.dll_fgetc
mov ebx, eax
cmp esi, 0x50
je 0x402928
cmp esi, 0x42
jne 0x402932
cmp eax, 0x4d
jne 0x402932
mov dword [0x42f020], 0
mov dword [0x42f024], 2
lea ecx, [esp + 0x70]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
je 0x4027a4
xor edi, edi
mov dword [esp], edi
call sub.msvcrt.dll_free
xor ebp, ebp
mov dword [esp], ebp
call sub.msvcrt.dll_free
mov eax, dword [0x42f020]
test eax, eax
je 0x402944
mov eax, 0xfffffffe
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
lea ecx, [esp + 0x74]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x78]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x7c]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
mov eax, dword [esp + 0x7c]
cmp eax, 0x28
je 0x402a32
cmp eax, 0x40
je 0x402a32
cmp eax, 0x6c
je 0x402a32
cmp eax, 0x7c
je 0x402a32
cmp eax, 0xc
jne 0x402771
mov dword [esp + 0xb8], 0x18
lea ecx, [esp + 0x80]
mov edx, 2
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x84]
mov edx, 2
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x88]
mov edx, 2
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x8c]
mov edx, 2
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
mov dword [esp + 0x90], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xbc], 0
cmp dword [esp + 0x90], 3
je 0x40333b
ja 0x402771
cmp dword [esp + 0x8c], 0x20
ja 0x402771
mov edx, dword [esp + 0x7c]
add edx, 0xe
mov eax, dword [esp + 0xe0]
call fcn.00422c6f
test eax, eax
jne 0x402771
cmp dword [esp + 0x88], 1
je 0x40334b
mov dword [0x42f020], 0x425f53
xor edi, edi
jmp 0x402773
cmp eax, 0x30
jle 0x402932
cmp eax, 0x36
jle 0x402960
mov eax, 0xfffffffc
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x42f020], 0x425f8c
mov eax, 0xfffffffe
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xe0]
call fcn.00402680
mov edi, eax
test eax, eax
js 0x4029f0
mov eax, dword [esp + 0xe0]
call fcn.00402680
mov dword [esp + 0x24], eax
test eax, eax
js 0x4029f0
test edi, edi
je 0x402cb4
lea esi, [edi - 1]
sar esi, 5
inc esi
imul eax, esi
lea ecx, [eax*4]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x402bc4
test esi, esi
je 0x402bc4
mov eax, ecx
cdq
idiv dword [esp + 0x24]
cdq
idiv esi
cmp eax, 4
je 0x402bc4
call sub.msvcrt.dll__errno
mov dword [eax], 0xc
xor ebp, ebp
mov dword [esp], ebp
call sub.msvcrt.dll_free
or eax, 0xffffffff
jmp 0x402797
mov eax, 0xfffffffd
jmp 0x402797
xor ebp, ebp
mov dword [esp], ebp
call sub.msvcrt.dll_free
cmp ebx, 0x31
je 0x40324d
cmp ebx, 0x34
je 0x40324d
cmp ebx, 0x32
je 0x402ca0
cmp ebx, 0x35
je 0x402ca0
mov dword [0x42f020], 0x425f42
mov eax, 0xfffffffe
jmp 0x402797
mov dword [esp + 0xb8], 0x20
lea ecx, [esp + 0x80]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x84]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x88]
mov edx, 2
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x8c]
mov edx, 2
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x90]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x94]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x98]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0x9c]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0xa0]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0xa4]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
cmp dword [esp + 0x7c], 0x6b
ja 0x4039da
cmp dword [esp + 0x80], 0
js 0x402771
mov eax, dword [esp + 0x84]
test eax, eax
js 0x4039c1
mov dword [esp + 0xbc], 0
cmp dword [esp + 0x84], 0
jns 0x4028cc
jmp 0x402771
test ecx, ecx
jne 0x402bcd
mov ecx, 1
mov dword [esp], 0x10
mov dword [esp + 0x14], ecx
call sub.msvcrt.dll_malloc
mov ebp, eax
test eax, eax
mov ecx, dword [esp + 0x14]
je 0x4029d1
mov dword [eax], edi
mov eax, dword [esp + 0x24]
mov dword [ebp + 4], eax
mov dword [ebp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov dword [ebp + 0xc], eax
test eax, eax
je 0x403302
lea eax, [ebx - 0x32]
cmp eax, 4
jbe switch.0x00402cbb
xor ebx, ebx
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x402c3c
jmp 0x4030a0
mov ebx, esi
cmp esi, dword [esp + 0x24]
je 0x4030a0
lea esi, [ebx + 1]
test edi, edi
je 0x402c30
mov dword [esp + 0x18], 0
nop
mov eax, dword [esp + 0xe0]
call fcn.004025d0
cmp eax, 0xffffffff
je 0x403192
lea edx, [eax - 0x30]
cmp edx, 1
ja 0x402c4c
mov edx, dword [esp + 0x18]
sar edx, 5
cmp eax, 0x30
mov eax, ebx
je 0x4030f9
imul eax, dword [ebp + 8]
add edx, eax
mov eax, 0x80000000
mov cl, byte [esp + 0x18]
shr eax, cl
mov ecx, dword [ebp + 0xc]
or dword [ecx + edx*4], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
je 0x402c30
jmp 0x402c4c
mov dword [0x42f020], 0x425f31
mov eax, 0xfffffffe
jmp 0x402797
xor esi, esi
jmp 0x402bc8
jmp dword [eax*4 + 0x425fa0]
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call sub.msvcrt.dll_fgetc
inc eax
je 0x4030ca
add edi, 7
sar edi, 3
mov edx, dword [esp + 0x24]
test edx, edx
je 0x4030a0
xor ebx, ebx
jmp 0x402cfc
mov ebx, esi
cmp esi, dword [esp + 0x24]
je 0x4030a0
lea esi, [ebx + 1]
test edi, edi
jle 0x402cf0
xor edx, edx
mov dword [esp + 0x28], esi
mov esi, edx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
je 0x4032f9
mov ecx, esi
sar ecx, 2
mov edx, dword [ebp + 8]
imul edx, ebx
add edx, ecx
mov ecx, esi
and ecx, 3
mov dword [esp + 0x20], ecx
mov ecx, 3
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
shl ecx, 3
shl eax, cl
mov ecx, dword [ebp + 0xc]
or dword [ecx + edx*4], eax
inc esi
cmp esi, edi
jne 0x402d0b
mov esi, dword [esp + 0x28]
jmp 0x402cf0
mov eax, dword [esp + 0xe0]
call fcn.00402680
mov dword [esp + 0x30], eax
test eax, eax
jle 0x4030ca
xor ebx, ebx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4030a0
mov dword [esp + 0x2c], ebp
mov ebp, edi
jmp 0x402d98
mov ebx, esi
cmp esi, dword [esp + 0x24]
je 0x403261
lea esi, [ebx + 1]
test ebp, ebp
je 0x402d8c
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], ebx
mov ebx, 3
xor edi, edi
mov eax, dword [esp + 0xe0]
call fcn.00402680
test eax, eax
js 0x403288
add edi, eax
dec ebx
jne 0x402db2
mov dword [esp + 0x44], edi
fild dword [esp + 0x44]
fld qword [esp + 0x18]
fmul dword [0x425fc0]
fimul dword [esp + 0x30]
fxch st(1)
fucompp
fnstsw ax
mov edx, dword [esp + 0x28]
sar edx, 5
test ah, 0x45
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
je 0x403152
imul eax, dword [ebx + 8]
add edx, eax
mov eax, dword [ebx + 0xc]
mov ebx, 0x80000000
mov cl, byte [esp + 0x28]
shr ebx, cl
or dword [eax + edx*4], ebx
inc dword [esp + 0x28]
cmp dword [esp + 0x28], ebp
je 0x402d8c
jmp 0x402dab
mov eax, dword [esp + 0xe0]
call fcn.00402680
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x4030ca
xor ebx, ebx
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x402e5c
jmp 0x4030a0
mov ebx, esi
cmp esi, dword [esp + 0x24]
je 0x4030a0
lea esi, [ebx + 1]
test edi, edi
je 0x402e50
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0xe0]
call fcn.00402680
test eax, eax
js 0x403192
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
fld qword [esp + 0x18]
fimul dword [esp + 0x2c]
fxch st(1)
fucompp
fnstsw ax
mov edx, dword [esp + 0x28]
sar edx, 5
test ah, 0x45
mov eax, ebx
je 0x403117
imul eax, dword [ebp + 8]
add edx, eax
mov eax, 0x80000000
mov cl, byte [esp + 0x28]
shr eax, cl
mov ecx, dword [ebp + 0xc]
or dword [ecx + edx*4], eax
inc dword [esp + 0x28]
cmp dword [esp + 0x28], edi
je 0x402e50
jmp 0x402e6b
mov eax, dword [esp + 0xe0]
call fcn.00402680
mov dword [esp + 0x28], eax
test eax, eax
jle 0x4030ca
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call sub.msvcrt.dll_fgetc
inc eax
je 0x4030ca
xor ebx, ebx
cmp dword [esp + 0x24], 0
je 0x4030a0
mov dword [esp + 0x34], ebp
mov ebp, edi
jmp 0x402f1c
mov ebx, esi
cmp esi, dword [esp + 0x24]
je 0x40309c
lea esi, [ebx + 1]
test ebp, ebp
je 0x402f10
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], ebp
mov dword [esp + 0x30], esi
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0xe0]
mov esi, 3
xor edi, edi
mov dword [esp], ebx
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
je 0x40318e
cmp dword [esp + 0x28], 0xff
jg 0x403135
add edi, eax
dec esi
jne 0x402f49
mov dword [esp + 0x44], edi
fild dword [esp + 0x44]
fld qword [esp + 0x18]
fmul dword [0x425fc0]
fimul dword [esp + 0x28]
fxch st(1)
fucompp
fnstsw ax
mov edx, dword [esp + 0x2c]
sar edx, 5
test ah, 0x45
mov eax, dword [esp + 0x3c]
je 0x403207
imul eax, dword [ebp + 8]
add edx, eax
mov eax, dword [ebp + 0xc]
mov esi, 0x80000000
mov cl, byte [esp + 0x2c]
shr esi, cl
or dword [eax + edx*4], esi
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x2c], eax
jne 0x402f42
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
jmp 0x402f10
mov eax, dword [esp + 0xe0]
call fcn.00402680
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x4030ca
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call sub.msvcrt.dll_fgetc
inc eax
je 0x4030ca
xor ebx, ebx
cmp dword [esp + 0x24], 0
jne 0x403018
jmp 0x4030a0
mov ebx, esi
cmp esi, dword [esp + 0x24]
je 0x4030a0
lea esi, [ebx + 1]
test edi, edi
je 0x40300c
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
je 0x403192
cmp dword [esp + 0x2c], 0xff
jg 0x403225
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
fld qword [esp + 0x18]
fimul dword [esp + 0x2c]
fxch st(1)
fucompp
fnstsw ax
mov edx, dword [esp + 0x28]
sar edx, 5
test ah, 0x45
mov eax, ebx
je 0x403170
imul eax, dword [ebp + 8]
add edx, eax
mov eax, 0x80000000
mov cl, byte [esp + 0x28]
shr eax, cl
mov ecx, dword [ebp + 0xc]
or dword [ecx + edx*4], eax
inc dword [esp + 0x28]
cmp dword [esp + 0x28], edi
je 0x40300c
jmp 0x403027
mov ebp, dword [esp + 0x34]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
cmp eax, 1
jbe 0x4030ba
dec eax
imul eax, edx
shl eax, 2
add dword [ebp + 0xc], eax
neg edx
mov dword [ebp + 8], edx
mov edx, dword [esp + 0xec]
mov dword [edx], ebp
xor eax, eax
jmp 0x402797
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x4029f2
mov eax, dword [ebp + 8]
test eax, eax
js 0x4030e9
mov dword [esp], edx
call sub.msvcrt.dll_free
jmp 0x4029f2
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x4030dc
dec ecx
imul eax, ecx
lea edx, [edx + eax*4]
jmp 0x4030dc
imul eax, dword [ebp + 8]
add edx, eax
mov eax, 0x80000000
mov cl, byte [esp + 0x18]
shr eax, cl
not eax
mov ecx, dword [ebp + 0xc]
and dword [ecx + edx*4], eax
jmp 0x402c92
imul eax, dword [ebp + 8]
add edx, eax
mov eax, 0x80000000
mov cl, byte [esp + 0x28]
shr eax, cl
not eax
mov ecx, dword [ebp + 0xc]
and dword [ecx + edx*4], eax
jmp 0x402ebe
shl eax, 8
mov dword [esp + 0x40], eax
mov dword [esp], ebx
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
je 0x40318e
or eax, dword [esp + 0x40]
jmp 0x402f68
imul eax, dword [ebx + 8]
add edx, eax
mov eax, dword [ebx + 0xc]
mov ebx, 0x80000000
mov cl, byte [esp + 0x28]
shr ebx, cl
not ebx
and dword [eax + edx*4], ebx
jmp 0x402e16
imul eax, dword [ebp + 8]
add edx, eax
mov eax, 0x80000000
mov cl, byte [esp + 0x28]
shr eax, cl
not eax
mov ecx, dword [ebp + 0xc]
and dword [ecx + edx*4], eax
jmp 0x40308c
mov esi, dword [esp + 0x30]
mov ebx, dword [ebp + 8]
test ebx, ebx
js 0x4032d2
mov ecx, esi
imul ecx, ebx
shl ecx, 2
test ebx, ebx
jne 0x403291
test ecx, ecx
jne 0x4031b6
mov ecx, 1
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4032af
mov dword [ebp + 0xc], eax
mov dword [ebp + 4], esi
test ebx, ebx
js 0x40326a
mov eax, dword [ebp + 8]
cmp esi, 1
jbe 0x4031f4
lea edx, [esi - 1]
imul edx, eax
shl edx, 2
add dword [ebp + 0xc], edx
neg eax
mov dword [ebp + 8], eax
mov ecx, dword [esp + 0xec]
mov dword [ecx], ebp
mov eax, 1
jmp 0x402797
imul eax, dword [ebp + 8]
add edx, eax
mov eax, dword [ebp + 0xc]
mov esi, 0x80000000
mov cl, byte [esp + 0x2c]
shr esi, cl
not esi
and dword [eax + edx*4], esi
jmp 0x402fb4
shl eax, 8
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
je 0x403192
or eax, dword [esp + 0x30]
jmp 0x40304d
mov dword [0x42f020], 0x425f20
mov eax, 0xfffffffe
jmp 0x402797
mov ebp, dword [esp + 0x2c]
jmp 0x4030a0
mov edx, dword [ebp + 8]
cmp esi, 1
je 0x4031f4
lea ecx, [esi - 1]
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [ebp + 0xc], eax
neg edx
mov dword [ebp + 8], edx
jmp 0x4031db
mov ebp, dword [esp + 0x2c]
jmp 0x403192
mov edi, ebx
mov eax, ecx
cdq
idiv esi
cdq
idiv edi
cmp eax, 4
je 0x4031ad
call sub.msvcrt.dll__errno
mov dword [eax], 0xc
test ebx, ebx
js 0x40330f
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4029d3
mov edx, dword [ebp + 8]
test edx, edx
js 0x40332b
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x4029d3
mov eax, dword [ebp + 4]
cmp eax, 1
jbe 0x4032eb
dec eax
imul eax, ebx
shl eax, 2
add dword [ebp + 0xc], eax
mov eax, ebx
neg eax
mov dword [ebp + 8], eax
mov edi, ebx
neg edi
mov ecx, esi
imul ecx, edi
shl ecx, 2
jmp 0x403293
mov esi, dword [esp + 0x28]
jmp 0x403192
mov dword [esp], ebp
call sub.msvcrt.dll_free
jmp 0x4029d1
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 4]
cmp edx, 1
jbe 0x4032b3
dec edx
imul edx, eax
shl edx, 2
add dword [ebp + 0xc], edx
neg eax
mov dword [ebp + 8], eax
jmp 0x4032b3
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x4032c5
dec ecx
imul edx, ecx
lea eax, [eax + edx*4]
jmp 0x4032c5
cmp dword [esp + 0x7c], 0x6b
jbe 0x402771
jmp 0x4028e0
cmp dword [esp + 0xa0], 0
jne 0x403909
mov ecx, dword [esp + 0x8c]
cmp ecx, 8
jbe 0x4038fb
xor edi, edi
cmp dword [esp + 0x7c], 0xc
je 0x40338a
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0xe0]
call fcn.00422c6f
test eax, eax
jne 0x402773
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
test esi, esi
jne 0x4038a2
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 1
mov dword [esp], 0x10
call sub.msvcrt.dll_malloc
mov ebp, eax
test eax, eax
je 0x403895
mov dword [eax], esi
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov dword [ebp + 0xc], eax
test eax, eax
je 0x40388d
mov eax, dword [esp + 0x90]
shl eax, 8
add eax, dword [esp + 0x8c]
cmp eax, 0x18
je 0x4037d4
ja 0x4037ba
cmp eax, 8
ja 0x4037a2
cmp eax, 2
jae 0x4034fd
dec eax
je 0x403460
mov dword [esp], edi
call sub.msvcrt.dll_free
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x40277d
mov eax, dword [ebp + 8]
test eax, eax
js 0x403450
mov dword [esp], edx
call sub.msvcrt.dll_free
jmp 0x40277d
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x403440
dec ecx
imul eax, ecx
lea edx, [edx + eax*4]
jmp 0x403440
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x6c]
cmp dword [esp + 0x68], edx
jge 0x40347a
mov dword [esp + 0x28], 0xff
xor ebx, ebx
mov dword [esp + 0x18], edi
cmp ebx, dword [esp + 0x84]
jae 0x403793
lea esi, [ebx + 1]
mov dword [esp + 0x24], esi
mov dword [0x42f028], 0
xor edi, edi
lea esi, [edi*8]
cmp esi, dword [esp + 0x80]
jae 0x40377a
lea ecx, [esp + 0x58]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x4035b2
mov edx, dword [esp + 0x28]
xor edx, dword [esp + 0x58]
mov dword [esp + 0x58], edx
shr esi, 5
mov eax, dword [ebp + 8]
imul eax, ebx
add esi, eax
mov eax, dword [ebp + 0xc]
mov ecx, edi
not ecx
and ecx, 3
shl ecx, 3
shl edx, cl
or dword [eax + esi*4], edx
inc edi
jmp 0x4034a0
xor ebx, ebx
mov dword [esp + 0x28], edi
cmp dword [esp + 0x84], ebx
jbe 0x403717
lea esi, [ebx + 1]
mov dword [esp + 0x2c], esi
mov dword [0x42f028], 0
xor edi, edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x80]
jae 0x4036fe
cmp dword [esp + 0x8c], edi
ja 0x4036cc
mov edx, dword [esp + 0x8c]
mov ecx, 0x20
sub ecx, edx
mov eax, dword [esp + 0x24]
shr eax, cl
mov dword [esp + 0x58], eax
mov cl, dl
shl dword [esp + 0x24], cl
sub edi, edx
cmp eax, dword [esp + 0xa0]
jae 0x4036a5
mov esi, dword [esp + 0x28]
cmp dword [esi + eax*4], 0
je 0x4036a5
mov esi, dword [esp + 0x18]
shr esi, 5
mov eax, dword [ebp + 8]
imul eax, ebx
add esi, eax
mov edx, dword [ebp + 0xc]
mov eax, 0x80000000
mov cl, byte [esp + 0x18]
shr eax, cl
or dword [edx + esi*4], eax
inc dword [esp + 0x18]
jmp 0x403533
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], ebx
test ebx, ebx
js 0x403607
mov ecx, dword [esp + 0x20]
imul ecx, esi
shl ecx, 2
js 0x4035eb
test esi, esi
je 0x40362a
cmp dword [esp + 0x20], 0
je 0x40362a
mov eax, ecx
cdq
idiv esi
cdq
idiv dword [esp + 0x20]
cmp eax, 4
je 0x40362a
call sub.msvcrt.dll__errno
mov dword [eax], 0xc
test ebx, ebx
js 0x40366b
mov dword [esp], edi
call sub.msvcrt.dll_free
jmp 0x4032b3
mov eax, dword [ebp + 4]
cmp eax, 1
jbe 0x403620
dec eax
imul eax, ebx
shl eax, 2
add dword [ebp + 0xc], eax
mov eax, ebx
neg eax
mov dword [ebp + 8], eax
mov ecx, ebx
neg ecx
mov dword [esp + 0x20], ecx
jmp 0x4035c5
test ecx, ecx
jne 0x403633
mov ecx, 1
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4035f6
mov dword [ebp + 0xc], eax
mov dword [ebp + 4], esi
test ebx, ebx
js 0x40368a
mov dword [esp], edi
call sub.msvcrt.dll_free
cmp dword [esp + 0xbc], 0
jne 0x4031db
jmp 0x4031f4
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 4]
cmp edx, 1
jbe 0x4035fa
dec edx
imul edx, eax
shl edx, 2
add dword [ebp + 0xc], edx
neg eax
mov dword [ebp + 8], eax
jmp 0x4035fa
mov edx, dword [ebp + 8]
cmp esi, 1
jbe 0x403650
lea ecx, [esi - 1]
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [ebp + 0xc], eax
neg edx
mov dword [ebp + 8], edx
jmp 0x403650
mov esi, dword [esp + 0x18]
shr esi, 5
mov eax, dword [ebp + 8]
imul eax, ebx
add esi, eax
mov edx, dword [ebp + 0xc]
mov eax, 0x80000000
mov cl, byte [esp + 0x18]
shr eax, cl
not eax
and dword [edx + esi*4], eax
jmp 0x4035ac
lea ecx, [esp + 0x58]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403764
mov ecx, 0x18
sub ecx, edi
mov eax, dword [esp + 0x58]
shl eax, cl
or dword [esp + 0x24], eax
add edi, 8
jmp 0x403551
mov eax, dword [esp + 0xe0]
call fcn.00422c28
test eax, eax
jne 0x403771
mov ebx, dword [esp + 0x2c]
jmp 0x403503
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0xe0]
call fcn.00422c6f
mov dword [esp], edi
call sub.msvcrt.dll_free
cmp dword [esp + 0xbc], 0
je 0x4030ba
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 4]
cmp edx, 1
jbe 0x4030ba
dec edx
imul edx, eax
shl edx, 2
add dword [ebp + 0xc], edx
neg eax
mov dword [ebp + 8], eax
jmp 0x4030ba
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
jmp 0x4035ba
mov edi, dword [esp + 0x28]
jmp 0x403426
mov eax, dword [esp + 0xe0]
call fcn.00422c28
test eax, eax
jne 0x403799
mov ebx, dword [esp + 0x24]
jmp 0x403480
mov edi, dword [esp + 0x18]
jmp 0x40371b
mov edi, dword [esp + 0x18]
jmp 0x403426
cmp eax, 0x10
jne 0x403426
mov dword [0x42f020], 0x425f6c
jmp 0x403426
cmp eax, 0x108
je 0x403be2
ja 0x403a98
cmp eax, 0x20
jne 0x403426
xor esi, esi
cmp dword [esp + 0x84], esi
jbe 0x40371b
lea ebx, [esi + 1]
mov dword [esp + 0x24], ebx
mov dword [0x42f028], 0
xor ebx, ebx
cmp ebx, dword [esp + 0x80]
jae 0x403a7b
mov edx, dword [esp + 0x8c]
shr edx, 3
lea ecx, [esp + 0x5c]
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x4035b6
mov eax, dword [esp + 0x5c]
mov ecx, eax
shr ecx, 0x10
and ecx, 0xff
movzx edx, ah
add edx, ecx
and eax, 0xff
add eax, edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
fld qword [esp + 0x18]
fmul dword [0x425fc0]
fmul dword [0x425fc4]
fxch st(1)
fucompp
fnstsw ax
mov edx, ebx
shr edx, 5
test ah, 0x45
mov eax, esi
je 0x403a5f
imul eax, dword [ebp + 8]
add edx, eax
mov eax, 0x80000000
mov cl, bl
shr eax, cl
mov ecx, dword [ebp + 0xc]
or dword [ecx + edx*4], eax
inc ebx
jmp 0x4037f6
mov dword [esp], ebp
call sub.msvcrt.dll_free
mov dword [esp], edi
call sub.msvcrt.dll_free
jmp 0x4029d1
lea eax, [esi - 1]
mov ecx, 0x20
cdq
idiv ecx
inc eax
mov dword [esp + 0x28], eax
sar eax, 0x1f
mov ecx, dword [esp + 0x28]
xor ecx, eax
sub ecx, eax
mov eax, ecx
imul eax, ebx
shl eax, 2
mov dword [esp + 0x24], eax
js 0x4038de
test ebx, ebx
je 0x4038eb
test ecx, ecx
je 0x4038eb
cdq
idiv ebx
cdq
idiv ecx
cmp eax, 4
je 0x4038eb
call sub.msvcrt.dll__errno
mov dword [eax], 0xc
jmp 0x403895
cmp dword [esp + 0x24], 0
je 0x4033a8
jmp 0x4033b0
mov eax, 1
shl eax, cl
mov dword [esp + 0xa0], eax
cmp dword [esp + 0x8c], 8
ja 0x403369
mov dword [esp + 4], 4
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call sub.msvcrt.dll_calloc
mov edi, eax
test eax, eax
je 0x403895
xor ebx, ebx
cmp ebx, dword [esp + 0xa0]
jae 0x40336b
mov edx, dword [esp + 0xb8]
shr edx, 3
lea ecx, [esp + 0x5c]
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402773
mov eax, dword [esp + 0x5c]
mov ecx, eax
shr ecx, 0x10
and ecx, 0xff
movzx edx, ah
add edx, ecx
and eax, 0xff
add edx, eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x44], edx
fild dword [esp + 0x44]
fld qword [esp + 0x18]
fmul dword [0x425fc0]
fmul dword [0x425fc4]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
setne al
movzx eax, al
mov dword [edi + ebx*4], eax
cmp ebx, 1
ja 0x4039bb
mov dword [esp + ebx*4 + 0x68], edx
inc ebx
jmp 0x40393a
neg eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xbc], 1
jmp 0x402bb0
lea ecx, [esp + 0xa8]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0xac]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0xb0]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
lea ecx, [esp + 0xb4]
mov edx, 4
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x402771
jmp 0x402b88
imul eax, dword [ebp + 8]
add edx, eax
mov eax, 0x80000000
mov cl, bl
shr eax, cl
not eax
mov ecx, dword [ebp + 0xc]
and dword [ecx + edx*4], eax
jmp 0x403887
mov eax, dword [esp + 0xe0]
call fcn.00422c28
test eax, eax
jne 0x403426
mov esi, dword [esp + 0x24]
jmp 0x4037d6
cmp eax, 0x204
je 0x403eba
cmp eax, 0x320
jne 0x403426
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x403426
mov edx, dword [esp + 0xac]
test edx, edx
je 0x403426
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x403426
bsf ebx, ecx
jne 0x403ae5
mov ebx, 0x20
mov dword [esp + 0x2c], ebx
bsf ecx, edx
jne 0x403af3
mov ecx, 0x20
mov dword [esp + 0x30], ecx
bsf ecx, eax
jne 0x403b01
mov ecx, 0x20
mov dword [esp + 0x34], ecx
xor esi, esi
mov dword [esp + 0x24], edi
cmp dword [esp + 0x84], esi
jbe 0x403eb1
lea ebx, [esi + 1]
mov dword [esp + 0x28], ebx
mov dword [0x42f028], 0
xor ebx, ebx
cmp ebx, dword [esp + 0x80]
jae 0x403e94
mov edx, dword [esp + 0x8c]
shr edx, 3
lea ecx, [esp + 0x5c]
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403e87
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0xac]
and edi, edx
mov cl, byte [esp + 0x30]
shr edi, cl
mov eax, dword [esp + 0xa8]
and eax, edx
mov cl, byte [esp + 0x2c]
shr eax, cl
add edi, eax
mov eax, dword [esp + 0xb0]
and eax, edx
mov cl, byte [esp + 0x34]
shr eax, cl
add eax, edi
mov dword [esp + 0x5c], eax
xor edx, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
fild qword [esp + 0x48]
fld qword [esp + 0x18]
fmul dword [0x425fc0]
fmul dword [0x425fc4]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x403e25
mov edx, ebx
shr edx, 5
mov eax, dword [ebp + 8]
imul eax, esi
add edx, eax
mov eax, dword [ebp + 0xc]
mov edi, 0x80000000
mov cl, bl
shr edi, cl
or dword [eax + edx*4], edi
inc ebx
jmp 0x403b2b
xor esi, esi
mov dword [esp + 0x28], 0
xor ebx, ebx
lea eax, [esp + 0x58]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edi
xor edi, edi
mov ecx, dword [esp + 0x24]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403e1c
lea ecx, [esp + 0x5c]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403e1c
mov edx, dword [esp + 0x58]
mov dword [esp + 0x2c], edx
test edx, edx
je 0x403d12
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x84]
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], 0
mov ecx, ebx
cmp dword [esp + 0x30], ecx
ja 0x403c98
inc edi
cmp dword [esp + 0x30], 0
je 0x403d1b
xor ecx, ecx
cmp edi, dword [esp + 0x38]
jae 0x403cef
lea esi, [edi + 1]
test ecx, ecx
js 0x403ce0
cmp ecx, dword [ebp]
jge 0x403ce0
test edi, edi
js 0x403ce0
cmp edi, dword [ebp + 4]
jge 0x403ce0
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x3c], edx
mov edx, edi
jbe 0x403cf6
mov ebx, dword [esp + 0x40]
cmp dword [ebx], 0
je 0x403cf6
imul edx, dword [ebp + 8]
mov eax, ecx
shr eax, 5
add edx, eax
mov eax, dword [ebp + 0xc]
mov ebx, 0x80000000
shr ebx, cl
or dword [eax + edx*4], ebx
inc ecx
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x2c], eax
jne 0x403c84
mov ebx, ecx
jmp 0x403bfc
imul edx, dword [ebp + 8]
mov eax, ecx
shr eax, 5
add edx, eax
mov eax, dword [ebp + 0xc]
mov ebx, 0x80000000
shr ebx, cl
not ebx
and dword [eax + edx*4], ebx
jmp 0x403ce0
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x403d22
inc edi
xor ebx, ebx
jmp 0x403bfc
cmp eax, 1
je 0x403793
mov dword [esp + 0x28], 0
cmp eax, 2
je 0x403e48
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x5c]
jae 0x403df4
mov ecx, dword [esp + 0x24]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403e1c
mov eax, dword [esp + 0x80]
cmp eax, ebx
ja 0x403d79
inc edi
xor ebx, ebx
test eax, eax
je 0x403df4
cmp dword [esp + 0x84], edi
jbe 0x403df4
lea esi, [edi + 1]
test ebx, ebx
js 0x403dca
cmp ebx, dword [ebp]
jge 0x403dca
test edi, edi
js 0x403dca
cmp edi, dword [ebp + 4]
jge 0x403dca
mov eax, dword [esp + 0x58]
cmp dword [esp + 0xa0], eax
jbe 0x403dd4
mov edx, dword [esp + 0x18]
cmp dword [edx + eax*4], 0
je 0x403dd4
mov edx, dword [ebp + 8]
imul edx, edi
mov eax, ebx
shr eax, 5
add edx, eax
mov eax, 0x80000000
mov cl, bl
shr eax, cl
mov ecx, dword [ebp + 0xc]
or dword [ecx + edx*4], eax
inc ebx
inc dword [esp + 0x28]
jmp 0x403d3c
mov edx, dword [ebp + 8]
imul edx, edi
mov eax, ebx
shr eax, 5
add edx, eax
mov eax, 0x80000000
mov cl, bl
shr eax, cl
not eax
mov ecx, dword [ebp + 0xc]
and dword [ecx + edx*4], eax
jmp 0x403dca
test byte [esp + 0x5c], 1
je 0x403bfc
mov ecx, dword [esp + 0x24]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
je 0x403bfc
mov edi, dword [esp + 0x18]
jmp 0x4035ba
mov edi, ebx
shr edi, 5
mov eax, dword [ebp + 8]
imul eax, esi
add edi, eax
mov edx, dword [ebp + 0xc]
mov eax, 0x80000000
mov cl, bl
shr eax, cl
not eax
and dword [edx + edi*4], eax
jmp 0x403bdc
mov ecx, dword [esp + 0x24]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403e1c
lea ecx, [esp + 0x5c]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403e1c
add ebx, dword [esp + 0x58]
add edi, dword [esp + 0x5c]
jmp 0x403bfc
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
jmp 0x4035ba
mov eax, dword [esp + 0xe0]
call fcn.00422c28
test eax, eax
jne 0x404001
mov esi, dword [esp + 0x28]
jmp 0x403b0b
mov edi, dword [esp + 0x24]
jmp 0x40371b
xor ebx, ebx
mov dword [esp + 0x28], 0
lea eax, [esp + 0x58]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edi
xor edi, edi
mov ecx, dword [esp + 0x24]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403ff4
lea ecx, [esp + 0x5c]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403ff4
mov edx, dword [esp + 0x58]
test edx, edx
je 0x40400a
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x20], ecx
mov eax, ecx
shr eax, 4
and eax, 0xf
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x2c], esi
xor ecx, ecx
cmp eax, esi
jae 0x403f40
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + eax*4]
mov dword [esp + 0x60], ecx
mov esi, dword [esp + 0x20]
and esi, 0xf
xor eax, eax
cmp dword [esp + 0x2c], esi
jbe 0x403f5a
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + esi*4]
mov dword [esp + 0x64], eax
mov esi, dword [esp + 0x80]
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x84]
mov dword [esp + 0x30], eax
add edx, edi
mov dword [esp + 0x34], edx
mov ecx, edi
mov eax, ecx
sub eax, edi
cmp ecx, dword [esp + 0x34]
je 0x403fd2
cmp ecx, dword [esp + 0x2c]
jae 0x403fd2
cmp dword [esp + 0x30], ebx
jbe 0x403fd2
lea esi, [ebx + 1]
mov dword [esp + 0x28], esi
test ecx, ecx
js 0x403fcf
cmp ecx, dword [ebp]
jge 0x403fcf
test ebx, ebx
js 0x403fcf
cmp ebx, dword [ebp + 4]
jge 0x403fcf
and eax, 1
mov edx, ecx
shr edx, 5
cmp dword [esp + eax*4 + 0x60], 0
mov eax, ebx
je 0x404017
imul eax, dword [ebp + 8]
add edx, eax
mov eax, dword [ebp + 0xc]
mov esi, 0x80000000
shr esi, cl
or dword [eax + edx*4], esi
inc ecx
jmp 0x403f7c
mov esi, ecx
mov edi, esi
jmp 0x403ed2
mov ecx, dword [esp + 0x24]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
je 0x404057
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
jmp 0x4035ba
mov edi, dword [esp + 0x24]
jmp 0x403426
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x40402e
inc ebx
xor esi, esi
jmp 0x403fd4
imul eax, dword [ebp + 8]
add edx, eax
mov eax, dword [ebp + 0xc]
mov esi, 0x80000000
shr esi, cl
not esi
and dword [eax + edx*4], esi
jmp 0x403fcf
cmp eax, 1
je 0x403793
xor esi, esi
cmp eax, 2
je 0x404149
cmp esi, dword [esp + 0x5c]
jae 0x404118
mov eax, esi
and eax, 1
mov dword [esp + 0x2c], eax
je 0x403fdb
mov eax, dword [esp + 0x80]
cmp eax, edi
ja 0x40406d
inc ebx
test eax, eax
je 0x404192
xor edi, edi
cmp ebx, dword [esp + 0x84]
jae 0x404118
lea edx, [ebx + 1]
mov dword [esp + 0x28], edx
test edi, edi
js 0x4040df
cmp edi, dword [ebp]
jge 0x4040df
test ebx, ebx
js 0x4040df
cmp ebx, dword [ebp + 4]
jge 0x4040df
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x2c], 0
jne 0x404106
mov edx, eax
shr edx, 4
and edx, 0xf
cmp dword [esp + 0xa0], edx
jbe 0x4040e6
mov ecx, 4
shr eax, cl
and eax, 0xf
mov ecx, dword [esp + 0x18]
cmp dword [ecx + eax*4], 0
je 0x4040e6
mov edx, dword [ebp + 8]
imul edx, ebx
mov eax, edi
shr eax, 5
add edx, eax
mov eax, 0x80000000
mov ecx, edi
shr eax, cl
mov ecx, dword [ebp + 0xc]
or dword [ecx + edx*4], eax
inc edi
inc esi
jmp 0x404042
mov edx, dword [ebp + 8]
imul edx, ebx
mov eax, edi
shr eax, 5
add edx, eax
mov eax, 0x80000000
mov ecx, edi
shr eax, cl
not eax
mov ecx, dword [ebp + 0xc]
and dword [ecx + edx*4], eax
jmp 0x4040df
mov edx, eax
and edx, 0xf
cmp edx, dword [esp + 0xa0]
jae 0x4040e6
xor ecx, ecx
jmp 0x4040b4
mov esi, edi
mov eax, dword [esp + 0x5c]
inc eax
test al, 2
je 0x403fd4
mov ecx, dword [esp + 0x24]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
je 0x403fd4
jmp 0x403ff4
mov ecx, dword [esp + 0x24]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403ff4
lea ecx, [esp + 0x5c]
mov edx, 1
mov eax, dword [esp + 0xe0]
call fcn.0040261c
test eax, eax
jne 0x403ff4
mov esi, dword [esp + 0x58]
add esi, edi
add ebx, dword [esp + 0x5c]
jmp 0x403fd4
xor esi, esi
jmp 0x40411a