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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1fc
mov edx, dword [esp + 0x214]
mov ecx, dword [esp + 0x218]
mov dword [esp + 0xa0], edx
mov edx, dword [0x429b20]
mov dword [esp + 0xa4], ecx
test edx, edx
jne 0x40aac0
mov ebx, dword [0x429940]
test ebx, ebx
je 0x40aaa0
mov dword [esp + 4], 0x4296b0
mov esi, dword [esp + 0x210]
mov dword [esp], esi
call fcn.00420e40
test eax, eax
je 0x4092b0
mov dword [esp], 0x408fc4
call sub.libintl_2.dll_libintl_gettext
mov ebx, eax
call sub.msvcrt.dll__errno
mov ebp, dword [esp + 0x210]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebx
mov edi, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], edi
call fcn.004196d0
mov eax, dword [0x429860]
test eax, eax
jne 0x4092a5
mov esi, 2
mov dword [0x429840], esi
add esp, 0x1fc
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [0x4296e8]
mov ecx, dword [0x429830]
mov ebx, dword [0x4296e0]
mov dword [esp + 0xb8], edx
mov eax, dword [0x4296e4]
test ecx, ecx
mov dword [esp + 0x88], ebx
mov edx, dword [0x4296ec]
mov dword [esp + 0x8c], eax
mov dword [esp + 0xbc], edx
jne 0x409367
mov esi, dword [0x4296b0]
and esi, 0xf000
cmp esi, 0x4000
je 0x409367
mov eax, dword [0x429af0]
cmp edx, eax
jge 0x409367
mov ebp, dword [0x4298e0]
test ebp, ebp
je 0x40931c
cmp dword [0x4296f0], eax
jge 0x409367
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
and edi, ecx
inc edi
jne 0x4092a5
mov dword [esp], 0x408fd7
call sub.libintl_2.dll_libintl_gettext
mov edx, dword [esp + 0x210]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004196d0
jmp 0x4092a5
mov esi, dword [0x4296a4]
mov ebx, dword [0x4296a0]
mov eax, esi
or eax, ebx
je 0x4093b4
mov ecx, dword [0x4296c4]
mov ebp, dword [0x4296c0]
mov edi, ecx
xor edi, esi
xor ebp, ebx
or edi, ebp
jne 0x4093b4
mov edx, dword [0x4296bc]
mov eax, dword [0x4296b8]
mov ebx, dword [0x429690]
mov edi, dword [0x429694]
mov esi, edx
xor ebx, eax
xor esi, edi
or esi, ebx
je 0x40aa80
cmp dword [0x4296c8], 1
jbe 0x40a844
mov eax, dword [0x4296b0]
mov edx, eax
and edx, 0xf000
cmp edx, 0x8000
je 0x40a758
cmp edx, 0x2000
je 0x40a758
cmp edx, 0x6000
je 0x40a758
cmp edx, 0x1000
je 0x40a758
mov esi, esi
and eax, 0xf000
cmp eax, 0x8000
je 0x409d52
cmp eax, 0xa000
je 0x409b20
cmp eax, 0x4000
je 0x4095b3
cmp eax, 0x2000
mov bl, 0x33
je 0x40947e
cmp eax, 0x6000
mov bl, 0x34
je 0x40947e
cmp eax, 0x1000
mov bl, 0x36
je 0x40947e
cmp eax, 0xc000
je 0x40947c
mov dword [esp], 0x409010
call sub.libintl_2.dll_libintl_gettext
mov edx, dword [esp + 0x210]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp + 0xc], edx
mov dword [esp], 0
call fcn.004196d0
jmp 0x40929a
mov bl, 0x36
cmp dword [0x429850], 1
je 0x409448
mov dword [esp + 4], 0x4296b0
mov eax, dword [esp + 0x210]
xor ecx, ecx
mov dword [0x4296e0], ecx
xor esi, esi
mov dword [0x4296e4], esi
mov dword [esp], eax
call fcn.00408810
mov dword [esp + 0x9c], eax
test eax, eax
je 0x40929a
mov edi, dword [esp + 0x9c]
cmp bl, 0x36
mov byte [edi + 0x9c], bl
je 0x40955b
movzx ecx, byte [0x4296d9]
mov ebp, edi
add ebp, 0x149
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], 0x409034
mov esi, ecx
sar esi, 0x1f
mov dword [esp + 0x14], 8
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], ecx
mov dword [esp + 4], esi
call fcn.00408530
mov edx, edi
add edx, 0x151
movzx ebx, byte [0x4296d8]
mov dword [esp + 0x18], 0x40903c
mov dword [esp + 0x14], 8
mov dword [esp + 0x10], edx
mov ebp, ebx
sar ebp, 0x1f
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.00408530
mov edi, dword [esp + 0x9c]
mov dword [esp], edi
call fcn.00408d50
mov eax, dword [0x4299f0]
test eax, eax
je 0x4092a5
mov esi, dword [esp + 0x210]
mov dword [esp], esi
call fcn.00421690
inc eax
jne 0x4092a5
mov dword [esp], 0x409044
call sub.libintl_2.dll_libintl_gettext
mov ebx, eax
call sub.msvcrt.dll__errno
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov ebx, dword [eax]
mov dword [esp + 4], ebx
jmp 0x40946b
mov dword [esp + 4], 4
mov ebp, dword [0x4296c0]
mov ebx, dword [0x4296c4]
mov esi, dword [esp + 0x210]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebx
mov dword [esp], esi
call fcn.004215a0
inc eax
je 0x409aeb
mov edx, dword [esp + 0x210]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
lea ebp, [eax + 0x64]
mov ebx, eax
lea esi, [eax + 0x65]
mov dword [esp + 0x58], ebp
mov dword [esp], esi
call fcn.004194b0
mov ecx, dword [esp + 0x210]
mov edi, eax
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msvcrt.dll_strncpy
test ebx, ebx
je 0x409630
cmp byte [ebx + edi - 1], 0x2f
je 0x409ad8
mov byte [ebx + edi], 0x2f
xor eax, eax
inc ebx
mov byte [ebx + edi], 0
xor ebp, ebp
mov dword [0x4296e0], ebp
mov dword [0x4296e4], eax
mov dword [esp + 4], 0x4296b0
mov dword [esp], edi
call fcn.00408810
mov dword [esp + 0x9c], eax
test eax, eax
je 0x40929a
mov ecx, dword [0x429830]
test ecx, ecx
je 0x409ac5
mov esi, dword [esp + 0x9c]
mov byte [esi + 0x9c], 0x44
mov ebp, dword [0x429830]
test ebp, ebp
je 0x409aa3
mov edx, dword [0x428154]
mov esi, dword [edx + 0x10]
test esi, esi
je 0x40989f
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x44], esi
cmp byte [esi], 0
jne 0x409872
add dword [esp + 0x48], 1
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x18], 0x4087b3
mov edx, dword [esp + 0x48]
adc dword [esp + 0x4c], 0
add ebx, 0x7c
mov dword [esp], edx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], 0xc
mov dword [esp + 0x10], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.00408530
mov edi, dword [esp + 0x9c]
mov dword [esp], edi
call fcn.00408d50
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x48]
test edi, edi
jle 0x40985c
mov esi, esi
mov ebp, dword [0x429ab0]
test ebp, ebp
jne 0x409820
call fcn.004043b0
mov dword [esp], eax
mov ebp, eax
call fcn.00404450
xor ecx, ecx
cmp edi, ecx
mov ebx, eax
jg 0x40976b
jl 0x40975b
cmp esi, eax
jae 0x40976b
mov edx, esi
and edx, 0x1ff
mov ebx, esi
jne 0x4097f7
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x44]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
lea edx, [ebx - 1]
xor ecx, ecx
sub esi, ebx
sbb edi, ecx
and edx, 0xfffffe00
add dword [esp + 0x44], ebx
lea ebx, [edx + ebp]
mov dword [esp], ebx
call fcn.00404400
test edi, edi
jg 0x409730
test edi, edi
js 0x4097aa
cmp esi, 0
ja 0x409730
mov esi, dword [0x429ab0]
test esi, esi
jne 0x4097e1
mov edi, dword [0x4297a0]
test edi, edi
je 0x4092a5
mov ebp, dword [esp + 0x210]
lea ebx, [esp + 0xb8]
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.00421630
jmp 0x4092a5
mov dword [esp + 4], 0
mov dword [esp], 0x429650
call fcn.00412e40
jmp 0x4097b4
mov dword [esp + 4], 0
mov eax, 0x200
sub eax, edx
mov dword [esp + 8], eax
lea ecx, [esi + ebp]
mov dword [esp], ecx
call sub.msvcrt.dll_memset
jmp 0x40976b
mov dword [esp], 0x429650
mov eax, dword [esp + 0x210]
mov dword [esp + 4], eax
call fcn.00412e40
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov dword [0x429620], esi
mov dword [0x429624], edi
mov dword [0x429660], edx
mov dword [0x429664], ecx
jmp 0x40973e
test edi, edi
js 0x4097aa
cmp esi, 0
ja 0x409730
jmp 0x4097aa
mov edi, dword [esp + 0x44]
xor ebx, ebx
mov dword [esp], edi
call sub.msvcrt.dll_strlen
inc eax
add dword [esp + 0x48], eax
adc dword [esp + 0x4c], ebx
add edi, eax
mov dword [esp + 0x44], edi
je 0x4096bf
cmp byte [edi], 0
jne 0x409872
jmp 0x4096bf
mov ecx, dword [0x4298b0]
test ecx, ecx
jne 0x4092a5
mov edx, dword [0x429aa0]
test edx, edx
je 0x409910
mov eax, dword [esp + 0x21c]
test eax, eax
jne 0x409910
mov esi, dword [0x4296c0]
mov eax, dword [0x4296c4]
mov ebp, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa0]
xor ebp, eax
xor esi, ecx
or ebp, esi
je 0x409910
mov edi, dword [0x4297e0]
test edi, edi
je 0x4092a5
mov dword [esp], 0x409070
call sub.libintl_2.dll_libintl_gettext
mov ebx, dword [esp + 0x210]
mov dword [esp + 0xc], ebx
jmp 0x40934a
call sub.msvcrt.dll__errno
mov edx, dword [esp + 0x210]
mov dword [eax], 0
mov dword [esp], edx
call fcn.004214d0
test eax, eax
mov ebp, eax
je 0x409a80
cmp ebx, 2
je 0x409a63
mov dword [esp], ebp
call fcn.00421314
test eax, eax
je 0x409a2b
lea esi, [eax + 0xc]
mov dword [esp], esi
call fcn.00412e90
test eax, eax
jne 0x40993d
mov dword [esp + 4], esi
mov edx, dword [0x429ac0]
mov dword [esp], edx
call fcn.00419b50
test eax, eax
jne 0x40993d
mov ecx, esi
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
and edx, 0x80808080
je 0x409974
test edx, 0x8080
jne 0x409999
shr edx, 0x10
add ecx, 2
add dl, dl
sbb ecx, 3
sub ecx, esi
lea edx, [ebx + ecx]
cmp edx, dword [esp + 0x58]
jb 0x4099f7
mov dword [esp + 0x40], esi
mov ecx, esi
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
and edx, 0x80808080
je 0x4099af
test edx, 0x8080
jne 0x4099d4
shr edx, 0x10
add ecx, 2
mov dword [esp], edi
add dl, dl
mov edx, dword [esp + 0x40]
sbb ecx, 3
sub ecx, edx
lea eax, [ecx + ebx]
mov dword [esp + 0x58], eax
mov edx, eax
inc edx
mov dword [esp + 4], edx
call fcn.00419510
mov edi, eax
mov dword [esp + 4], esi
lea edx, [ebx + edi]
mov dword [esp], edx
call sub.msvcrt.dll_strcpy
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], 0
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.00409200
jmp 0x40993d
mov dword [esp], ebp
call fcn.00421470
mov dword [esp], edi
call sub.msvcrt.dll_free
mov ebp, dword [0x4297a0]
test ebp, ebp
je 0x4092a5
mov edi, dword [esp + 0x210]
lea ebx, [esp + 0xb8]
mov dword [esp + 4], ebx
mov dword [esp], edi
jmp 0x4097d7
cmp byte [edi], 0x2e
jne 0x40993d
xor ecx, ecx
cmp byte [edi + 1], 0x2f
sete cl
lea ebx, [ecx - 1]
and ebx, 2
jmp 0x40993d
mov dword [esp], 0x40909a
call sub.libintl_2.dll_libintl_gettext
mov ebx, eax
call sub.msvcrt.dll__errno
mov esi, dword [esp + 0x210]
mov dword [esp + 0xc], esi
jmp 0x4095a4
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00408d50
mov ecx, dword [0x429830]
test ecx, ecx
je 0x40989f
jmp 0x409691
mov edx, dword [esp + 0x9c]
mov byte [edx + 0x9c], 0x35
jmp 0x409683
dec ebx
je 0x409630
cmp byte [ebx + edi - 1], 0x2f
je 0x409ad8
jmp 0x409630
call fcn.00421590
test eax, eax
je 0x4095e5
mov dword [esp], 0x4090b3
call sub.libintl_2.dll_libintl_gettext
mov ebx, eax
call sub.msvcrt.dll__errno
mov edx, dword [esp + 0x210]
mov dword [esp + 0xc], edx
jmp 0x40927b
mov dword [esp], 0x104
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x210]
mov dword [esp + 0x60], eax
mov dword [esp + 8], 0x104
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00421264
test eax, eax
js 0x409d2f
mov ecx, dword [esp + 0x60]
cmp eax, 0x63
mov byte [eax + ecx], 0
jg 0x409c2f
mov dword [esp], 0x4298f0
mov ebp, dword [esp + 0x60]
xor ebx, ebx
mov dword [esp + 4], ebp
call fcn.00412e40
mov esi, dword [esp + 0x210]
xor eax, eax
mov dword [0x4296e0], ebx
mov dword [0x4296e4], eax
mov dword [esp + 4], 0x4296b0
mov dword [esp], esi
call fcn.00408810
mov dword [esp + 0x9c], eax
test eax, eax
je 0x40929a
mov dword [esp + 8], 0x64
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x60]
add edx, 0x9d
mov dword [esp + 4], edi
mov dword [esp], edx
call sub.msvcrt.dll_strncpy
mov esi, dword [esp + 0x9c]
mov byte [esi + 0x100], 0
mov byte [esi + 0x9c], 0x32
mov dword [esp], esi
call fcn.00408d50
mov ecx, dword [0x4299f0]
test ecx, ecx
je 0x4092a5
mov edi, dword [esp + 0x210]
mov dword [esp], edi
call fcn.00421690
inc eax
jne 0x4092a5
mov dword [esp], 0x409044
call sub.libintl_2.dll_libintl_gettext
mov ebx, eax
call sub.msvcrt.dll__errno
mov dword [esp + 0xc], edi
jmp 0x4095a4
mov dword [esp + 0x5c], ecx
mov ebp, dword [esp + 0x60]
lea edi, [esp + 0xc0]
lea esi, [esp + 0xc0]
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov ecx, 0x12
lea ebp, [eax + 1]
xor eax, eax
cld
rep stosd dword es:[edi], eax
xor eax, eax
mov dword [esp + 4], esi
mov dword [esp + 0xf0], ebp
mov dword [esp + 0xf4], eax
mov dword [esp], 0x4087c0
call fcn.00408810
mov byte [eax + 0x9c], 0x4b
mov dword [esp], eax
call fcn.00408d50
call fcn.004043b0
mov dword [esp], eax
mov esi, eax
call fcn.00404450
cmp eax, ebp
mov ebx, eax
jb 0x409ce5
mov dword [esp + 8], ebp
mov ecx, dword [esp + 0x5c]
sub ebx, ebp
mov dword [esp], esi
lea edi, [ebp + esi]
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], edi
call sub.msvcrt.dll_memset
lea edx, [ebp - 1]
and edx, 0xfffffe00
lea ebx, [edx + esi]
mov dword [esp], ebx
call fcn.00404400
jmp 0x409b64
mov dword [esp + 8], ebx
mov edi, dword [esp + 0x5c]
sub ebp, ebx
mov dword [esp], esi
mov dword [esp + 4], edi
add edi, ebx
call sub.msvcrt.dll_memcpy
mov dword [esp + 0x5c], edi
lea ecx, [ebx - 1]
and ecx, 0xfffffe00
lea edi, [ecx + esi]
mov dword [esp], edi
call fcn.00404400
call fcn.004043b0
mov dword [esp], eax
mov esi, eax
call fcn.00404450
cmp eax, ebp
mov ebx, eax
jb 0x409ce5
jmp 0x409c9e
mov dword [esp], 0x408fc4
call sub.libintl_2.dll_libintl_gettext
mov ebx, eax
call sub.msvcrt.dll__errno
mov ecx, dword [esp + 0x210]
mov dword [esp + 0xc], ecx
jmp 0x40927b
mov eax, dword [0x4297f0]
xor ebp, ebp
test eax, eax
je 0x40a74b
mov ebx, dword [0x4296e4]
mov ecx, dword [0x4296e0]
test ebx, ebx
mov eax, ecx
mov edx, ebx
js 0x40a73e
shrd eax, edx, 9
sar edx, 9
xor edi, edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x6c], edx
mov edx, ecx
and edx, 0x1ff
mov dword [esp + 0x28], eax
mov esi, edx
or esi, edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x3c], esi
je 0x409dba
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add edi, 1
adc esi, 0
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x40a71d
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, 1
adc esi, 0
cmp dword [esp + 0x6c], esi
jl 0x409dea
jg 0x409ffa
cmp dword [esp + 0x68], eax
jae 0x409ffa
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x210]
mov dword [esp + 0xb4], ebx
mov dword [esp + 4], 0x4296b0
mov dword [esp], ecx
call fcn.00408810
mov dword [esp + 0x9c], eax
test eax, eax
je 0x40929a
mov eax, dword [esp + 0x9c]
mov ebp, 1
mov byte [eax + 0x9c], 0x53
mov ebx, dword [esp + 0x210]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0040add0
mov dword [esp + 0x74], eax
cmp eax, 3
jle 0x409e5b
mov esi, dword [esp + 0x9c]
mov byte [esi + 0x1e2], 1
mov dword [esp + 0x18], 0x4087b3
mov edi, dword [esp + 0x9c]
mov esi, dword [0x4296e0]
mov dword [esp + 0x14], 0xc
mov ebx, dword [0x4296e4]
add edi, 0x1e3
mov dword [esp + 0x10], edi
mov dword [esp], esi
lea esi, [esp + 0xb0]
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.00408530
mov eax, dword [0x429880]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0xb0], ecx
mov edi, dword [eax + 8]
mov dword [esp + 0xb4], edx
test edi, edi
je 0x409eed
cmp ebx, dword [esp + 0x74]
jg 0x409eed
lea ecx, [eax + 8]
mov edx, dword [ecx]
xor edi, edi
add dword [esi], edx
adc dword [esi + 4], edi
inc ebx
add ecx, 0x10
mov eax, dword [ecx]
test eax, eax
je 0x409eed
cmp ebx, dword [esp + 0x74]
jle 0x409ed4
mov dword [esp + 0x18], 0x4087b3
mov ecx, dword [esp + 0x9c]
xor edi, edi
mov dword [esp + 0x14], 0xc
mov esi, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 8], 0
add ecx, 0x7c
mov dword [0x4296e4], esi
mov dword [esp + 4], esi
mov dword [0x4296e0], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], 0
mov dword [esp], ebx
call fcn.00408530
mov esi, dword [esp + 0x9c]
mov eax, dword [0x429880]
mov ebx, edi
shl ebx, 4
mov ecx, dword [eax + ebx + 8]
test ecx, ecx
je 0x409fee
mov edx, dword [eax + ebx + 4]
lea ecx, [esi + 0x182]
mov eax, dword [eax + ebx]
mov dword [esp + 0x10], ecx
inc edi
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0x18], 0x4087b3
mov dword [esp + 0x14], 0xc
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.00408530
mov edx, dword [0x429880]
mov ecx, dword [edx + ebx + 8]
mov dword [esp + 4], 0
lea edx, [esi + 0x18e]
add esi, 0x18
mov dword [esp + 0x18], 0x4090cb
mov dword [esp + 0x14], 0xc
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], ecx
call fcn.00408530
cmp edi, 3
jle 0x409f4a
mov ecx, dword [0x4296e0]
mov ebx, dword [0x4296e4]
mov dword [esp + 0xa8], ecx
mov edi, dword [0x4299c0]
mov dword [esp + 0xac], ebx
test edi, edi
jne 0x40a710
mov eax, ebx
or eax, ecx
jne 0x40a034
mov esi, dword [0x4296b0]
and esi, 0x124
cmp esi, 0x124
je 0x40a710
mov dword [esp + 4], 0x8000
mov edi, dword [esp + 0x210]
mov dword [esp], edi
call sub.msvcrt.dll__open
mov dword [esp + 0x78], eax
test eax, eax
js 0x40a6f4
test ebp, ebp
jne 0x40a081
mov dword [esp + 4], 0x4296b0
mov ebp, dword [esp + 0x210]
mov dword [esp], ebp
call fcn.00408810
mov dword [esp + 0x9c], eax
test eax, eax
je 0x40a6d7
mov edx, dword [esp + 0x9c]
movzx ebx, byte [edx + 0x1e2]
movzx ecx, byte [edx + 0x9c]
mov dword [esp], edx
mov byte [esp + 0x97], cl
call fcn.00408d50
test bl, bl
je 0x40a1ca
mov dword [esp + 0x64], 4
call fcn.004043b0
mov dword [esp + 0x98], eax
test eax, eax
je 0x40929a
mov dword [esp + 8], 0x200
mov edi, dword [esp + 0x98]
xor ebp, ebp
mov dword [esp + 4], 0
mov dword [esp], edi
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x98]
lea esi, [esi]
lea edi, [edi]
cmp eax, dword [esp + 0x74]
mov esi, eax
jg 0x40a1a5
mov edx, dword [0x429880]
mov ebx, eax
shl ebx, 4
inc ebp
mov ecx, dword [edx + ebx + 8]
mov dword [esp + 4], 0
lea edx, [edi + 0xc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 0x4090cb
mov dword [esp], ecx
mov dword [esp + 0x14], 0xc
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.00408530
mov eax, dword [0x429880]
mov ecx, dword [eax + ebx + 4]
mov edx, dword [eax + ebx]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edi
add edi, 0x18
mov dword [esp + 0x18], 0x4087b3
mov dword [esp + 0x14], 0xc
mov dword [esp + 8], 0
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00408530
cmp ebp, 0x14
lea eax, [esi + 1]
jle 0x40a100
mov eax, dword [esp + 0x64]
lea esi, [eax + ebp]
mov ebx, dword [esp + 0x98]
mov dword [esp], ebx
call fcn.00404400
cmp esi, dword [esp + 0x74]
jg 0x40a1ca
mov dword [esp + 0x64], esi
mov byte [ebx + 0x1f8], 1
jmp 0x40a0b5
cmp byte [esp + 0x97], 0x53
je 0x40a688
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
test edx, edx
jle 0x40a672
mov esi, esi
mov esi, dword [0x429ab0]
test esi, esi
jne 0x40a624
call fcn.004043b0
mov dword [esp], eax
mov esi, eax
xor ebp, ebp
call fcn.00404450
mov ebx, dword [esp + 0xac]
mov edi, eax
mov eax, dword [esp + 0xa8]
cmp ebx, ebp
jg 0x40a23e
jl 0x40a229
cmp eax, edi
jae 0x40a23e
mov edi, dword [esp + 0xa8]
mov ebx, edi
and ebx, 0x1ff
jne 0x40a601
mov eax, dword [esp + 0x78]
mov ebx, edi
test eax, eax
js 0x40a25e
mov dword [esp + 8], edi
mov ebp, dword [esp + 0x78]
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.004195f0
mov ebx, eax
test ebx, ebx
js 0x40a58d
mov eax, ebx
cdq
mov eax, ebx
sub dword [esp + 0xa8], ebx
sbb dword [esp + 0xac], edx
dec eax
js 0x40a582
and eax, 0xfffffe00
lea ecx, [eax + esi]
mov dword [esp], ecx
call fcn.00404400
cmp ebx, edi
jne 0x40a430
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
test edx, edx
jg 0x40a1f0
test edx, edx
js 0x40a2bb
cmp eax, 0
ja 0x40a1f0
mov esi, dword [0x429ab0]
test esi, esi
jne 0x40a417
mov edi, dword [esp + 0x78]
test edi, edi
js 0x40956a
mov dword [esp], 0
mov ebx, dword [esp + 0x78]
lea edx, [esp + 0x110]
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
call fcn.00420e60
test eax, eax
jne 0x40a3fa
mov ecx, dword [esp + 0xbc]
cmp dword [esp + 0x14c], ecx
je 0x40a3cd
mov dword [esp], 0x4090f0
call sub.libintl_2.dll_libintl_gettext
mov ebp, eax
call sub.msvcrt.dll__errno
mov edx, dword [esp + 0x210]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov esi, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], esi
call fcn.004196d0
mov ecx, 2
mov dword [0x429840], ecx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call sub.msvcrt.dll__close
test eax, eax
jne 0x40a38c
mov edx, dword [0x4297a0]
test edx, edx
je 0x40956a
mov esi, dword [esp + 0x210]
lea eax, [esp + 0xb8]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00421630
jmp 0x40956a
mov dword [esp], 0x40910f
mov edi, 2
call sub.libintl_2.dll_libintl_gettext
mov ebp, eax
call sub.msvcrt.dll__errno
mov ecx, dword [esp + 0x210]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov ebx, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], ebx
call fcn.004196d0
mov dword [0x429840], edi
jmp 0x40a35f
mov esi, dword [esp + 0x140]
mov ebx, dword [esp + 0x144]
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
xor eax, ebx
xor esi, edi
or eax, esi
je 0x40a34f
jmp 0x40a310
call sub.msvcrt.dll__errno
mov dword [esp + 8], 0x409119
mov ebp, dword [esp + 0x210]
mov dword [esp + 0xc], ebp
jmp 0x40a332
mov dword [esp + 4], 0
mov dword [esp], 0x429650
call fcn.00412e40
jmp 0x40a2c9
mov ecx, dword [esp + 0xa8]
lea edx, [esp + 0x175]
mov ebp, dword [esp + 0xac]
mov dword [esp + 8], edx
mov dword [esp], ecx
mov dword [esp + 4], ebp
call fcn.00411040
mov dword [esp], 0x409130
mov edi, eax
call sub.libintl_2.dll_libintl_gettext
mov dword [esp], 0
mov ebx, dword [esp + 0x210]
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0
call fcn.004196d0
mov eax, 2
mov dword [0x429840], eax
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
test edx, edx
jle 0x40a573
lea esi, [esi]
mov dword [0x429624], edx
mov dword [0x429620], eax
call fcn.004043b0
mov dword [esp], eax
mov edi, eax
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
call sub.msvcrt.dll_memset
mov dword [esp], edi
call fcn.00404400
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
add eax, 0xfffffe00
adc edx, 0xffffffff
test edx, edx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
jg 0x40a4b0
test edx, edx
js 0x40a513
cmp eax, 0
ja 0x40a4b0
mov ebx, dword [0x429ab0]
test ebx, ebx
jne 0x40a55d
mov ecx, dword [esp + 0x78]
test ecx, ecx
js 0x4092a5
mov edx, dword [esp + 0x78]
mov dword [esp], edx
call sub.msvcrt.dll__close
mov esi, dword [0x4297a0]
test esi, esi
je 0x4092a5
mov ebp, dword [esp + 0x210]
lea eax, [esp + 0xb8]
mov dword [esp + 4], eax
mov dword [esp], ebp
jmp 0x4097d7
mov dword [esp + 4], 0
mov dword [esp], 0x429650
call fcn.00412e40
jmp 0x40a51d
test edx, edx
js 0x40a513
cmp eax, 0
ja 0x40a4b0
jmp 0x40a513
lea eax, [ebx + 0x1fe]
jmp 0x40a280
mov edx, dword [0x4296e0]
lea ebp, [esp + 0x195]
mov esi, dword [0x4296e4]
sub edx, dword [esp + 0xa8]
mov dword [esp + 8], ebp
sbb esi, dword [esp + 0xac]
mov dword [esp], edx
mov dword [esp + 4], esi
call fcn.00411040
mov dword [esp], 0x409170
mov ebx, eax
call sub.libintl_2.dll_libintl_gettext
mov ebp, eax
call sub.msvcrt.dll__errno
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x210]
mov dword [esp + 0x10], edi
mov dword [esp + 8], ebp
mov dword [esp + 0x14], ecx
mov esi, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], esi
call fcn.004196d0
jmp 0x40a48a
mov dword [esp + 4], 0
mov edx, 0x200
sub edx, ebx
mov dword [esp + 8], edx
lea ecx, [edi + esi]
mov dword [esp], ecx
call sub.msvcrt.dll_memset
jmp 0x40a23e
mov dword [esp], 0x429650
mov edx, dword [esp + 0x210]
mov dword [esp + 4], edx
call fcn.00412e40
mov ebp, dword [0x4296e4]
mov ecx, dword [esp + 0xa8]
mov edi, dword [esp + 0xac]
mov dword [0x429664], ebp
mov ebx, dword [0x4296e0]
mov dword [0x429620], ecx
mov dword [0x429624], edi
mov dword [0x429660], ebx
jmp 0x40a1fe
test edx, edx
js 0x40a2bb
cmp eax, 0
ja 0x40a1f0
jmp 0x40a2bb
mov esi, dword [esp + 0x78]
test esi, esi
js 0x40a494
mov edx, dword [esp + 0x210]
lea ebx, [esp + 0xa8]
mov ecx, dword [0x4296e0]
mov dword [esp + 4], ebx
mov edi, dword [0x4296e4]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x10], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
mov dword [esp], ebp
call fcn.0040b070
test eax, eax
jne 0x40a494
jmp 0x40a2bb
mov ebx, dword [esp + 0x78]
test ebx, ebx
js 0x40929a
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
call sub.msvcrt.dll__close
jmp 0x40929a
mov dword [esp], 0x408fc4
call sub.libintl_2.dll_libintl_gettext
mov ebx, eax
call sub.msvcrt.dll__errno
mov dword [esp + 0xc], edi
jmp 0x40927b
mov dword [esp + 0x78], 0xffffffff
jmp 0x40a057
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0x6c], edi
jl 0x409dea
jg 0x409ffa
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x68], edx
jmp 0x409de4
add eax, 0x1ff
adc edx, 0
jmp 0x409d79
mov dword [esp + 0x74], 3
jmp 0x409fee
mov ebx, dword [0x428040]
test ebx, ebx
mov dword [esp + 0x84], ebx
je 0x40a7ca
mov edi, dword [0x4296b8]
mov ebp, dword [0x4296bc]
lea esi, [esi]
lea edi, [edi]
mov ebx, dword [esp + 0x84]
mov ecx, dword [ebx + 0x14]
mov esi, dword [ebx + 0x10]
mov eax, ecx
xor eax, ebp
xor esi, edi
or eax, esi
jne 0x40a7b6
mov ecx, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov eax, dword [0x4296c0]
mov edx, dword [0x4296c4]
mov esi, ebx
xor eax, ecx
xor esi, edx
or esi, eax
je 0x40a84e
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx]
test edx, edx
mov dword [esp + 0x84], edx
jne 0x40a780
mov ebx, dword [esp + 0x210]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, 0x20
mov dword [esp], eax
call fcn.004194b0
mov ebp, dword [0x4296bc]
mov esi, dword [0x4296b8]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x210]
mov edi, dword [esp + 0x84]
mov dword [edi + 0x10], esi
mov ebx, edi
add ebx, 0x1a
mov dword [edi + 0x14], ebp
mov edx, dword [0x4296c0]
mov ecx, dword [0x4296c4]
mov dword [edi + 8], edx
mov dword [edi + 0xc], ecx
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov ebp, dword [esp + 0x84]
mov esi, dword [0x428040]
mov dword [ebp], esi
mov dword [0x428040], ebp
mov eax, dword [0x4296b0]
jmp 0x409400
mov ebp, dword [esp + 0x84]
mov eax, dword [0x429930]
add ebp, 0x1a
mov dword [esp + 0x80], ebp
test eax, eax
jne 0x40a879
mov edi, dword [esp + 0x84]
cmp byte [edi + 0x1a], 0x2f
je 0x40aa20
mov ebx, dword [esp + 0x80]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
cmp eax, 0x63
ja 0x40a917
mov dword [esp], 0x4298f0
mov ebx, dword [esp + 0x80]
xor ebp, ebp
mov dword [esp + 4], ebx
call fcn.00412e40
mov esi, dword [esp + 0x210]
xor eax, eax
mov dword [0x4296e0], ebp
mov dword [0x4296e4], eax
mov dword [esp + 4], 0x4296b0
mov dword [esp], esi
call fcn.00408810
mov dword [esp + 0x9c], eax
test eax, eax
je 0x40929a
mov dword [esp + 8], 0x64
mov edi, dword [esp + 0x80]
add eax, 0x9d
mov dword [esp], eax
mov dword [esp + 4], edi
call sub.msvcrt.dll_strncpy
mov esi, dword [esp + 0x9c]
mov byte [esi + 0x100], 0
mov byte [esi + 0x9c], 0x31
jmp 0x409be7
mov dword [esp + 0x7c], ebx
mov ebp, dword [esp + 0x80]
lea edi, [esp + 0x1a0]
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov ecx, 0x12
lea ebp, [eax + 1]
xor eax, eax
cld
rep stosd dword es:[edi], eax
xor eax, eax
lea edi, [esp + 0x1a0]
mov dword [esp + 0x1d0], ebp
mov dword [esp + 0x1d4], eax
mov dword [esp + 4], edi
mov dword [esp], 0x4087c0
call fcn.00408810
mov byte [eax + 0x9c], 0x4b
mov dword [esp], eax
call fcn.00408d50
call fcn.004043b0
mov dword [esp], eax
mov esi, eax
call fcn.00404450
cmp eax, ebp
mov ebx, eax
jb 0x40a9d0
mov dword [esp + 8], ebp
mov ecx, dword [esp + 0x7c]
lea edi, [ebp - 1]
mov dword [esp], esi
sub ebx, ebp
and edi, 0xfffffe00
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
lea edx, [ebp + esi]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], edx
call sub.msvcrt.dll_memset
lea ecx, [edi + esi]
mov dword [esp], ecx
call fcn.00404400
jmp 0x40a891
mov dword [esp + 8], ebx
mov edi, dword [esp + 0x7c]
sub ebp, ebx
mov dword [esp], esi
mov dword [esp + 4], edi
add edi, ebx
call sub.msvcrt.dll_memcpy
mov dword [esp + 0x7c], edi
lea edx, [ebx - 1]
and edx, 0xfffffe00
lea ebx, [edx + esi]
mov dword [esp], ebx
call fcn.00404400
call fcn.004043b0
mov dword [esp], eax
mov esi, eax
call fcn.00404450
cmp eax, ebp
mov ebx, eax
jb 0x40a9d0
jmp 0x40a989
mov esi, dword [0x428048]
test esi, esi
je 0x40aa4a
inc dword [esp + 0x80]
test eax, eax
jne 0x40a879
mov edx, dword [esp + 0x80]
cmp byte [edx], 0x2f
je 0x40aa20
jmp 0x40a879
mov dword [esp], 0x4091b0
mov ebx, 1
mov dword [0x428048], ebx
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, dword [0x429930]
jmp 0x40aa2a
mov dword [esp], 0x4091d9
call sub.libintl_2.dll_libintl_gettext
mov ebp, dword [esp + 0x210]
mov dword [esp + 0xc], ebp
jmp 0x40934a
mov dword [esp + 4], 0x4296b0
mov edi, dword [esp + 0x210]
mov dword [esp], edi
call fcn.00420f90
jmp 0x409259
mov dword [esp], 0x4091f7
mov eax, dword [esp + 0x210]
mov dword [esp + 4], eax
call fcn.004158d0
test eax, eax
jne 0x409234
jmp 0x4092a5