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

Disassembly:
push ebp
push edi
xor edi, edi
push esi
xor esi, esi
push ebx
sub esp, 0xbc
call fcn.00413340
mov dword [esp], 2
call fcn.00401520
call fcn.00410480
cmp eax, 4
mov ebx, eax
ja case.0x40c664.4
jmp dword [eax*4 + 0x40b544]
mov edx, dword [0x429740]
mov dword [esp], edx
call fcn.00413a00
test eax, eax
je 0x40c602
mov byte [eax + 8], 1
mov edi, 1
mov esi, esi
lea edi, [edi]
test edi, edi
mov esi, ebx
je 0x40b52f
dec edi
je 0x40b5a2
call fcn.0040ad90
call fcn.00403730
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00414060
mov ebx, dword [0x429990]
xor ecx, ecx
mov dword [0x42801c], ecx
mov dword [esp], ebx
call fcn.004194b0
mov edi, dword [0x4299e0]
mov edx, dword [0x429610]
mov dword [0x428050], eax
mov ecx, dword [0x429680]
sub edx, ecx
sar edx, 9
sub edi, edx
test edx, edx
mov dword [0x428060], edx
mov dword [0x428064], edi
jne 0x40c5ea
mov edx, dword [0x429700]
mov dword [esp], edx
call fcn.00404400
mov ebx, dword [0x4296e4]
mov ecx, dword [0x4296e0]
mov edx, ebx
mov eax, ecx
add eax, 0x1ff
adc edx, 0
test edx, edx
js 0x40c5d9
mov esi, eax
mov edi, edx
mov ebp, dword [0x429610]
shrd esi, edx, 9
mov edx, dword [0x429640]
sar edi, 9
mov eax, edx
sub eax, ebp
sar eax, 9
mov ebx, eax
sar ebx, 0x1f
cmp ebx, edi
jl 0x40b650
jg 0x40b691
cmp eax, esi
ja 0x40b691
lea esi, [esi]
lea edi, [edi]
sub edx, ebp
sar edx, 9
mov eax, edx
cdq
sub esi, eax
sbb edi, edx
call fcn.00403420
mov ebp, dword [0x429610]
mov edx, dword [0x429640]
add dword [0x428058], 1
mov eax, edx
adc dword [0x42805c], 0
sub eax, ebp
sar eax, 9
mov ebx, eax
sar ebx, 0x1f
cmp ebx, edi
jl 0x40b650
jg 0x40b691
cmp eax, esi
jbe 0x40b650
mov edi, esi
shl edi, 9
add ebp, edi
mov dword [0x429610], ebp
mov esi, esi
cmp ebp, edx
je 0x40c5c1
call fcn.00410480
cmp eax, 2
mov edx, eax
jne 0x40b6c2
mov esi, dword [0x4298a0]
test esi, esi
jne 0x40c10b
lea ebp, [edx - 2]
cmp ebp, 1
jbe 0x40c124
cmp edx, 4
je 0x40c0dc
mov ebp, dword [0x429740]
mov dword [esp], ebp
call fcn.00413a00
test eax, eax
jne 0x40c0d3
mov dword [esp + 8], 0x200
mov esi, dword [0x428060]
mov ecx, dword [0x428050]
mov ebx, dword [0x429700]
shl esi, 9
add esi, ecx
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.msvcrt.dll_memcpy
mov ebx, dword [0x4296e4]
mov ecx, dword [0x4296e0]
inc dword [0x428060]
mov edx, ebx
mov eax, ecx
dec dword [0x428064]
add eax, 0x1ff
adc edx, 0
test edx, edx
js 0x40c0c2
shrd eax, edx, 9
sar edx, 9
mov dword [esp + 0xb4], edx
mov edx, dword [0x429700]
mov dword [esp + 0xb0], eax
mov dword [esp], edx
call fcn.00404400
mov ebp, dword [0x428064]
test ebp, ebp
jne 0x40ba9f
mov eax, dword [0x429b00]
mov esi, dword [0x429680]
mov edi, dword [0x428050]
test eax, eax
mov dword [0x428054], esi
mov dword [0x429680], edi
je 0x40c0a6
mov ecx, dword [0x428058]
mov ebp, dword [0x42805c]
add ecx, 1
adc ebp, 0
neg ecx
adc ebp, 0
neg ebp
cmp eax, 0x7f
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebp
jle 0x40c081
mov dword [esp + 0xc], 1
add eax, 0xffffff80
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.00414bd0
mov dword [esp + 0x68], eax
mov ebx, dword [0x429990]
xor esi, esi
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mul ebx
imul ecx, ebx
mov edi, eax
mov eax, edx
mov edx, dword [esp + 0x70]
add eax, ecx
mov dword [esp], edi
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], edx
imul ecx, esi
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ebp
add ecx, edi
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x74]
adc eax, ebp
mov dword [esp + 0x64], eax
mov dword [esp + 0xc], ecx
call fcn.00425c40
mov edi, edx
xor edi, esi
xor eax, ebx
or edi, eax
jne 0x40b8b5
mov esi, dword [esp + 0x6c]
mov edx, 1
cmp dword [esp + 0x64], esi
jl 0x40b86b
jg 0x40b869
mov ebx, dword [esp + 0x68]
cmp dword [esp + 0x60], ebx
jb 0x40b86b
xor edx, edx
mov edi, ebp
shr edi, 0x1f
cmp edx, edi
jne 0x40b8b5
mov eax, dword [0x429b00]
cmp eax, 0x7f
jle 0x40c054
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x60]
add eax, 0xffffff80
mov dword [esp], eax
mov esi, dword [esp + 0x64]
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00414bd0
mov ebp, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
xor eax, ebp
xor ecx, edx
or ecx, eax
je 0x40b8fd
mov dword [esp], 0x40b410
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov dword [esp], 0x40b450
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.004196d0
call fcn.00402080
mov ebp, dword [0x428054]
mov edi, 1
test edi, edi
mov dword [0x429680], ebp
je 0x40ba8c
mov eax, dword [0x429b00]
test eax, eax
je 0x40ba7e
mov ecx, dword [0x428058]
cmp eax, 0x7f
mov esi, dword [0x42805c]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], esi
jle 0x40c02f
mov dword [esp + 0xc], 1
add eax, 0xffffff80
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.00414bd0
mov dword [esp + 0x50], eax
mov ebx, dword [0x429990]
xor esi, esi
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mul ebx
imul ecx, ebx
mov edi, eax
mov eax, edx
mov edx, dword [esp + 0x58]
add eax, ecx
mov dword [esp], edi
mov ecx, dword [esp + 0x58]
mov dword [esp + 8], edx
imul ecx, esi
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov dword [esp + 4], ebp
add ecx, edi
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x5c]
adc eax, ebp
mov dword [esp + 0x4c], eax
mov dword [esp + 0xc], ecx
call fcn.00425c40
mov edi, edx
xor edi, esi
xor eax, ebx
or edi, eax
jne 0x40ba36
mov ebx, dword [esp + 0x54]
mov edx, 1
cmp dword [esp + 0x4c], ebx
jl 0x40b9ec
jg 0x40b9ea
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x48], esi
jb 0x40b9ec
xor edx, edx
mov edi, ebp
shr edi, 0x1f
cmp edx, edi
jne 0x40ba36
mov eax, dword [0x429b00]
cmp eax, 0x7f
jle 0x40c002
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x48]
add eax, 0xffffff80
mov dword [esp], eax
mov ebx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00414bd0
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
xor eax, ebp
xor ecx, edx
or ecx, eax
je 0x40ba7e
mov dword [esp], 0x40b410
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov dword [esp], 0x40b450
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.004196d0
add dword [0x428058], 0xffffffff
adc dword [0x42805c], 0xffffffff
mov esi, dword [0x4299e0]
xor eax, eax
mov dword [0x428060], eax
mov dword [0x428064], esi
mov edx, dword [0x429640]
mov ebp, dword [0x429610]
mov ecx, edx
sub ecx, ebp
sar ecx, 9
mov ebx, ecx
mov dword [esp + 0xac], ecx
sar ebx, 0x1f
cmp ebx, dword [esp + 0xb4]
jl 0x40bae0
jg 0x40bad2
cmp ecx, dword [esp + 0xb0]
jbe 0x40bae0
mov esi, dword [esp + 0xb0]
mov dword [esp + 0xac], esi
mov edi, dword [esp + 0xb4]
or edi, dword [esp + 0xb0]
je 0x40b6a0
lea esi, [esi]
lea edi, [edi]
cmp ebp, edx
je 0x40bfa2
mov esi, dword [esp + 0xac]
mov eax, dword [0x428064]
cmp esi, eax
jle 0x40bb1a
mov esi, eax
mov dword [esp + 4], ebp
mov ecx, dword [0x428060]
mov ebx, esi
mov eax, dword [0x428050]
shl ebx, 9
shl ecx, 9
mov dword [esp + 8], ebx
add ecx, eax
mov ebp, ebx
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
mov eax, esi
mov edx, dword [0x429610]
mov edi, dword [0x428064]
add dword [0x428060], esi
add ebp, edx
cdq
mov dword [0x429610], ebp
sub edi, esi
sub dword [esp + 0xb0], esi
mov dword [0x428064], edi
sbb dword [esp + 0xb4], edx
sub dword [esp + 0xac], esi
test edi, edi
jne 0x40beb4
mov eax, dword [0x429b00]
mov ebx, dword [0x429680]
mov ebp, dword [0x428050]
test eax, eax
mov dword [0x428054], ebx
mov dword [0x429680], ebp
je 0x40bf85
mov ecx, dword [0x428058]
mov ebp, dword [0x42805c]
add ecx, 1
adc ebp, 0
neg ecx
adc ebp, 0
neg ebp
cmp eax, 0x7f
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebp
jle 0x40bf60
mov dword [esp + 0xc], 1
add eax, 0xffffff80
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.00414bd0
mov dword [esp + 0x38], eax
mov ebx, dword [0x429990]
xor esi, esi
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mul ebx
imul ecx, ebx
mov edi, eax
mov eax, edx
mov edx, dword [esp + 0x40]
add eax, ecx
mov dword [esp], edi
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], edx
imul ecx, esi
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ebp
add ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
adc eax, ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0xc], ecx
call fcn.00425c40
mov edi, edx
xor edi, esi
xor eax, ebx
or edi, eax
jne 0x40bcc3
mov ebx, dword [esp + 0x3c]
mov edx, 1
cmp dword [esp + 0x34], ebx
jl 0x40bc79
jg 0x40bc77
mov esi, dword [esp + 0x38]
cmp dword [esp + 0x30], esi
jb 0x40bc79
xor edx, edx
mov edi, ebp
shr edi, 0x1f
cmp edx, edi
jne 0x40bcc3
mov eax, dword [0x429b00]
cmp eax, 0x7f
jle 0x40bf2c
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x30]
add eax, 0xffffff80
mov dword [esp], eax
mov ebx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00414bd0
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
xor eax, ebp
xor ecx, edx
or ecx, eax
je 0x40bd0b
mov dword [esp], 0x40b410
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov dword [esp], 0x40b450
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.004196d0
call fcn.00402080
mov edi, dword [0x428054]
mov esi, 1
test esi, esi
mov dword [0x429680], edi
je 0x40be9a
mov eax, dword [0x429b00]
test eax, eax
je 0x40be8c
mov ecx, dword [0x428058]
cmp eax, 0x7f
mov ebx, dword [0x42805c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
jle 0x40bf07
mov dword [esp + 0xc], 1
add eax, 0xffffff80
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.00414bd0
mov dword [esp + 0x20], eax
mov ebx, dword [0x429990]
xor esi, esi
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mul ebx
imul ecx, ebx
mov edi, eax
mov eax, edx
mov edx, dword [esp + 0x28]
add eax, ecx
mov dword [esp], edi
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edx
imul ecx, esi
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ebp
add ecx, edi
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
adc eax, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], ecx
call fcn.00425c40
mov edi, edx
xor edi, esi
xor eax, ebx
or edi, eax
jne 0x40be44
mov esi, dword [esp + 0x24]
mov edx, 1
cmp dword [esp + 0x1c], esi
jl 0x40bdfa
jg 0x40bdf8
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x18], ebx
jb 0x40bdfa
xor edx, edx
mov edi, ebp
shr edi, 0x1f
cmp edx, edi
jne 0x40be44
mov eax, dword [0x429b00]
cmp eax, 0x7f
jle 0x40beda
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x18]
add eax, 0xffffff80
mov dword [esp], eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00414bd0
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
xor eax, ebp
xor ecx, edx
or ecx, eax
je 0x40be8c
mov dword [esp], 0x40b410
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov dword [esp], 0x40b450
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.004196d0
add dword [0x428058], 0xffffffff
adc dword [0x42805c], 0xffffffff
mov ebp, dword [0x4299e0]
xor edi, edi
mov dword [0x428060], edi
mov dword [0x428064], ebp
mov ebp, dword [0x429610]
mov eax, dword [esp + 0xb4]
or eax, dword [esp + 0xb0]
je 0x40becf
mov edx, dword [0x429640]
jmp 0x40bb00
mov edx, dword [0x429640]
jmp 0x40b6a0
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call sub.msvcrt.dll__lseeki64
mov ecx, dword [esp + 0x1c]
xor eax, ebx
xor ecx, edx
jmp 0x40be40
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.msvcrt.dll__lseeki64
jmp 0x40bd76
mov dword [esp + 0xc], 0
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
call sub.msvcrt.dll__lseeki64
mov ecx, dword [esp + 0x34]
xor eax, ebp
xor ecx, edx
jmp 0x40bcbf
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.msvcrt.dll__lseeki64
jmp 0x40bbf5
mov esi, 1
xor edi, edi
mov dword [0x429b00], esi
call fcn.00402080
mov dword [0x429b00], edi
jmp 0x40bd10
call fcn.00402bb0
mov ecx, dword [0x4299e0]
mov ebp, dword [0x429680]
add dword [0x428058], 1
mov ebx, ecx
mov dword [0x429610], ebp
adc dword [0x42805c], 0
sar ebx, 0x1f
cmp ebx, dword [esp + 0xb4]
mov dword [esp + 0xac], ecx
jl 0x40bb08
jg 0x40bfef
cmp ecx, dword [esp + 0xb0]
jbe 0x40bb08
mov esi, dword [esp + 0xb0]
mov dword [esp + 0xac], esi
jmp 0x40bb08
mov dword [esp + 0xc], 0
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
call sub.msvcrt.dll__lseeki64
mov ecx, dword [esp + 0x4c]
xor eax, ebp
xor ecx, edx
jmp 0x40ba32
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.msvcrt.dll__lseeki64
jmp 0x40b968
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call sub.msvcrt.dll__lseeki64
mov ecx, dword [esp + 0x64]
xor eax, ebx
xor ecx, edx
jmp 0x40b8b1
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.msvcrt.dll__lseeki64
jmp 0x40b7e7
mov ebx, 1
mov dword [0x429b00], ebx
call fcn.00402080
xor eax, eax
mov dword [0x429b00], eax
jmp 0x40b902
mov eax, ecx
mov edx, ebx
add eax, 0x3fe
adc edx, 0
jmp 0x40b744
mov byte [eax + 8], 1
jmp 0x40b5ea
mov dword [esp], 0x40b490
mov ebx, 2
call sub.libintl_2.dll_libintl_gettext
mov dword [esp], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call fcn.004196d0
mov dword [0x429840], ebx
mov ecx, dword [0x429700]
mov dword [esp], ecx
call fcn.00404400
mov ebp, dword [0x429610]
jmp 0x40becf
mov dword [esp + 4], 0
mov esi, dword [0x428060]
mov edx, dword [0x428050]
mov ebp, dword [0x428064]
shl esi, 9
add esi, edx
mov dword [esp], esi
shl ebp, 9
mov dword [esp + 8], ebp
call sub.msvcrt.dll_memset
mov edx, dword [0x428050]
xor eax, eax
mov ebx, dword [0x428064]
mov dword [0x428064], eax
mov edi, dword [0x429680]
mov eax, dword [0x429b00]
add dword [0x428060], ebx
mov dword [0x428054], edi
test eax, eax
mov dword [0x429680], edx
je 0x40c5a5
mov ebx, dword [0x428058]
mov edi, dword [0x42805c]
add ebx, 1
adc edi, 0
neg ebx
adc edi, 0
neg edi
cmp eax, 0x7f
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
jle 0x40c580
mov dword [esp + 0xc], 1
add eax, 0xffffff80
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.00414bd0
mov dword [esp + 0x98], eax
mov ebx, dword [0x429990]
xor esi, esi
mov dword [esp + 0x9c], edx
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mul ebx
imul ecx, ebx
mov edi, eax
mov eax, edx
mov edx, dword [esp + 0xa0]
add eax, ecx
mov dword [esp], edi
mov ecx, dword [esp + 0xa0]
mov dword [esp + 8], edx
imul ecx, esi
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ebp
add ecx, edi
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xa4]
adc eax, ebp
mov dword [esp + 0x94], eax
mov dword [esp + 0xc], ecx
call fcn.00425c40
mov edi, edx
xor edi, esi
xor eax, ebx
or edi, eax
jne 0x40c2e4
mov esi, dword [esp + 0x9c]
mov edx, 1
cmp dword [esp + 0x94], esi
jl 0x40c28e
jg 0x40c28c
mov ebx, dword [esp + 0x98]
cmp dword [esp + 0x90], ebx
jb 0x40c28e
xor edx, edx
mov edi, ebp
shr edi, 0x1f
cmp edx, edi
jne 0x40c2e4
mov eax, dword [0x429b00]
cmp eax, 0x7f
jle 0x40c54a
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x90]
add eax, 0xffffff80
mov dword [esp], eax
mov esi, dword [esp + 0x94]
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00414bd0
mov ebp, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
xor eax, ebp
xor ecx, edx
or ecx, eax
je 0x40c32c
mov dword [esp], 0x40b410
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov dword [esp], 0x40b450
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.004196d0
call fcn.00402080
mov ebp, dword [0x428054]
xor edi, edi
test edi, edi
mov dword [0x429680], ebp
je 0x40c4df
mov eax, dword [0x429b00]
test eax, eax
je 0x40c4d1
mov ecx, dword [0x428058]
cmp eax, 0x7f
mov esi, dword [0x42805c]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], esi
jle 0x40c525
mov dword [esp + 0xc], 1
add eax, 0xffffff80
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.00414bd0
mov dword [esp + 0x80], eax
mov ebx, dword [0x429990]
xor esi, esi
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mul ebx
imul ecx, ebx
mov edi, eax
mov eax, edx
mov edx, dword [esp + 0x88]
add eax, ecx
mov dword [esp], edi
mov ecx, dword [esp + 0x88]
mov dword [esp + 8], edx
imul ecx, esi
lea ebp, [ecx + eax]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
mov dword [esp + 4], ebp
add ecx, edi
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x8c]
adc eax, ebp
mov dword [esp + 0x7c], eax
mov dword [esp + 0xc], ecx
call fcn.00425c40
mov edi, edx
xor edi, esi
xor eax, ebx
or edi, eax
jne 0x40c489
mov ebx, dword [esp + 0x84]
mov edx, 1
cmp dword [esp + 0x7c], ebx
jl 0x40c43f
jg 0x40c43d
mov esi, dword [esp + 0x80]
cmp dword [esp + 0x78], esi
jb 0x40c43f
xor edx, edx
mov edi, ebp
shr edi, 0x1f
cmp edx, edi
jne 0x40c489
mov eax, dword [0x429b00]
cmp eax, 0x7f
jle 0x40c4f8
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x78]
add eax, 0xffffff80
mov dword [esp], eax
mov ebx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00414bd0
mov ebp, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
xor eax, ebp
xor ecx, edx
or ecx, eax
je 0x40c4d1
mov dword [esp], 0x40b410
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov dword [esp], 0x40b450
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 2
call fcn.004196d0
add dword [0x428058], 0xffffffff
adc dword [0x42805c], 0xffffffff
mov edi, dword [0x4299e0]
xor esi, esi
mov dword [0x428060], esi
mov dword [0x428064], edi
jmp 0x40b589
mov dword [esp + 0xc], 0
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
call sub.msvcrt.dll__lseeki64
mov ecx, dword [esp + 0x7c]
xor eax, ebp
xor ecx, edx
jmp 0x40c485
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.msvcrt.dll__lseeki64
jmp 0x40c39a
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call sub.msvcrt.dll__lseeki64
mov ecx, dword [esp + 0x94]
xor eax, ebx
xor ecx, edx
jmp 0x40c2e0
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.msvcrt.dll__lseeki64
jmp 0x40c1dd
mov eax, 1
mov dword [0x429b00], eax
call fcn.00402080
xor ecx, ecx
mov dword [0x429b00], ecx
jmp 0x40c331
call fcn.00403420
add dword [0x428058], 1
adc dword [0x42805c], 0
jmp 0x40b6a8
mov eax, ecx
mov edx, ebx
add eax, 0x3fe
adc edx, 0
jmp 0x40b618
mov dword [esp + 4], ecx
shl edx, 9
mov dword [esp + 8], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x40b5ea
mov ecx, dword [0x429700]
mov dword [esp], ecx
call fcn.00404400
mov edx, dword [0x429700]
cmp byte [edx + 0x1e2], 0
jne 0x40c63c
mov ebp, dword [0x4296e0]
mov esi, dword [0x4296e4]
mov dword [esp], ebp
mov dword [esp + 4], esi
call fcn.00411bf0
jmp case.0x40c664.4
call fcn.00411ce0
jmp 0x40c61f
mov edi, 3
jmp case.0x40c664.4
mov edx, dword [0x429700]
mov dword [esp], edx
call fcn.00404400
cmp esi, 4
ja case.0x40c664.4
jmp dword [esi*4 + 0x40c66c]
mov dword [esp], 0x40b4d0
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov dword [esp], 0x40b4f6
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov eax, 2
mov dword [0x429840], eax
jmp case.0x40c664.4
call sub.msvcrt.dll_abort
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
and eax, 0x43203a73
outsd dx, dword [esi]
jne 0x40c764
and byte fs:[esi + 0x6f], ch
je 0x40c71e
arpl word [edx + 0x65], si
popal
je 0x40c769
and byte [esi + 0x69], ah
insb byte es:[edi], dx
add byte gs:[0x45203a73], ah
jb 0x40c783
outsd dx, dword [esi]
jb 0x40c734
ja 0x40c77e
imul ebp, dword [ebp + 0x20], 0x736f6c63
imul ebp, dword [esi + 0x67], 0x26b48d00
add byte [eax], al
add byte [eax], al
lea edi, [edi]
and eax, 0x43203a73
inc ebx
outsd dx, dword [esi]
jne 0x40c7a4
and byte fs:[edi + 0x6e], ch
insb byte es:[edi], dx
jns 0x40c75f
ja 0x40c7b3
imul esi, dword [ebp + 0x20], 0x20756c25
outsd dx, dword [esi]
and byte [0x6220756c], ah
jns 0x40c7c7
jae 0x40c756
and eax, 0x43203a73
outsd dx, dword [esi]
jne 0x40c7ca
and byte fs:[esi + 0x6f], ch
and byte [esi + 0x6f], ch
je 0x40c784
ja 0x40c7d8
imul esi, dword [ebp + 0x20], 0x66206f74
imul ebp, dword [ebp], 0x90909090
and byte [edi + ebp*2 + 0x20], dh
imul bp, word [ebp], 0x9090
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
outsb dx, byte [esi]
js 0x40c805
arpl word gs:[ebp + 0x64], si
and byte [ebp + 0x4f], al
inc esi
and byte [edi + 0x6e], ch
and byte [ecx + 0x72], ah
arpl word [eax + 0x69], bp
jbe 0x40c80e
and byte [esi + 0x69], ah
insb byte es:[edi], dx
add byte gs:[eax + 0x72747845], dl
popal
jb 0x40c816
arpl word [ecx + ebp*2 + 0x6e], si
and byte [bp + di + 0x6f], ah
outsb dx, byte [esi]
je 0x40c829
jne 0x40c832
jne 0x40c838
and byte [esi + 0x69], ah
insb byte es:[edi], dx
jae 0x40c7ec
imul ebp, dword [ebp + 0x73], 0x20736120
jae 0x40c7ec
popal
jae 0x40c7ef
jb 0x40c836
jne 0x40c840
popal
jb 0x40c7f7
imul bp, word [ebp + 0x73], 0x9000
nop
nop
imul ebp, dword [ebp + 0x73], 0x90909000
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
and eax, 0x43203a73
outsd dx, dword [esi]
jne 0x40c864
insb byte es:[edi], dx
and byte fs:[esi + 0x6f], ch
je 0x40c81e
arpl word [edx + 0x65], si
popal
je 0x40c869
and byte [ecx + ebp*2 + 0x72], ah
arpl word gs:[edi + ebp*2 + 0x72], si
imul esi, dword fs:[edx + 0x65], 0x726f7463
jns 0x40c80f
add byte [eax + 0x65646441], dl
and byte fs:[edi + 0x72], dh
nop
inc ecx
and byte fs:[edi + 0x72], dh
ja 0x40c88a
imul esi, dword [ebp + 0x20], 0x20646e61
js 0x40c888
and byte fs:[ebp + 0x78], ah
arpl word gs:[ebp + 0x74], si
arpl word [ebp + 0x74], si
and byte gs:[eax + 0x65], dh
jb 0x40c899
jb 0x40c899
imul esi, dword [ebx + 0x73], 0x206e6f69
je 0x40c8a4
and byte [edi + ebp*2 + 0x20], dh
and byte [ecx + ebp*2 + 0x72], ah
arpl word gs:[edi + ebp*2 + 0x72], si
imul esi, dword fs:[edx + 0x65], 0x726f7463
jb 0x40c89f
arpl word [edi + ebp*2 + 0x72], si
jns 0x40c860
and eax, 0xb68d0073
add byte [eax], al
add byte [eax], al
lea edi, [edi]
and eax, 0x43203a73
popal
outsb dx, byte [esi]
outsb dx, byte [esi]
outsd dx, dword [esi]
je 0x40c87b
arpl word [eax + 0x61], bp
outsb dx, byte [esi]
and byte gs:[di + 0x6f], ch
and byte gs:[ebp + 0x6f], ch
and byte gs:[edi + ebp*2 + 0x20], dh
and eax, 0x6f6c3430
and byte [0x6f6c3430], ah
add byte [0x43203a73], ah
outsd dx, dword [esi]
jne 0x40c8e4
and byte fs:[esi + 0x6f], ch
outsd dx, dword [esi]
je 0x40c89e
insb byte es:[edi], dx
imul ebp, dword [esi + 0x6b], 0x206f7420
pushal
and eax, 0x90002773
lea esi, [esi]
jae 0x40c8b1
add byte [eax + 0x26748d], dl
and eax, 0x43203a73
outsd dx, dword [esi]
jne 0x40c904
and byte fs:[esi + 0x6f], ch
and byte [esi + 0x6f], ch
je 0x40c8be
arpl word [edx + 0x65], si
jb 0x40c906
popal
je 0x40c909
and byte [ebx + 0x79], dh
insd dword es:[edi], dx
insb byte es:[edi], dx
imul ebp, dword [esi + 0x6b], 0x206f7420
pushal
and eax, 0x25002773
jae 0x40c8f2
and byte [ebx + 0x6f], al
jne 0x40c929
and byte fs:[esi + 0x6f], ch
and byte [esi + 0x6f], ch
je 0x40c8e3
insd dword es:[edi], dx
popal
imul esp, dword [ebp + 0x20], 0x6e
outsd dx, dword [esi]
add byte gs:[0x43203a73], ah
outsd dx, dword [esi]
jne 0x40c941
and byte fs:[esi + 0x6f], ch
je 0x40c8fb
insd dword es:[edi], dx
popal
imul esp, dword [ebp + 0x20], 0x66
imul esp, dword [esi + 0x6f], 0x73695600
imul esp, dword [edx + 0x6c], 0x6f6c2065
outsd dx, dword [esi]
add byte [esi + 0x69], dl
jae 0x40c952
bound ebp, qword [ebp + 0x20]
insb byte es:[edi], dx
outsd dx, dword [esi]
outsb dx, byte [esi]
and byte [bp + 0x61], ch
outsb dx, byte [esi]
popal
insd dword es:[edi], dx
and byte gs:[ebp + 0x72], ah
jb 0x40c96a
jb 0x40c8fd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
popal
outsb dx, byte [esi]
outsb dx, byte [esi]
outsd dx, dword [esi]
je 0x40c937
js 0x40c98e
jb 0x40c97d
arpl word [eax + 0x60], si
and eax, 0x2d202773
sub eax, 0x6c696620
insb byte es:[edi], dx
and byte gs:[ecx + 0x73], ch
and byte [ebx + 0x6f], ah
outsb dx, byte [esi]
je 0x40c99d
outsb dx, byte [esi]
jne 0x40c99c
and byte fs:[esi + 0x72], ah
outsd dx, dword [esi]
insd dword es:[edi], dx
and byte [ecx + 0x6e], ah
outsd dx, dword [esi]
je 0x40c9ab
jb 0x40c966
jbe 0x40c9b7
insb byte es:[edi], dx
jne 0x40c9b8
add byte gs:[ebp + 0x6e550076], cl
imul ebp, dword [esi + 0x6f], 0x77
outsb dx, byte [esi]
and byte [esi + 0x69], ah
insb byte es:[edi], dx
and byte gs:[ecx + edi*2 + 0x70], dh
and byte gs:[edi], ah
and eax, 0x66202763
outsd dx, dword [esi]
and byte [esi + 0x6f], ah
jb 0x40c98b
and byte [0x65202c73], ah
and eax, 0x65202c73
js 0x40c9e6
jb 0x40c9d5
arpl word [ebp + 0x64], si
and byte [ecx + 0x73], ah
and byte [esi + 0x6f], ch
outsd dx, dword [esi]
jb 0x40c9ed
popal
insb byte es:[edi], dx
and byte [esi + 0x69], ah
insb byte es:[edi], dx
add byte gs:[edx + 0x65], dl
popal
imul ebp, dword fs:[esi + 0x67], 0xa732520
and byte [di], ah
jae 0x40c99d
add byte [eax - 0x6f6f6f70], dl
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
and eax, 0x57203a73
popal
jae 0x40c9d8
and byte [ebp + 0x6e], dh
jne 0x40ca28
popal
bound ebp, qword [ebp + 0x20]
je 0x40ca30
and byte [edx + 0x61], ah
arpl word [ebx + 0x75], bp
jo 0x40c9e9
je 0x40ca33
imul esi, dword [ebx + 0x20], 0x656c6966
add byte [eax - 0x6f6f6f70], dl
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edx
insd dword es:[edi], dx
outsd dx, dword [esi]
jbe 0x40ca5f
outsb dx, byte [esi]
and byte [si + 0x65], ch
popal
imul ebp, dword fs:[esi + 0x67], 0x272f6020
and byte [esi + 0x72], ah
outsd dx, dword [esi]
insd dword es:[edi], dx
and byte [ecx + 0x62], ah
jae 0x40ca7d
insb byte es:[edi], dx
jne 0x40ca85
and byte gs:[eax + 0x61], dh
je 0x40ca7f
and byte [esi + 0x61], ch
insd dword es:[edi], dx
jae 0x40ca3e
imul ebp, dword [esi + 0x20], 0x20656874
popal
jb 0x40ca8b
push 0x657669
js 0x40caa4
jb 0x40ca93
arpl word [eax + eax - 0x73], si
je 0x40ca5e
je 0x40ca35
lea esi, [esi]
lea edi, [edi]
add byte [ebp + 0x27bc], cl
add byte [eax], al
push ebp
push edi
push esi
push ebx
sub esp, 0x14c
mov ecx, dword [0x429700]
mov dword [esp], ecx
call fcn.00404400
mov edx, dword [0x429700]
mov dword [esp + 0xc], 1
inc esp
and al, 0xc
add dword [eax], eax
add byte [eax], al
mov dword [esp + 8], 0x429710
mov dword [esp], edx
mov dword [esp + 4], 0x4296b0
call fcn.004107c0
mov edx, dword [0x429b20]
add byte [ebx + 0x429b2015], cl
add byte [ebp + 0x15850fd2], al
adc al, byte [eax]
adc eax, 0x429b20
test edx, edx
jne 0x40dca1
ror byte [edi], cl
test dword [0xa1000012], edx
loopne 0x40ca26
add byte [ecx + 0x4297e0], ah
mov eax, dword [0x4297e0]
inc edx
add byte [ebp - 0x17af040], al
adc dword [eax], eax
add bh, al
inc esp
and al, 0x3c
add byte [eax], al
add byte [eax], al
test eax, eax
jne 0x40dc97
mov dword [esp + 0x3c], 0
mov edx, dword [0x429930]
test edx, edx
jne 0x40caba
cdq
inc edx
add byte [ebp - 0x74f08a2e], al
xor eax, 0x429740
mov esi, dword [0x429740]
cmp byte [esi], 0x2f
je 0x40dc30
mov edx, dword [0x429b30]
test edx, edx
je 0x40cad1
mov eax, dword [0x4299a0]
test eax, eax
je 0x40db8c
mov esi, dword [0x429700]
movzx edx, byte [esi + 0x9c]
movsx ebx, dl
cmp ebx, 0x56
mov byte [esp + 0x3b], dl
ja case.0x40caee.1
jmp dword [ebx*4 + 0x40caf8]
mov dword [esp], 0xa0
mov ecx, 0xa
xor ebp, ebp
mov dword [0x429780], ecx
xor edi, edi
call fcn.004194b0
mov dword [esp + 0x2c], eax
mov dword [0x429880], eax
mov dword [esp + 4], 0xc
mov edx, dword [0x429700]
mov ebx, ebp
shl ebx, 4
add edx, edi
add edx, 0x182
mov dword [esp], edx
call fcn.00410f80
mov ecx, dword [0x429700]
mov esi, dword [esp + 0x2c]
add ecx, edi
mov dword [esi + ebx + 4], edx
add ecx, 0x18e
mov dword [esi + ebx], eax
mov esi, dword [0x429880]
mov dword [esp + 4], 0xc
mov dword [esp], ecx
call fcn.00411d20
mov dword [esi + ebx + 8], eax
mov esi, dword [0x429880]
mov edx, dword [esi + ebx + 8]
mov dword [esp + 0x2c], esi
test edx, edx
je 0x40cce9
inc ebp
add edi, 0x18
cmp ebp, 3
jle 0x40cc78
mov ebp, dword [0x429700]
cmp byte [ebp + 0x1e2], 0
je case.0x40caee.0
mov dword [esp + 0x30], 4
call fcn.004043b0
mov dword [esp + 0x34], eax
xor ebp, ebp
mov edi, eax
jmp 0x40cd20
mov eax, dword [esp + 0x30]
mov edx, dword [0x429780]
lea esi, [eax + ebp]
lea ebx, [edx - 1]
cmp esi, ebx
jg 0x40d607
cmp edi, 0xfffffff4
je 0x40cd83
mov dword [esp], edi
mov ebx, dword [0x429880]
shl esi, 4
mov dword [esp + 4], 0xc
inc ebp
call fcn.00410f80
mov dword [ebx + esi + 4], edx
lea edx, [edi + 0xc]
add edi, 0x18
mov dword [ebx + esi], eax
mov ebx, dword [0x429880]
mov dword [esp + 4], 0xc
mov dword [esp], edx
call fcn.00411d20
cmp ebp, 0x14
mov dword [ebx + esi + 8], eax
jle 0x40cd20
mov ecx, dword [esp + 0x34]
cmp byte [ecx + 0x1f8], 0
je 0x40cda2
add dword [esp + 0x30], 0x15
mov dword [esp], ecx
call fcn.00404400
jmp 0x40cd04
mov edi, dword [esp + 0x34]
mov dword [esp], edi
call fcn.00404400
mov esi, dword [esp + 0x3c]
mov ecx, dword [0x429740]
add esi, ecx
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov ebp, dword [esp + 0x3c]
lea esi, [eax - 1]
mov eax, dword [0x429740]
add ebp, eax
cmp byte [esi + ebp], 0x2f
je 0x40d2e4
lea esi, [esi]
xor edx, edx
cmp dword [0x429770], 0
setne dl
dec edx
and edx, 0xfffffe00
cmp byte [esp + 0x3b], 0x53
lea ebx, [edx + 0x8505]
je 0x40ce03
or ebx, 8
mov edi, dword [0x4299a0]
test edi, edi
jne 0x40d2da
mov ebp, dword [0x4297d0]
test ebp, ebp
jne 0x40d2b8
cmp byte [esp + 0x3b], 0x37
je 0x40d276
mov dword [esp + 4], ebx
mov esi, dword [0x429740]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [0x4296b0]
add ebx, esi
mov dword [esp + 8], ebp
mov dword [esp], ebx
call sub.msvcrt.dll__open
test eax, eax
mov ebp, eax
jns 0x40cf42
mov ebx, dword [esp + 0x3c]
mov eax, dword [0x429740]
add ebx, eax
call sub.msvcrt.dll__errno
mov eax, dword [eax]
cmp eax, 2
je 0x40cf38
xor edx, edx
cmp eax, 0x11
je 0x40cf13
test edx, edx
jne 0x40cde0
mov dword [esp], 0x40c6f0
mov edi, 2
call sub.libintl_2.dll_libintl_gettext
mov esi, eax
call sub.msvcrt.dll__errno
mov ecx, dword [0x429740]
add dword [esp + 0x3c], ecx
mov dword [esp + 8], esi
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xc], ebp
mov ebx, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], ebx
call fcn.004196d0
mov edx, dword [0x429700]
mov dword [0x429840], edi
cmp byte [edx + 0x1e2], 0
jne 0x40cf0c
mov esi, dword [0x4296e0]
mov ebx, dword [0x4296e4]
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.00411bf0
mov eax, dword [0x429b30]
test eax, eax
jne 0x40cf05
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00412f10
jmp 0x40cefa
call fcn.00411ce0
jmp 0x40ced9
mov ecx, dword [0x429770]
test ecx, ecx
jne 0x40ce7c
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004129d0
mov edx, eax
jmp 0x40ce7c
mov dword [esp], ebx
call fcn.0040e100
jmp 0x40cf31
cmp byte [esp + 0x3b], 0x53
je 0x40d205
mov edx, dword [0x4296e4]
mov eax, dword [0x4296e0]
test edx, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
jle 0x40d1ef
nop
lea esi, [esi]
mov ecx, dword [0x429ab0]
test ecx, ecx
jne 0x40d1a8
call fcn.004043b0
test eax, eax
mov esi, eax
je 0x40d174
mov dword [esp], eax
xor ebx, ebx
call fcn.00404450
mov edx, dword [esp + 0x4c]
mov edi, eax
mov eax, dword [esp + 0x48]
cmp ebx, edx
jl 0x40cfaf
jg 0x40cfab
cmp edi, eax
jbe 0x40cfaf
mov edi, dword [esp + 0x48]
call sub.msvcrt.dll__errno
mov dword [eax], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00419660
lea edx, [edi + esi - 1]
mov ebx, eax
mov dword [esp], edx
call fcn.00404400
cmp ebx, edi
jne 0x40d0cd
mov esi, dword [esp + 0x48]
mov edx, edi
mov edi, dword [esp + 0x4c]
xor ebx, ebx
sub esi, edx
sbb edi, ebx
test edi, edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edi
jg 0x40cf70
test edi, edi
js 0x40d00d
cmp esi, 0
ja 0x40cf70
mov edi, dword [0x429ab0]
test edi, edi
jne 0x40d0b4
mov esi, dword [0x4299a0]
test esi, esi
jne 0x40cefa
mov dword [esp], ebp
call sub.msvcrt.dll__close
test eax, eax
js 0x40d060
mov dword [esp + 8], 0
mov edx, dword [0x429740]
add dword [esp + 0x3c], edx
mov dword [esp + 4], 0x4296b0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
call fcn.0040de70
jmp 0x40cefa
mov dword [esp], 0x40c70a
call sub.libintl_2.dll_libintl_gettext
mov edi, eax
call sub.msvcrt.dll__errno
mov edx, dword [0x429740]
mov esi, dword [esp + 0x3c]
mov dword [esp + 8], edi
add esi, edx
mov dword [esp + 0xc], esi
mov ebx, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], ebx
call fcn.004196d0
mov eax, dword [0x429b30]
mov ecx, 2
mov dword [0x429840], ecx
test eax, eax
je 0x40d035
call fcn.00412f10
jmp 0x40d035
mov dword [esp + 4], 0
mov dword [esp], 0x429650
call fcn.00412e40
jmp 0x40d01b
test ebx, ebx
js 0x40d139
mov dword [esp], 0x40c730
call sub.libintl_2.dll_libintl_gettext
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x10], ebx
mov ebx, dword [0x429740]
mov dword [esp + 0x14], edi
mov dword [esp + 8], eax
add esi, ebx
mov dword [esp + 0xc], esi
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov edx, dword [esp + 0x48]
mov esi, edi
xor eax, eax
mov edi, dword [esp + 0x4c]
mov ecx, 2
sub edx, esi
sbb edi, eax
mov dword [0x429840], ecx
mov dword [esp], edx
mov dword [esp + 4], edi
call fcn.00411bf0
jmp 0x40d00d
mov dword [esp], 0x40c756
call sub.libintl_2.dll_libintl_gettext
mov ebx, eax
call sub.msvcrt.dll__errno
mov edx, dword [0x429740]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], ebx
add ecx, edx
mov dword [esp + 0xc], ecx
mov ebx, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], ebx
call fcn.004196d0
jmp 0x40d10d
mov dword [esp], 0x40c790
mov esi, 2
call sub.libintl_2.dll_libintl_gettext
mov dword [esp], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call fcn.004196d0
mov dword [0x429840], esi
jmp 0x40d00d
mov dword [esp], 0x429650
mov ecx, dword [0x429740]
mov dword [esp + 4], ecx
call fcn.00412e40
mov edi, dword [esp + 0x4c]
mov edx, dword [0x4296e0]
mov esi, dword [0x4296e4]
mov dword [0x429624], edi
mov ebx, dword [esp + 0x48]
mov dword [0x429660], edx
mov dword [0x429664], esi
mov dword [0x429620], ebx
jmp 0x40cf7e
test edx, edx
js 0x40d00d
cmp eax, 0
ja 0x40cf70
jmp 0x40d00d
mov edx, dword [0x429740]
mov ebx, dword [esp + 0x3c]
add ebx, edx
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edi, [eax + 1]
mov dword [esp], edi
call fcn.004194b0
mov ecx, dword [esp + 0x3c]
mov ebx, eax
mov eax, dword [0x429740]
mov dword [esp + 8], edi
mov dword [esp], ebx
add ecx, eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
lea edx, [esp + 0x48]
mov edi, dword [0x4296e4]
mov esi, dword [0x4296e0]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], esi
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], edx
mov dword [esp], ebp
call fcn.0040e2b0
jmp 0x40d00d
mov edx, dword [0x428074]
test edx, edx
jne 0x40ce2a
mov dword [esp], 0x40c7b0
mov edi, 1
mov dword [0x428074], edi
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
jmp 0x40ce2a
mov esi, dword [esp + 0x3c]
mov eax, dword [0x429740]
mov ecx, dword [0x429970]
add esi, eax
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.004129d0
jmp 0x40ce1f
mov ebp, 1
jmp 0x40cf42
test esi, esi
je 0x40d2fe
mov eax, dword [esp + 0x3c]
mov edi, dword [0x429740]
add eax, edi
cmp byte [esi + eax], 0x2f
je 0x40d5e5
mov ecx, dword [0x429830]
test ecx, ecx
jne 0x40d5d4
cmp byte [esp + 0x3b], 0x44
je 0x40d5b7
mov eax, dword [0x4299a0]
test eax, eax
jne 0x40cefa
mov ebx, dword [esp + 0x3c]
mov edx, dword [0x429740]
add ebx, edx
mov dword [esp], ebx
call sub.msvcrt.dll__mkdir
test eax, eax
je 0x40d3e1
call sub.msvcrt.dll__errno
cmp dword [eax], 0x11
je 0x40d56e
mov ebx, dword [esp + 0x3c]
mov ebp, dword [0x429740]
call sub.msvcrt.dll__errno
mov eax, dword [eax]
add ebx, ebp
cmp eax, 2
je 0x40d564
xor edx, edx
cmp eax, 0x11
je 0x40d540
test edx, edx
jne 0x40d324
mov eax, dword [esp + 0x3c]
mov ebx, dword [0x429740]
add eax, ebx
cmp byte [esi + eax], 0x2e
je 0x40d3d6
mov dword [esp], 0x40c7f0
call sub.libintl_2.dll_libintl_gettext
mov edi, eax
call sub.msvcrt.dll__errno
mov ecx, dword [0x429740]
add dword [esp + 0x3c], ecx
mov dword [esp + 8], edi
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
mov esi, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], esi
call fcn.004196d0
mov ebp, 2
mov dword [0x429840], ebp
jmp 0x40cef1
test esi, esi
je 0x40d3e1
cmp byte [esi + eax - 1], 0x2f
jne 0x40d38b
mov eax, dword [0x429110]
test eax, eax
jne 0x40d440
mov edx, dword [0x4296b0]
mov ebx, edx
and ebx, 0xc0
cmp ebx, 0xc0
je 0x40d440
mov dword [esp], 0x40c810
or edx, 0xc0
mov dword [0x4296b0], edx
call sub.libintl_2.dll_libintl_gettext
mov edi, dword [0x429740]
mov esi, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
add esi, edi
mov dword [esp + 0xc], esi
mov dword [esp], 0
call fcn.004196d0
mov edx, dword [0x429a30]
test edx, edx
je 0x40d4f2
mov esi, dword [esp + 0x3c]
mov ebp, dword [0x429740]
mov ecx, dword [0x429770]
add esi, ebp
test ecx, ecx
je 0x40d4ea
mov edx, dword [0x4296b0]
test edx, 0xe00
je 0x40cefa
movzx ebx, word [0x429130]
mov dword [esp], esi
not ebx
and ebx, edx
mov dword [esp + 4], ebx
call sub.msvcrt.dll__chmod
test eax, eax
jns 0x40cefa
mov dword [esp], 0x40c850
call sub.libintl_2.dll_libintl_gettext
mov edi, eax
call sub.msvcrt.dll__errno
mov dword [esp + 0xc], esi
mov edx, dword [0x4296b0]
movzx ebp, word [0x429130]
mov dword [esp + 8], edi
not ebp
and ebp, edx
mov dword [esp + 0x10], ebp
mov esi, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], esi
call fcn.004196d0
mov eax, 2
mov dword [0x429840], eax
jmp 0x40cefa
mov edx, dword [0x4296b0]
jmp 0x40d47a
mov dword [esp], 0x50
call fcn.004194b0
mov esi, dword [0x429740]
mov ebp, eax
lea edi, [ebp + 8]
add dword [esp + 0x3c], esi
mov esi, 0x4296b0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
call fcn.00419460
mov ecx, 0x12
cld
rep movsd dword es:[edi], dword [esi]
mov dword [ebp + 4], eax
mov ecx, dword [0x429140]
mov dword [ebp], ecx
mov dword [0x429140], ebp
jmp 0x40cefa
mov eax, dword [0x429770]
test eax, eax
jne 0x40d375
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004129d0
mov edx, eax
jmp 0x40d375
mov dword [esp], ebx
call fcn.0040e100
jmp 0x40d55d
call sub.msvcrt.dll__errno
mov edi, dword [0x429740]
lea ecx, [esp + 0x50]
mov ebp, dword [esp + 0x3c]
mov ebx, dword [eax]
mov dword [esp + 4], ecx
add ebp, edi
mov dword [esp], ebp
call fcn.00420e40
test eax, eax
jne 0x40d5ab
mov edx, dword [esp + 0x50]
and edx, 0xf000
cmp edx, 0x4000
je 0x40d3e1
call sub.msvcrt.dll__errno
mov dword [eax], ebx
jmp 0x40d34e
mov edi, dword [0x4296e0]
mov ebp, dword [0x4296e4]
mov dword [esp], edi
mov dword [esp + 4], ebp
call fcn.00411bf0
jmp 0x40d317
mov edx, dword [esp + 0x3c]
mov dword [esp], edx
call fcn.0040f3c0
jmp 0x40d317
mov byte [esi + eax], 0
dec esi
je 0x40d2fe
mov eax, dword [esp + 0x3c]
mov ebx, dword [0x429740]
add eax, ebx
cmp byte [esi + eax], 0x2f
je 0x40d5e5
jmp 0x40d2fe
mov ecx, dword [0x429880]
lea ebx, [edx + edx]
shl edx, 5
mov dword [0x429780], ebx
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00419510
mov dword [0x429880], eax
jmp 0x40cd38
mov ebx, dword [0x4299a0]
test ebx, ebx
jne 0x40cefa
mov edi, dword [0x4297d0]
test edi, edi
jne 0x40d7bc
mov ebx, dword [esp + 0x3c]
mov edi, dword [0x429740]
mov ecx, dword [0x4298f0]
add ebx, edi
mov dword [esp + 4], ebx
mov dword [esp], ecx
call fcn.004218fc
test eax, eax
je 0x40cefa
mov ebx, dword [esp + 0x3c]
mov edx, dword [0x429740]
add ebx, edx
call sub.msvcrt.dll__errno
mov eax, dword [eax]
cmp eax, 2
je 0x40d7b2
xor edx, edx
cmp eax, 0x11
je 0x40d78e
test edx, edx
jne 0x40d64b
mov esi, dword [0x429830]
test esi, esi
je 0x40d6b4
call sub.msvcrt.dll__errno
cmp dword [eax], 0x11
je 0x40cefa
mov ebp, dword [0x4298f0]
lea ecx, [esp + 0xf0]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call fcn.00420e40
test eax, eax
jne 0x40d744
mov ebx, dword [esp + 0x3c]
lea edx, [esp + 0xa0]
mov edi, dword [0x429740]
mov dword [esp + 4], edx
add ebx, edi
mov dword [esp], ebx
call fcn.00420e40
test eax, eax
jne 0x40d744
mov edi, dword [esp + 0x104]
mov esi, dword [esp + 0x100]
mov ebp, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov eax, edi
xor ebp, esi
xor eax, ecx
or eax, ebp
jne 0x40d744
mov edx, dword [esp + 0xfc]
mov esi, dword [esp + 0xf8]
mov ebp, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov eax, edx
xor ebp, esi
xor eax, ecx
or eax, ebp
je 0x40cefa
mov dword [esp], 0x40c870
call sub.libintl_2.dll_libintl_gettext
mov edi, eax
call sub.msvcrt.dll__errno
mov esi, dword [0x429740]
mov ecx, dword [0x4298f0]
add dword [esp + 0x3c], esi
mov dword [esp + 8], edi
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xc], ebp
mov ebx, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], ebx
call fcn.004196d0
jmp 0x40d3c6
mov eax, dword [0x429770]
test eax, eax
jne 0x40d698
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004129d0
mov edx, eax
jmp 0x40d698
mov dword [esp], ebx
call fcn.0040e100
jmp 0x40d7ab
mov edx, dword [esp + 0x3c]
mov eax, dword [0x429740]
mov esi, dword [0x429970]
add edx, eax
mov dword [esp + 4], esi
mov dword [esp], edx
call fcn.004129d0
jmp 0x40d64b
mov ebp, dword [0x4299a0]
test ebp, ebp
jne 0x40cefa
mov eax, dword [0x4297d0]
test eax, eax
jne 0x40d89c
mov ebp, dword [esp + 0x3c]
mov ecx, dword [0x429740]
mov esi, dword [0x4298f0]
add ebp, ecx
mov dword [esp + 4], ebp
mov dword [esp], esi
call fcn.00421bf8
test eax, eax
mov ebx, eax
je 0x40d844
mov esi, dword [esp + 0x3c]
mov edx, dword [0x429740]
add esi, edx
call sub.msvcrt.dll__errno
mov eax, dword [eax]
cmp eax, 2
je 0x40d892
xor edx, edx
cmp eax, 0x11
je 0x40d875
test edx, edx
jne 0x40d7f9
test ebx, ebx
jne 0x40d869
mov dword [esp + 8], 1
mov dword [esp + 4], 0x4296b0
mov eax, dword [0x429740]
add dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
jmp 0x40d056
mov dword [esp], 0x40c890
jmp 0x40d74b
mov eax, dword [0x429770]
test eax, eax
jne 0x40d83c
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.004129d0
mov edx, eax
jmp 0x40d83c
mov dword [esp], esi
call fcn.0040e100
jmp 0x40d88e
mov ecx, dword [esp + 0x3c]
mov ebx, dword [0x429740]
mov edi, dword [0x429970]
add ecx, ebx
mov dword [esp + 4], edi
mov dword [esp], ecx
call fcn.004129d0
jmp 0x40d7f9
or dword [0x4296b0], 0x2000
lea esi, [esi]
mov eax, dword [0x4299a0]
test eax, eax
jne 0x40cefa
mov edx, dword [0x4297d0]
test edx, edx
jne 0x40d98f
mov dword [esp], 0
mov ebx, dword [esp + 0x3c]
lea edx, [esp + 0x40]
mov dword [esp + 0xc], edx
mov eax, dword [0x429740]
mov ebp, dword [0x4296d8]
mov edi, dword [0x4296dc]
mov ecx, dword [0x4296b0]
add ebx, eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], edi
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
call fcn.00421cd0
test eax, eax
je 0x40d035
mov ebx, dword [esp + 0x3c]
mov esi, dword [0x429740]
call sub.msvcrt.dll__errno
mov eax, dword [eax]
add ebx, esi
cmp eax, 2
je 0x40d985
xor edx, edx
cmp eax, 0x11
je 0x40d967
test edx, edx
jne 0x40d8d0
mov dword [esp], 0x40c8b5
jmp 0x40d392
mov ecx, dword [0x429770]
test ecx, ecx
jne 0x40d953
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004129d0
mov edx, eax
jmp 0x40d953
mov dword [esp], ebx
call fcn.0040e100
jmp 0x40d981
mov ebx, dword [esp + 0x3c]
mov edi, dword [0x429740]
mov ebp, dword [0x429970]
add ebx, edi
mov dword [esp + 4], ebp
mov dword [esp], ebx
call fcn.004129d0
jmp 0x40d8eb
or dword [0x4296b0], 0x6000
jmp 0x40d8d0
mov edi, dword [0x4299a0]
test edi, edi
jne 0x40cefa
mov ebp, dword [0x4297d0]
test ebp, ebp
jne 0x40da69
mov edi, dword [esp + 0x3c]
mov esi, dword [0x429740]
mov ebx, dword [0x4296b0]
add edi, esi
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.00421700
test eax, eax
mov ebx, eax
je 0x40da28
mov esi, dword [esp + 0x3c]
mov edx, dword [0x429740]
add esi, edx
call sub.msvcrt.dll__errno
mov eax, dword [eax]
cmp eax, 2
je 0x40da5f
xor edx, edx
cmp eax, 0x11
je 0x40da41
test edx, edx
jne 0x40d9dd
test ebx, ebx
jne 0x40da35
mov dword [esp + 8], 0
jmp 0x40d84c
mov dword [esp], 0x40c8cd
jmp 0x40d392
mov ebp, dword [0x429770]
test ebp, ebp
jne 0x40da20
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.004129d0
mov edx, eax
jmp 0x40da20
mov dword [esp], esi
call fcn.0040e100
jmp 0x40da5b
mov esi, dword [esp + 0x3c]
mov eax, dword [0x429740]
mov ecx, dword [0x429970]
add esi, eax
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.004129d0
jmp 0x40d9dd
mov edx, dword [esp + 0x3c]
mov ebp, dword [0x429740]
add edx, ebp
mov dword [esp], edx
call sub.msvcrt.dll_strlen
lea esi, [eax - 1]
jmp 0x40d2e4
mov dword [esp], 0x40c8e5
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov edx, 2
mov dword [0x429840], edx
jmp 0x40ced9
mov dword [esp], 0x40c910
call sub.libintl_2.dll_libintl_gettext
mov ecx, dword [0x429740]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp + 0xc], ecx
mov dword [esp], 0
call fcn.004196d0
jmp 0x40dacb
call fcn.00412110
jmp 0x40cefa
mov dword [esp], 0x40c950
call sub.libintl_2.dll_libintl_gettext
mov ebp, dword [0x429740]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
add edi, ebp
mov dword [esp + 0x10], edi
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
jmp 0x40cde0
mov eax, dword [0x4297e0]
test eax, eax
je 0x40cefa
mov dword [esp], 0x40c988
call sub.libintl_2.dll_libintl_gettext
mov edi, dword [0x429670]
mov ebp, dword [0x429740]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], ebp
call sub.msvcrt.dll_fprintf
jmp 0x40cefa
mov dword [esp + 4], 0
mov esi, dword [esp + 0x3c]
mov ebp, dword [0x429740]
add esi, ebp
mov dword [esp], esi
call fcn.00412bc0
test eax, eax
jne 0x40cad1
mov dword [esp], 0x40c9b0
mov edi, 2
call sub.libintl_2.dll_libintl_gettext
mov esi, eax
call sub.msvcrt.dll__errno
mov ecx, dword [0x429740]
add dword [esp + 0x3c], ecx
mov dword [esp + 8], esi
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
mov ebx, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], ebx
call fcn.004196d0
mov dword [0x429840], edi
mov ebp, dword [0x429700]
cmp byte [ebp + 0x1e2], 0
jne 0x40dc22
mov ebx, dword [0x4296e0]
mov edi, dword [0x4296e4]
mov dword [esp], ebx
mov dword [esp + 4], edi
call fcn.00411bf0
jmp 0x40cefa
call fcn.00411ce0
jmp 0x40dc05
inc dword [esp + 0x3c]
mov ebp, dword [0x428070]
test ebp, ebp
je 0x40dc60
test edx, edx
jne 0x40caba
mov ecx, dword [0x429740]
mov ebx, dword [esp + 0x3c]
cmp byte [ebx + ecx], 0x2f
je 0x40dc30
jmp 0x40caba
mov dword [esp], 0x40c9f0
mov edi, 1
mov dword [0x428070], edi
call sub.libintl_2.dll_libintl_gettext
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
mov edx, dword [0x429930]
jmp 0x40dc3e
call fcn.00411190
jmp 0x40ca99
mov dword [esp], 0x40ca2d
mov ebx, dword [0x429740]
mov dword [esp + 4], ebx
call fcn.004158d0
test eax, eax
je 0x40dbf6
jmp 0x40ca8c