Function at 0x408aa8
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 7
push 0
push 0
dec ecx
jne 0x408ab0
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00403a94
xor eax, eax
push ebp
push 0x409d03
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x41eb54
mov edx, 0x409d18
call fcn.00403780
call fcn.0040825c
mov eax, dword [ebp - 8]
call fcn.0040372c
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, 0x41eb54
mov edx, 0x409dcc
call fcn.00403780
mov eax, dword [ebp - 4]
call fcn.004038a4
cmp eax, 0x7f
jge 0x408b3c
push 0
push 0x41ec20
mov eax, dword [ebp - 4]
call fcn.00403aa4
push eax
call sub.kernel32.dll_OpenFile
mov dword [0x41ebcc], eax
cmp dword [0x41ebcc], 0xffffffff
jne 0x408b71
mov dword [ebp - 0xc], 1
jmp 0x408b71
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
mov eax, dword [ebp - 4]
call fcn.00403aa4
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [0x41ebcc], eax
cmp dword [0x41ebcc], 0xffffffff
jne 0x408b71
mov dword [ebp - 0xc], 2
mov eax, 0x41eb54
mov edx, 0x409e8c
call fcn.00403780
cmp dword [ebp - 0xc], 0
jbe 0x408bf9
mov eax, 0x41eb54
mov edx, 0x409ee4
call fcn.00403780
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, 0xcf
ja 0x408bae
bt dword [0x409fb0], eax
jb 0x408be9
cmp dword [ebp - 0xc], 0x4cf
je 0x408be9
push 0x409fd4
push dword [ebp - 4]
push 0x409fe4
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0xc]
call fcn.00406434
push dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.00403964
mov eax, dword [ebp - 0x14]
call fcn.00412764
mov eax, dword [0x41ebcc]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x409ce0
mov eax, 0x41eb54
mov edx, 0x409ff0
call fcn.00403780
mov eax, 0x41ebfc
call fcn.0040372c
mov eax, 0x41ec00
call fcn.0040372c
mov eax, 0x41ec04
call fcn.0040372c
xor eax, eax
mov dword [0x41ebf0], eax
xor eax, eax
mov dword [0x41ebf4], eax
xor eax, eax
mov dword [0x41ebf8], eax
xor eax, eax
mov dword [0x41ebec], eax
mov eax, 0x41ec08
mov edx, 0x12
call fcn.00403b84
mov eax, 0x41ec0c
mov edx, 0x20
call fcn.00403b84
mov eax, 0x41ec10
mov edx, 0x1a
call fcn.00403b84
mov eax, 0x41ec14
mov edx, 0x2f
call fcn.00403b84
mov eax, 0x41ec18
mov edx, 0x12
call fcn.00403b84
mov eax, 0x41eb54
mov edx, 0x40a094
call fcn.00403780
mov eax, 0x41ec1c
mov edx, 0x20
call fcn.00403b84
xor eax, eax
mov edx, dword [0x41ecac]
test edx, edx
je 0x408cbc
cmp eax, dword [edx - 4]
jb 0x408cc1
call fcn.00402f14
mov byte [edx + eax], 0
jmp 0x409bda
cmp dword [0x41ebd0], 0x32
jb 0x409c1f
cmp dword [0x41ebd0], 0x100000
jae 0x408d0a
mov eax, dword [0x41ebd0]
add eax, 1
jae 0x408cf2
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x408d01
cmp eax, dword [edx - 4]
jb 0x408d06
call fcn.00402f14
mov byte [edx + eax], 0
mov byte [0x41eca8], 0
mov byte [0x41eca9], 0
mov byte [0x41ecaa], 0
mov eax, dword [0x41ebd0]
test eax, eax
jbe 0x409bc8
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 1
cmp byte [0x41ecaa], 0
jne 0x408d73
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x408d51
cmp eax, dword [edx - 4]
jb 0x408d56
call fcn.00402f14
cmp byte [edx + eax], 8
jne 0x40900b
add byte [0x41ecaa], 1
jae 0x408d6e
call fcn.00402f1c
jmp 0x40900b
cmp byte [0x41ecaa], 1
jne 0x408de9
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x408d8e
cmp eax, dword [edx - 4]
jb 0x408d93
call fcn.00402f14
mov al, byte [edx + eax]
and al, 0xf
cmp al, 9
jne 0x408ddd
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x408dae
cmp eax, dword [edx - 4]
jb 0x408db3
call fcn.00402f14
movzx eax, byte [edx + eax]
shr eax, 4
cmp eax, 0xff
ja 0x408dc8
bt dword [0x41d240], eax
jae 0x408ddd
add byte [0x41ecaa], 1
jae 0x408dd8
call fcn.00402f1c
jmp 0x40900b
mov byte [0x41ecaa], 0
jmp 0x40900b
cmp byte [0x41ecaa], 1
jbe 0x408e5d
cmp byte [0x41ecaa], 9
jae 0x408e5d
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x408e0d
cmp eax, dword [edx - 4]
jb 0x408e12
call fcn.00402f14
movzx eax, byte [edx + eax]
shr eax, 4
cmp eax, 0xa
jae 0x408e51
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x408e30
cmp eax, dword [edx - 4]
jb 0x408e35
call fcn.00402f14
mov al, byte [edx + eax]
and al, 0xf
cmp al, 0xa
jae 0x408e51
add byte [0x41ecaa], 1
jae 0x408e4c
call fcn.00402f1c
jmp 0x40900b
mov byte [0x41ecaa], 0
jmp 0x40900b
mov al, byte [0x41ecaa]
add al, 0xf7
sub al, 7
jae 0x408ea4
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x408e7a
cmp eax, dword [edx - 4]
jb 0x408e7f
call fcn.00402f14
cmp byte [edx + eax], 0
jne 0x408e98
add byte [0x41ecaa], 1
jae 0x408e93
call fcn.00402f1c
jmp 0x40900b
mov byte [0x41ecaa], 0
jmp 0x40900b
cmp byte [0x41ecaa], 0x10
jne 0x40900b
mov eax, 0x41eb54
mov edx, 0x40a0b0
call fcn.00403780
mov eax, dword [0x41ec18]
call fcn.00403aa4
mov edx, eax
xor eax, eax
mov al, byte [0x41ecaa]
mov ecx, dword [ebp - 0xc]
sub ecx, eax
jae 0x408edf
call fcn.00402f1c
mov eax, dword [0x41ecac]
test eax, eax
je 0x408eed
cmp ecx, dword [eax - 4]
jb 0x408ef2
call fcn.00402f14
add eax, ecx
mov ecx, 9
call fcn.004067e4
mov eax, dword [0x41ec18]
call fcn.0040671c
test al, al
je 0x409004
mov eax, dword [0x41ec1c]
call fcn.00403aa4
mov edx, eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [0x41ecac]
test ecx, ecx
je 0x408f2e
cmp eax, dword [ecx - 4]
jb 0x408f33
call fcn.00402f14
lea eax, [ecx + eax]
mov ecx, 0x10
call fcn.004067e4
mov eax, dword [0x41ec1c]
call fcn.0040671c
test al, al
je 0x409004
mov edx, dword [0x41ec04]
mov eax, dword [0x41ec1c]
call fcn.00403b3c
test eax, eax
jne 0x409004
push dword [0x41ec04]
push 0x409fe4
push 0x40a0f0
mov eax, dword [0x41ebec]
add eax, dword [ebp - 0xc]
jae 0x408f89
call fcn.00402f1c
xor edx, edx
mov dl, byte [0x41ecaa]
sub eax, edx
jae 0x408f9a
call fcn.00402f1c
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1c]
call fcn.00405168
push dword [ebp - 0x1c]
push 0x40a100
push dword [0x41ec18]
push 0x40a10c
push 0x40a118
mov eax, dword [0x41ebec]
add eax, dword [ebp - 0xc]
jae 0x408fcd
call fcn.00402f1c
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x20]
call fcn.00405168
push dword [ebp - 0x20]
push 0x40a100
push dword [0x41ec1c]
mov eax, 0x41ec04
mov edx, 0xb
call fcn.00403964
add dword [0x41ebf8], 1
jae 0x409004
call fcn.00402f1c
mov byte [0x41ecaa], 0
cmp byte [0x41eca8], 0
jne 0x409048
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x409026
cmp eax, dword [edx - 4]
jb 0x40902b
call fcn.00402f14
cmp byte [edx + eax], 0x30
jne 0x409596
add byte [0x41eca8], 1
jae 0x409043
call fcn.00402f1c
jmp 0x409596
cmp byte [0x41eca8], 1
jne 0x40909b
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x409063
cmp eax, dword [edx - 4]
jb 0x409068
call fcn.00402f14
cmp byte [edx + eax], 0x38
jne 0x409088
add byte [0x41eca8], 1
jae 0x40907c
call fcn.00402f1c
mov byte [0x41eca9], 2
jmp 0x409bbc
mov byte [0x41eca8], 0
mov byte [0x41eca9], 0
jmp 0x409596
cmp byte [0x41eca8], 2
jne 0x40911d
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x4090b6
cmp eax, dword [edx - 4]
jb 0x4090bb
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d220], eax
jae 0x409111
mov eax, dword [ebp - 0xc]
sub eax, 3
jae 0x4090d9
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x4090e8
cmp eax, dword [edx - 4]
jb 0x4090ed
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d200], eax
jae 0x409111
add byte [0x41eca8], 1
jae 0x40910c
call fcn.00402f1c
jmp 0x409596
mov byte [0x41eca8], 0
jmp 0x409596
cmp byte [0x41eca8], 3
jne 0x409162
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x409138
cmp eax, dword [edx - 4]
jb 0x40913d
call fcn.00402f14
cmp byte [edx + eax], 0x39
jne 0x409156
add byte [0x41eca8], 1
jae 0x409151
call fcn.00402f1c
jmp 0x409596
mov byte [0x41eca8], 0
jmp 0x409596
cmp byte [0x41eca8], 3
jbe 0x4091bb
cmp byte [0x41eca8], 0x11
jae 0x4091bb
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x409186
cmp eax, dword [edx - 4]
jb 0x40918b
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d1c0], eax
jae 0x4091af
add byte [0x41eca8], 1
jae 0x4091aa
call fcn.00402f1c
jmp 0x409596
mov byte [0x41eca8], 0
jmp 0x409596
cmp byte [0x41eca8], 0x11
jne 0x409596
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x4091da
cmp eax, dword [edx - 4]
jb 0x4091df
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d1c0], eax
jae 0x409596
mov eax, dword [ebp - 0xc]
add eax, 1
jae 0x409201
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x409210
cmp eax, dword [edx - 4]
jb 0x409215
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d200], eax
jae 0x409596
xor eax, eax
mov al, byte [0x41eca8]
mov edx, dword [ebp - 0xc]
sub edx, eax
jae 0x40923d
call fcn.00402f1c
mov dword [0x41ebd4], edx
mov byte [0x41eca8], 0
mov eax, 0x41ec08
call fcn.00403af4
mov edx, 1
dec edx
test eax, eax
je 0x409263
cmp edx, dword [eax - 4]
jb 0x409268
call fcn.00402f14
inc edx
lea eax, [eax + edx - 1]
mov edx, dword [0x41ebd4]
mov ecx, dword [0x41ecac]
test ecx, ecx
je 0x409282
cmp edx, dword [ecx - 4]
jb 0x409287
call fcn.00402f14
lea edx, [ecx + edx]
mov ecx, 0x12
call fcn.0040492c
mov eax, dword [0x41ec08]
call fcn.0040671c
test al, al
je 0x409596
push dword [0x41ebfc]
push 0x409fe4
push 0x40a128
mov eax, dword [0x41ebec]
add eax, dword [0x41ebd4]
jae 0x4092c8
call fcn.00402f1c
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x24]
call fcn.00405168
push dword [ebp - 0x24]
push 0x40a100
push dword [0x41ec08]
mov eax, 0x41ebfc
mov edx, 6
call fcn.00403964
cmp dword [0x41ebd4], 0xc8
jbe 0x409315
mov eax, dword [0x41ebd4]
sub eax, 0xc8
jae 0x40930e
call fcn.00402f1c
mov dword [0x41ebdc], eax
jmp 0x40931f
mov dword [0x41ebdc], 1
mov eax, dword [0x41ebd4]
add eax, 0xc8
jae 0x409330
call fcn.00402f1c
mov dword [0x41ebe4], eax
mov eax, dword [0x41ebe4]
add eax, 0x20
jae 0x409344
call fcn.00402f1c
cmp eax, dword [0x41ebd0]
jbe 0x409356
mov eax, dword [0x41ebd0]
mov dword [0x41ebe4], eax
mov eax, dword [0x41ebdc]
cmp eax, dword [0x41ebe4]
ja 0x40958f
mov eax, dword [0x41ebdc]
cmp eax, dword [0x41ebd4]
jbe 0x409386
mov eax, dword [0x41ebdc]
cmp eax, dword [ebp - 0xc]
jae 0x409386
mov eax, dword [ebp - 0xc]
mov dword [0x41ebdc], eax
cmp byte [0x41eca8], 0x1f
jae 0x4093d8
mov eax, dword [0x41ebdc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x4093a3
cmp eax, dword [edx - 4]
jb 0x4093a8
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d1e0], eax
add eax, 0x41d1e0
jae 0x4093cc
add byte [0x41eca8], 1
jae 0x4093c7
call fcn.00402f1c
jmp 0x409570
mov byte [0x41eca8], 0
jmp 0x409570
cmp byte [0x41eca8], 0x1f
jne 0x409570
mov eax, dword [0x41ebdc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x4093f9
cmp eax, dword [edx - 4]
jb 0x4093fe
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d1e0], eax
jae 0x409569
mov eax, dword [0x41ebdc]
add eax, 1
jae 0x409422
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x409431
cmp eax, dword [edx - 4]
jb 0x409436
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d200], eax
jae 0x409569
mov eax, dword [0x41ebdc]
sub eax, 0x20
jae 0x40945a
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x409469
cmp eax, dword [edx - 4]
jb 0x40946e
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d200], eax
jae 0x409569
mov eax, 0x41ec0c
call fcn.00403af4
mov edx, 1
dec edx
test eax, eax
je 0x40949c
cmp edx, dword [eax - 4]
jb 0x4094a1
call fcn.00402f14
inc edx
lea eax, [eax + edx - 1]
xor edx, edx
mov dl, byte [0x41eca8]
mov ecx, dword [0x41ebdc]
sub ecx, edx
jae 0x4094bd
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x4094cc
cmp ecx, dword [edx - 4]
jb 0x4094d1
call fcn.00402f14
add edx, ecx
mov ecx, 0x20
call fcn.0040492c
mov eax, dword [0x41ec0c]
call fcn.0040671c
test al, al
je 0x409569
mov edx, dword [0x41ebfc]
mov eax, dword [0x41ec0c]
call fcn.00403b3c
test eax, eax
jne 0x409569
push dword [0x41ebfc]
push 0x40a10c
push 0x40a138
mov eax, dword [0x41ebec]
add eax, dword [0x41ebdc]
jae 0x409521
call fcn.00402f1c
xor edx, edx
mov dl, byte [0x41eca8]
sub eax, edx
jae 0x409532
call fcn.00402f1c
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x28]
call fcn.00405168
push dword [ebp - 0x28]
push 0x40a100
push dword [0x41ec0c]
mov eax, 0x41ebfc
mov edx, 6
call fcn.00403964
add dword [0x41ebf0], 1
jae 0x409569
call fcn.00402f1c
mov byte [0x41eca8], 0
add dword [0x41ebdc], 1
jae 0x40957e
call fcn.00402f1c
mov eax, dword [0x41ebdc]
cmp eax, dword [0x41ebe4]
jbe 0x409367
mov byte [0x41eca8], 0
cmp byte [0x41eca9], 1
jbe 0x409bbc
cmp byte [0x41eca9], 2
jne 0x4095e8
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x4095be
cmp eax, dword [edx - 4]
jb 0x4095c3
call fcn.00402f14
cmp byte [edx + eax], 0x20
jne 0x4095dc
add byte [0x41eca9], 1
jae 0x4095d7
call fcn.00402f1c
jmp 0x409bbc
mov byte [0x41eca9], 0
jmp 0x409bbc
cmp byte [0x41eca9], 3
jne 0x409638
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x409603
cmp eax, dword [edx - 4]
jb 0x409608
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d220], eax
jae 0x40962c
add byte [0x41eca9], 1
jae 0x409627
call fcn.00402f1c
jmp 0x409bbc
mov byte [0x41eca9], 0
jmp 0x409bbc
cmp byte [0x41eca9], 4
jne 0x40967d
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x409653
cmp eax, dword [edx - 4]
jb 0x409658
call fcn.00402f14
cmp byte [edx + eax], 0x39
jne 0x409671
add byte [0x41eca9], 1
jae 0x40966c
call fcn.00402f1c
jmp 0x409bbc
mov byte [0x41eca9], 0
jmp 0x409bbc
mov al, byte [0x41eca9]
cmp al, 0x1f
ja 0x409690
and eax, 0x7f
bt dword [0x40a13c], eax
jae 0x4096ce
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x4096a4
cmp eax, dword [edx - 4]
jb 0x4096a9
call fcn.00402f14
cmp byte [edx + eax], 0x20
jne 0x4096c2
add byte [0x41eca9], 1
jae 0x4096bd
call fcn.00402f1c
jmp 0x409bbc
mov byte [0x41eca9], 0
jmp 0x409bbc
mov al, byte [0x41eca9]
cmp al, 0x1f
ja 0x4096e1
and eax, 0x7f
bt dword [0x40a140], eax
jae 0x40972a
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x4096f5
cmp eax, dword [edx - 4]
jb 0x4096fa
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d1c0], eax
jae 0x40971e
add byte [0x41eca9], 1
jae 0x409719
call fcn.00402f1c
jmp 0x409bbc
mov byte [0x41eca9], 0
jmp 0x409bbc
cmp byte [0x41eca9], 0x19
jne 0x409bbc
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41ecac]
test edx, edx
je 0x409749
cmp eax, dword [edx - 4]
jb 0x40974e
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d1c0], eax
jae 0x409bbc
mov eax, dword [ebp - 0xc]
add eax, 1
jae 0x409770
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x40977f
cmp eax, dword [edx - 4]
jb 0x409784
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d200], eax
jae 0x409bbc
mov eax, dword [ebp - 0xc]
sub eax, 0x1a
jae 0x4097a6
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x4097b5
cmp eax, dword [edx - 4]
jb 0x4097ba
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d200], eax
jae 0x409bbc
xor eax, eax
mov al, byte [0x41eca9]
mov edx, dword [ebp - 0xc]
sub edx, eax
jae 0x4097e2
call fcn.00402f1c
mov dword [0x41ebd8], edx
mov byte [0x41eca9], 0
mov eax, dword [0x41ebd8]
mov edx, dword [0x41ecac]
test edx, edx
je 0x409803
cmp eax, dword [edx - 4]
jb 0x409808
call fcn.00402f14
add edx, eax
mov eax, 0x41ec10
mov ecx, 0x1a
call fcn.0040381c
lea edx, [ebp - 0x2c]
mov eax, dword [0x41ec10]
call fcn.00406668
mov edx, dword [ebp - 0x2c]
mov eax, 0x41ec10
call fcn.00403780
mov eax, dword [0x41ec10]
call fcn.0040671c
test al, al
je 0x409bbc
push dword [0x41ec00]
push 0x409fe4
push 0x40a14c
mov eax, dword [0x41ebec]
add eax, dword [0x41ebd8]
jae 0x409867
call fcn.00402f1c
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x30]
call fcn.00405168
push dword [ebp - 0x30]
push 0x40a100
push dword [0x41ec10]
mov eax, 0x41ec00
mov edx, 6
call fcn.00403964
cmp dword [0x41ebd8], 0xc8
jbe 0x4098b4
mov eax, dword [0x41ebd8]
sub eax, 0xc8
jae 0x4098ad
call fcn.00402f1c
mov dword [0x41ebe0], eax
jmp 0x4098be
mov dword [0x41ebe0], 1
mov eax, dword [0x41ebd8]
add eax, 0xc8
jae 0x4098cf
call fcn.00402f1c
mov dword [0x41ebe8], eax
mov eax, dword [0x41ebe8]
add eax, 0x2f
jae 0x4098e3
call fcn.00402f1c
cmp eax, dword [0x41ebd0]
jbe 0x4098f5
mov eax, dword [0x41ebd0]
mov dword [0x41ebe8], eax
mov eax, dword [0x41ebe0]
cmp eax, dword [0x41ebe8]
ja 0x409bb5
mov eax, 0x41eb54
mov edx, 0x40a15c
call fcn.00403780
mov eax, dword [0x41ebe0]
cmp eax, dword [0x41ebd8]
jbe 0x409934
mov eax, dword [0x41ebe0]
cmp eax, dword [ebp - 0xc]
jae 0x409934
mov eax, dword [ebp - 0xc]
mov dword [0x41ebe0], eax
mov al, byte [0x41eca9]
cmp al, 0x2f
ja 0x409947
and eax, 0x7f
bt dword [0x40a1f0], eax
jae 0x409992
mov eax, dword [0x41ebe0]
mov edx, dword [0x41ecac]
test edx, edx
je 0x40995d
cmp eax, dword [edx - 4]
jb 0x409962
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d1e0], eax
jae 0x409986
add byte [0x41eca9], 1
jae 0x409981
call fcn.00402f1c
jmp 0x409b87
mov byte [0x41eca9], 0
jmp 0x409b87
add byte [eax], al
mov al, byte [0x41eca9]
cmp al, 0x2f
ja 0x4099a5
and eax, 0x7f
bt dword [0x40a1f8], eax
jae 0x4099e5
mov eax, dword [0x41ebe0]
mov edx, dword [0x41ecac]
test edx, edx
je 0x4099bb
cmp eax, dword [edx - 4]
jb 0x4099c0
call fcn.00402f14
cmp byte [edx + eax], 0x20
jne 0x4099d9
add byte [0x41eca9], 1
jae 0x4099d4
call fcn.00402f1c
jmp 0x409b87
mov byte [0x41eca9], 0
jmp 0x409b87
cmp byte [0x41eca9], 0x2e
jne 0x409b87
mov eax, dword [0x41ebe0]
mov edx, dword [0x41ecac]
test edx, edx
je 0x409a06
cmp eax, dword [edx - 4]
jb 0x409a0b
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d1e0], eax
jae 0x409b71
mov eax, dword [0x41ebe0]
add eax, 1
jae 0x409a2f
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x409a3e
cmp eax, dword [edx - 4]
jb 0x409a43
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d200], eax
jae 0x409b71
mov eax, dword [0x41ebe0]
sub eax, 0x2f
jae 0x409a67
call fcn.00402f1c
mov edx, dword [0x41ecac]
test edx, edx
je 0x409a76
cmp eax, dword [edx - 4]
jb 0x409a7b
call fcn.00402f14
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d200], eax
jae 0x409b71
xor eax, eax
mov al, byte [0x41eca9]
mov edx, dword [0x41ebe0]
sub edx, eax
jae 0x409aa6
call fcn.00402f1c
mov eax, dword [0x41ecac]
test eax, eax
je 0x409ab4
cmp edx, dword [eax - 4]
jb 0x409ab9
call fcn.00402f14
lea edx, [eax + edx]
mov eax, 0x41ec14
mov ecx, 0x2f
call fcn.0040381c
lea edx, [ebp - 0x34]
mov eax, dword [0x41ec14]
call fcn.00406668
mov edx, dword [ebp - 0x34]
mov eax, 0x41ec14
call fcn.00403780
mov eax, dword [0x41ec14]
call fcn.0040671c
test al, al
je 0x409b71
mov edx, dword [0x41ec00]
mov eax, dword [0x41ec14]
call fcn.00403b3c
test eax, eax
jne 0x409b71
push dword [0x41ec00]
push 0x40a10c
push 0x40a208
mov eax, dword [0x41ebec]
add eax, dword [0x41ebe0]
jae 0x409b29
call fcn.00402f1c
xor edx, edx
mov dl, byte [0x41eca9]
sub eax, edx
jae 0x409b3a
call fcn.00402f1c
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x38]
call fcn.00405168
push dword [ebp - 0x38]
enter 0x68, 0xffffffffffffffa1
inc eax
add bh, bh
xor eax, 0x41ec14
mov eax, 0x41ec00
mov edx, 6
call fcn.00403964
add dword [0x41ebf4], 1
jae 0x409b71
call fcn.00402f1c
mov byte [0x41eca9], 0
mov eax, 0x41eb54
mov edx, 0x40a218
call fcn.00403780
add dword [0x41ebe0], 1
jae 0x409b95
call fcn.00402f1c
mov eax, 0x41eb54
mov edx, 0x40a230
call fcn.00403780
mov eax, dword [0x41ebe0]
cmp eax, dword [0x41ebe8]
jbe 0x409906
mov byte [0x41eca9], 0
inc dword [ebp - 0xc]
dec dword [ebp - 0x10]
jne 0x408d36
mov eax, dword [0x41ebd0]
add dword [0x41ebec], eax
jae 0x409bda
call fcn.00402f1c
push 0
push 0x41ebd0
push 0x100000
mov eax, 1
mov edx, dword [0x41ecac]
test edx, edx
je 0x409bfa
cmp eax, dword [edx - 4]
jb 0x409bff
call fcn.00402f14
lea eax, [edx + eax]
push eax
mov eax, dword [0x41ebcc]
push eax
call sub.kernel32.dll_ReadFile_1
test eax, eax
je 0x409c1f
cmp dword [0x41ebd0], 0
ja 0x408cca
cmp dword [0x41ebf0], 0
jbe 0x409c45
mov eax, dword [ebp - 8]
push dword [eax]
push dword [0x41ebfc]
push 0x409fe4
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.00403964
cmp dword [0x41ebf4], 0
jbe 0x409c6b
mov eax, dword [ebp - 8]
push dword [eax]
push dword [0x41ec00]
push 0x409fe4
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.00403964
cmp dword [0x41ebf8], 0
jbe 0x409c91
mov eax, dword [ebp - 8]
push dword [eax]
push dword [0x41ec04]
push 0x409fe4
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.00403964
mov eax, 0x41eb54
mov edx, 0x40a2c0
call fcn.00403780
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004038a4
cmp eax, 0xed800
jle 0x409cc6
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 0xed800
xor edx, edx
call fcn.00403afc
mov eax, dword [0x41ebcc]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, 0x41eb54
mov edx, 0x40a378
call fcn.00403780
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x409d0a
lea eax, [ebp - 0x38]
mov edx, 0xa
call fcn.00403750
lea eax, [ebp - 4]
call fcn.0040372c
ret