Function at 0x409ffc
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1e
push 0
push 0
dec ecx
jne 0x40a004
push ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00403a94
xor eax, eax
push ebp
push 0x40beb5
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00407cb0
mov eax, dword [ebp - 8]
call fcn.0040372c
lea eax, [ebp - 0x30]
call fcn.0040372c
lea eax, [ebp - 0x34]
call fcn.0040372c
xor eax, eax
mov dword [0x415b60], eax
xor eax, eax
mov dword [0x415b64], eax
mov byte [0x415b6c], 0
mov byte [0x495b65], 0
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
call fcn.004038a4
cmp eax, 0x7f
jge 0x40a097
push 0
lea eax, [ebp - 0xce]
push eax
mov eax, dword [ebp - 4]
call fcn.00403aa4
push eax
call sub.KERNEL32.DLL_OpenFile
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
sete byte [ebp - 0x45]
jmp 0x40a0c2
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
mov eax, dword [ebp - 4]
call fcn.00403aa4
push eax
call sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
sete byte [ebp - 0x45]
cmp byte [ebp - 0x45], 0
je 0x40bdc8
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x20
je 0x40a116
push 0x40bec8
push dword [ebp - 4]
push 0x40bedc
lea edx, [ebp - 0xd8]
mov eax, dword [ebp - 0x10]
call fcn.0040666c
push dword [ebp - 0xd8]
lea eax, [ebp - 0xd4]
mov edx, 4
call fcn.00403964
mov eax, dword [ebp - 0xd4]
call fcn.00412fc4
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_CloseHandle
jmp 0x40be82
cmp dword [ebp - 0x10], 0x32
jb 0x40bdc8
mov dword [ebp - 0x14], 1
jmp 0x40ad97
lea eax, [ebp - 0x38]
call fcn.0040372c
lea eax, [ebp - 0x3c]
call fcn.0040372c
mov eax, dword [ebp - 0x14]
add eax, 0x12
jae 0x40a157
call fcn.00402f1c
sub eax, 1
jae 0x40a161
call fcn.00402f1c
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fff9
jbe 0x40a173
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x30
jne 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 1
jae 0x40a18d
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a199
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x38
jne 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 2
jae 0x40a1b3
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a1bf
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 3
jae 0x40a1e4
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a1f0
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x39
jne 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 4
jae 0x40a20a
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a216
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 5
jae 0x40a23b
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a247
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 6
jae 0x40a26c
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a278
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 7
jae 0x40a29d
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a2a9
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 8
jae 0x40a2ce
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a2da
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 9
jae 0x40a2ff
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a30b
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 0xa
jae 0x40a330
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a33c
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 0xb
jae 0x40a361
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a36d
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 0xc
jae 0x40a392
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a39e
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 0xd
jae 0x40a3c3
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a3cf
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 0xe
jae 0x40a3f4
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a400
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 0xf
jae 0x40a425
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a431
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
add eax, 0x10
jae 0x40a456
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a462
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x18]
cmp eax, 0x7fff9
jbe 0x40a489
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
sub eax, 1
jae 0x40a4ae
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a4ba
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414184], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x18]
add eax, 1
jae 0x40a4df
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a4eb
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414184], eax
jae 0x40ad8c
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fff9
jbe 0x40a512
call fcn.00402f14
lea edx, [eax + 0x415b6c]
lea eax, [ebp - 0x38]
mov ecx, 0x12
call fcn.0040381c
mov eax, dword [ebp - 0x38]
call fcn.00406954
test al, al
je 0x40ad8c
mov eax, dword [ebp - 0x38]
mov edx, 0x40bee8
call fcn.004039f0
je 0x40ad8c
push 0x40bf04
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x2c]
jae 0x40a55a
call fcn.00402f1c
xor edx, edx
push edx
push eax
lea eax, [ebp - 0xdc]
call fcn.00405498
push dword [ebp - 0xdc]
push 0x40bf14
push dword [ebp - 0x38]
lea eax, [ebp - 0x38]
mov edx, 4
call fcn.00403964
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 0x38]
call fcn.004038ac
cmp dword [ebp - 0x14], 0x96
jbe 0x40a5ac
mov eax, dword [ebp - 0x14]
sub eax, 0x96
jae 0x40a5a7
call fcn.00402f1c
mov dword [ebp - 0x24], eax
jmp 0x40a5b3
mov dword [ebp - 0x24], 1
mov eax, dword [ebp - 0x14]
add eax, 0x96
jae 0x40a5c2
call fcn.00402f1c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
add eax, 0x20
jae 0x40a5d2
call fcn.00402f1c
cmp eax, dword [ebp - 0x10]
jbe 0x40a5dd
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x28]
ja 0x40ad86
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jb 0x40a60f
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x18]
ja 0x40a60f
mov eax, dword [ebp - 0x18]
add eax, 2
jae 0x40a60c
call fcn.00402f1c
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x20
jae 0x40a61c
call fcn.00402f1c
sub eax, 1
jae 0x40a626
call fcn.00402f1c
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fff9
jbe 0x40a638
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 1
jae 0x40a65d
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a669
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 2
jae 0x40a68e
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a69a
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 3
jae 0x40a6bf
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a6cb
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 4
jae 0x40a6f0
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a6fc
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 5
jae 0x40a721
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a72d
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 6
jae 0x40a752
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a75e
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 7
jae 0x40a783
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a78f
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 8
jae 0x40a7b4
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a7c0
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 9
jae 0x40a7e5
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a7f1
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 0xa
jae 0x40a816
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a822
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 0xb
jae 0x40a847
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a853
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 0xc
jae 0x40a878
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a884
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 0xd
jae 0x40a8a9
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a8b5
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 0xe
jae 0x40a8da
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a8e6
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
mov eax, dword [ebp - 0x1c]
add eax, 0xf
jae 0x40a90b
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40a917
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40ad6f
add dword [ebp - 0x1c], 1
jae 0x40ad7a
call fcn.00402f1c
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x28]
jbe 0x40a5ef
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
add dword [ebp - 0x14], 1
jae 0x40ad97
call fcn.00402f1c
mov eax, dword [ebp - 0x10]
sub eax, 0x12
jae 0x40ada4
call fcn.00402f1c
add eax, 1
jae 0x40adae
call fcn.00402f1c
cmp eax, dword [ebp - 0x14]
jae 0x40a13a
mov dword [ebp - 0x14], 1
jmp 0x40bd9b
lea eax, [ebp - 0x40]
call fcn.0040372c
lea eax, [ebp - 0x44]
call fcn.0040372c
mov eax, dword [ebp - 0x14]
add eax, 0x1a
jae 0x40ade0
call fcn.00402f1c
sub eax, 1
jae 0x40adea
call fcn.00402f1c
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fff9
jbe 0x40adfc
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x30
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 1
jae 0x40ae16
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40ae22
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x38
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 2
jae 0x40ae3c
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40ae48
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x20
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 3
jae 0x40ae62
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40ae6e
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 4
jae 0x40ae93
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40ae9f
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x39
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 5
jae 0x40aeb9
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40aec5
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x20
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 6
jae 0x40aedf
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40aeeb
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 7
jae 0x40af10
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40af1c
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 8
jae 0x40af41
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40af4d
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x20
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 9
jae 0x40af67
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40af73
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0xa
jae 0x40af98
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40afa4
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0xb
jae 0x40afc9
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40afd5
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x20
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0xc
jae 0x40afef
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40affb
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0xd
jae 0x40b020
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b02c
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0xe
jae 0x40b051
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b05d
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x20
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0xf
jae 0x40b077
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b083
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0x10
jae 0x40b0a8
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b0b4
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0x11
jae 0x40b0d9
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b0e5
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x20
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0x12
jae 0x40b0ff
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b10b
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0x13
jae 0x40b130
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b13c
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0x14
jae 0x40b161
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b16d
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x20
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0x15
jae 0x40b187
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b193
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0x16
jae 0x40b1b8
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b1c4
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0x17
jae 0x40b1e9
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b1f5
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x20
jne 0x40bd90
mov eax, dword [ebp - 0x14]
add eax, 0x18
jae 0x40b20f
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b21b
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x18]
cmp eax, 0x7fff9
jbe 0x40b242
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414144], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
sub eax, 1
jae 0x40b267
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b273
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414184], eax
jae 0x40bd90
mov eax, dword [ebp - 0x18]
add eax, 1
jae 0x40b298
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b2a4
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414184], eax
jae 0x40bd90
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fff9
jbe 0x40b2cb
call fcn.00402f14
lea edx, [eax + 0x415b6c]
lea eax, [ebp - 0x40]
mov ecx, 0x1a
call fcn.0040381c
lea edx, [ebp - 0xe4]
mov eax, dword [ebp - 0x40]
call fcn.004068a0
mov edx, dword [ebp - 0xe4]
lea eax, [ebp - 0x40]
call fcn.004037c4
mov eax, dword [ebp - 0x40]
call fcn.00406954
test al, al
je 0x40bd90
mov eax, dword [ebp - 0x40]
mov edx, 0x40bee8
call fcn.004039f0
je 0x40bd90
push 0x40bf5c
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x2c]
jae 0x40b32f
call fcn.00402f1c
xor edx, edx
push edx
push eax
lea eax, [ebp - 0xe8]
call fcn.00405498
push dword [ebp - 0xe8]
push 0x40bf14
push dword [ebp - 0x40]
lea eax, [ebp - 0x40]
mov edx, 4
call fcn.00403964
lea eax, [ebp - 0x34]
mov edx, dword [ebp - 0x40]
call fcn.004038ac
cmp dword [ebp - 0x14], 0x96
jbe 0x40b381
mov eax, dword [ebp - 0x14]
sub eax, 0x96
jae 0x40b37c
call fcn.00402f1c
mov dword [ebp - 0x24], eax
jmp 0x40b388
mov dword [ebp - 0x24], 1
mov eax, dword [ebp - 0x14]
add eax, 0x96
jae 0x40b397
call fcn.00402f1c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
add eax, 0x2f
jae 0x40b3a7
call fcn.00402f1c
cmp eax, dword [ebp - 0x10]
jbe 0x40b3b2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x28]
ja 0x40bd8a
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jb 0x40b3e4
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x18]
ja 0x40b3e4
mov eax, dword [ebp - 0x18]
add eax, 2
jae 0x40b3e1
call fcn.00402f1c
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x2f
jae 0x40b3f1
call fcn.00402f1c
sub eax, 1
jae 0x40b3fb
call fcn.00402f1c
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fff9
jbe 0x40b40d
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40bd73
mov eax, dword [ebp - 0x1c]
add eax, 1
jae 0x40b432
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b43e
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40bd73
mov eax, dword [ebp - 0x1c]
add eax, 2
jae 0x40b463
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b46f
call fcn.00402f14
cmp byte [eax + 0x415b6c], 0x20
jne 0x40bd73
mov eax, dword [ebp - 0x1c]
add eax, 3
jae 0x40b489
call fcn.00402f1c
cmp eax, 0x7fff9
jbe 0x40b495
call fcn.00402f14
mov al, byte [eax + 0x415b6c]
and eax, 0xff
bt dword [0x414164], eax
jae 0x40bd73
add dword [ebp - 0x1c], 1
jae 0x40bd7e
call fcn.00402f1c
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x28]
jbe 0x40b3c4
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
add dword [ebp - 0x14], 1
jae 0x40bd9b
call fcn.00402f1c
mov eax, dword [ebp - 0x10]
sub eax, 0x1a
jae 0x40bda8
call fcn.00402f1c
add eax, 1
jae 0x40bdb2
call fcn.00402f1c
cmp eax, dword [ebp - 0x14]
jae 0x40adc3
mov eax, dword [ebp - 0x10]
add dword [ebp - 0x2c], eax
jae 0x40bdc8
call fcn.00402f1c
push 0
lea eax, [ebp - 0x10]
push eax
push 0x7fff8
push 0x415b6d
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_ReadFile
test eax, eax
je 0x40bdef
cmp dword [ebp - 0x10], 0
ja 0x40a124
cmp dword [0x415b60], 0
jle 0x40be12
mov eax, dword [ebp - 8]
push dword [eax]
push dword [ebp - 0x30]
push 0x40bedc
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.00403964
cmp dword [0x415b64], 0
jle 0x40be35
mov eax, dword [ebp - 8]
push dword [eax]
push dword [ebp - 0x34]
push 0x40bedc
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.00403964
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004038a4
cmp eax, 0xed800
jle 0x40be5b
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 0xed800
xor edx, edx
call fcn.00403b04
cmp dword [ebp - 0x10], 0
jbe 0x40be79
lea edx, [ebp - 0xf4]
xor eax, eax
call fcn.0040666c
mov eax, dword [ebp - 0xf4]
call fcn.00412fc4
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_CloseHandle
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40bebc
lea eax, [ebp - 0xf4]
mov edx, 9
call fcn.00403750
lea eax, [ebp - 0x44]
mov edx, 6
call fcn.00403750
lea eax, [ebp - 4]
call fcn.0040372c
ret