Function at 0x408634
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 7
push 0
push 0
dec ecx
jne 0x40863c
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040358c
xor eax, eax
push ebp
push 0x409871
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00407e1c
mov eax, dword [ebp - 8]
call fcn.00403218
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.0040339c
cmp eax, 0x7f
jge 0x4086aa
push 0
push 0x41ec40
mov eax, dword [ebp - 4]
call fcn.0040359c
push eax
call sub.kernel32.dll_OpenFile
mov dword [0x41ebec], eax
cmp dword [0x41ebec], 0xffffffff
jne 0x4086df
mov dword [ebp - 0xc], 1
jmp 0x4086df
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
mov eax, dword [ebp - 4]
call fcn.0040359c
push eax
call sub.kernel32.dll_CreateFileA
mov dword [0x41ebec], eax
cmp dword [0x41ebec], 0xffffffff
jne 0x4086df
mov dword [ebp - 0xc], 2
mov eax, 0x41eb74
mov edx, 0x409884
call fcn.0040326c
cmp dword [ebp - 0xc], 0
jbe 0x408758
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, 0xcf
ja 0x40870d
bt dword [0x409940], eax
jb 0x408748
cmp dword [ebp - 0xc], 0x4cf
je 0x408748
push 0x409964
push dword [ebp - 4]
push 0x409974
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0xc]
call fcn.00405bb8
push dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.0040345c
mov eax, dword [ebp - 0x14]
call fcn.004128f8
mov eax, dword [0x41ebec]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x40984e
mov eax, 0x41eb74
mov edx, 0x409980
call fcn.0040326c
mov eax, 0x41ec1c
call fcn.00403218
mov eax, 0x41ec20
call fcn.00403218
mov eax, 0x41ec24
call fcn.00403218
xor eax, eax
mov dword [0x41ec10], eax
xor eax, eax
mov dword [0x41ec14], eax
mov eax, 0x41eb74
mov edx, 0x4099f0
call fcn.0040326c
xor eax, eax
mov dword [0x41ec18], eax
xor eax, eax
mov dword [0x41ec0c], eax
mov eax, 0x41ec28
mov edx, 0x12
call fcn.0040367c
mov eax, 0x41ec2c
mov edx, 0x20
call fcn.0040367c
mov eax, 0x41ec30
mov edx, 0x1a
call fcn.0040367c
mov eax, 0x41ec34
mov edx, 0x2f
call fcn.0040367c
mov eax, 0x41ec38
mov edx, 0x12
call fcn.0040367c
mov eax, 0x41eb74
mov edx, 0x409a94
call fcn.0040326c
mov eax, 0x41ec3c
mov edx, 0x20
call fcn.0040367c
xor eax, eax
mov edx, dword [0x41eccc]
test edx, edx
je 0x40882a
cmp eax, dword [edx - 4]
jb 0x40882f
call fcn.00402a00
mov byte [edx + eax], 0
jmp 0x409757
cmp dword [0x41ebf0], 0x32
jb 0x40979c
cmp dword [0x41ebf0], 0x100000
jae 0x408878
mov eax, dword [0x41ebf0]
add eax, 1
jae 0x408860
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x40886f
cmp eax, dword [edx - 4]
jb 0x408874
call fcn.00402a00
mov byte [edx + eax], 0
mov byte [0x41ecc8], 0
mov byte [0x41ecc9], 0
mov byte [0x41ecca], 0
mov eax, dword [0x41ebf0]
test eax, eax
jbe 0x409745
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 1
cmp byte [0x41ecca], 0
jne 0x4088e1
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x4088bf
cmp eax, dword [edx - 4]
jb 0x4088c4
call fcn.00402a00
cmp byte [edx + eax], 8
jne 0x408b79
add byte [0x41ecca], 1
jae 0x4088dc
call fcn.00402a08
jmp 0x408b79
cmp byte [0x41ecca], 1
jne 0x408957
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x4088fc
cmp eax, dword [edx - 4]
jb 0x408901
call fcn.00402a00
mov al, byte [edx + eax]
and al, 0xf
cmp al, 9
jne 0x40894b
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x40891c
cmp eax, dword [edx - 4]
jb 0x408921
call fcn.00402a00
movzx eax, byte [edx + eax]
shr eax, 4
cmp eax, 0xff
ja 0x408936
bt dword [0x41d158], eax
jae 0x40894b
add byte [0x41ecca], 1
jae 0x408946
call fcn.00402a08
jmp 0x408b79
mov byte [0x41ecca], 0
jmp 0x408b79
cmp byte [0x41ecca], 1
jbe 0x4089cb
cmp byte [0x41ecca], 9
jae 0x4089cb
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x40897b
cmp eax, dword [edx - 4]
jb 0x408980
call fcn.00402a00
movzx eax, byte [edx + eax]
shr eax, 4
cmp eax, 0xa
jae 0x4089bf
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x40899e
cmp eax, dword [edx - 4]
jb 0x4089a3
call fcn.00402a00
mov al, byte [edx + eax]
and al, 0xf
cmp al, 0xa
jae 0x4089bf
add byte [0x41ecca], 1
jae 0x4089ba
call fcn.00402a08
jmp 0x408b79
mov byte [0x41ecca], 0
jmp 0x408b79
mov al, byte [0x41ecca]
add al, 0xf7
sub al, 7
jae 0x408a12
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x4089e8
cmp eax, dword [edx - 4]
jb 0x4089ed
call fcn.00402a00
cmp byte [edx + eax], 0
jne 0x408a06
add byte [0x41ecca], 1
jae 0x408a01
call fcn.00402a08
jmp 0x408b79
mov byte [0x41ecca], 0
jmp 0x408b79
cmp byte [0x41ecca], 0x10
jne 0x408b79
mov eax, 0x41eb74
mov edx, 0x409b5c
call fcn.0040326c
mov eax, dword [0x41ec38]
call fcn.0040359c
mov edx, eax
xor eax, eax
mov al, byte [0x41ecca]
mov ecx, dword [ebp - 0xc]
sub ecx, eax
jae 0x408a4d
call fcn.00402a08
mov eax, dword [0x41eccc]
test eax, eax
je 0x408a5b
cmp ecx, dword [eax - 4]
jb 0x408a60
call fcn.00402a00
add eax, ecx
mov ecx, 9
call fcn.00405f68
mov eax, dword [0x41ec38]
call fcn.00405ea0
test al, al
je 0x408b72
mov eax, dword [0x41ec3c]
call fcn.0040359c
mov edx, eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [0x41eccc]
test ecx, ecx
je 0x408a9c
cmp eax, dword [ecx - 4]
jb 0x408aa1
call fcn.00402a00
lea eax, [ecx + eax]
mov ecx, 0x10
call fcn.00405f68
mov eax, dword [0x41ec3c]
call fcn.00405ea0
test al, al
je 0x408b72
mov edx, dword [0x41ec24]
mov eax, dword [0x41ec3c]
call fcn.00403634
test eax, eax
jne 0x408b72
push dword [0x41ec24]
push 0x409974
push 0x409c14
mov eax, dword [0x41ec0c]
add eax, dword [ebp - 0xc]
jae 0x408af7
call fcn.00402a08
xor edx, edx
mov dl, byte [0x41ecca]
sub eax, edx
jae 0x408b08
call fcn.00402a08
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1c]
call fcn.00404970
push dword [ebp - 0x1c]
push 0x409c24
push dword [0x41ec38]
push 0x409c30
push 0x409c3c
mov eax, dword [0x41ec0c]
add eax, dword [ebp - 0xc]
jae 0x408b3b
call fcn.00402a08
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x20]
call fcn.00404970
push dword [ebp - 0x20]
push 0x409c24
push dword [0x41ec3c]
mov eax, 0x41ec24
mov edx, 0xb
call fcn.0040345c
add dword [0x41ec18], 1
jae 0x408b72
call fcn.00402a08
mov byte [0x41ecca], 0
cmp byte [0x41ecc8], 0
jne 0x408bb6
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x408b94
cmp eax, dword [edx - 4]
jb 0x408b99
call fcn.00402a00
cmp byte [edx + eax], 0x30
jne 0x409113
add byte [0x41ecc8], 1
jae 0x408bb1
call fcn.00402a08
jmp 0x409113
cmp byte [0x41ecc8], 1
jne 0x408c18
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x408bd1
cmp eax, dword [edx - 4]
jb 0x408bd6
call fcn.00402a00
cmp byte [edx + eax], 0x38
jne 0x408bf6
add byte [0x41ecc8], 1
jae 0x408bea
call fcn.00402a08
mov byte [0x41ecc9], 2
jmp 0x409739
mov byte [0x41ecc8], 0
mov byte [0x41ecc9], 0
mov eax, 0x41eb74
mov edx, 0x409c4c
call fcn.0040326c
jmp 0x409113
cmp byte [0x41ecc8], 2
jne 0x408c9a
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x408c33
cmp eax, dword [edx - 4]
jb 0x408c38
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d138], eax
jae 0x408c8e
mov eax, dword [ebp - 0xc]
sub eax, 3
jae 0x408c56
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x408c65
cmp eax, dword [edx - 4]
jb 0x408c6a
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d118], eax
jae 0x408c8e
add byte [0x41ecc8], 1
jae 0x408c89
call fcn.00402a08
jmp 0x409113
mov byte [0x41ecc8], 0
jmp 0x409113
cmp byte [0x41ecc8], 3
jne 0x408cdf
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x408cb5
cmp eax, dword [edx - 4]
jb 0x408cba
call fcn.00402a00
cmp byte [edx + eax], 0x39
jne 0x408cd3
add byte [0x41ecc8], 1
jae 0x408cce
call fcn.00402a08
jmp 0x409113
mov byte [0x41ecc8], 0
jmp 0x409113
cmp byte [0x41ecc8], 3
jbe 0x408d38
cmp byte [0x41ecc8], 0x11
jae 0x408d38
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x408d03
cmp eax, dword [edx - 4]
jb 0x408d08
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d0d8], eax
jae 0x408d2c
add byte [0x41ecc8], 1
jae 0x408d27
call fcn.00402a08
jmp 0x409113
mov byte [0x41ecc8], 0
jmp 0x409113
cmp byte [0x41ecc8], 0x11
jne 0x409113
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x408d57
cmp eax, dword [edx - 4]
jb 0x408d5c
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d0d8], eax
jae 0x409113
mov eax, dword [ebp - 0xc]
add eax, 1
jae 0x408d7e
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x408d8d
cmp eax, dword [edx - 4]
jb 0x408d92
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d118], eax
jae 0x409113
xor eax, eax
mov al, byte [0x41ecc8]
mov edx, dword [ebp - 0xc]
sub edx, eax
jae 0x408dba
call fcn.00402a08
mov dword [0x41ebf4], edx
mov byte [0x41ecc8], 0
mov eax, 0x41ec28
call fcn.004035ec
mov edx, 1
dec edx
test eax, eax
je 0x408de0
cmp edx, dword [eax - 4]
jb 0x408de5
call fcn.00402a00
inc edx
lea eax, [eax + edx - 1]
mov edx, dword [0x41ebf4]
mov ecx, dword [0x41eccc]
test ecx, ecx
je 0x408dff
cmp edx, dword [ecx - 4]
jb 0x408e04
call fcn.00402a00
lea edx, [ecx + edx]
mov ecx, 0x12
call fcn.0040441c
mov eax, dword [0x41ec28]
call fcn.00405ea0
test al, al
je 0x409113
push dword [0x41ec1c]
push 0x409974
push 0x409c74
mov eax, dword [0x41ec0c]
add eax, dword [0x41ebf4]
jae 0x408e45
call fcn.00402a08
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x24]
call fcn.00404970
push dword [ebp - 0x24]
push 0x409c24
push dword [0x41ec28]
mov eax, 0x41ec1c
mov edx, 6
call fcn.0040345c
cmp dword [0x41ebf4], 0xc8
jbe 0x408e92
mov eax, dword [0x41ebf4]
sub eax, 0xc8
jae 0x408e8b
call fcn.00402a08
mov dword [0x41ebfc], eax
jmp 0x408e9c
mov dword [0x41ebfc], 1
mov eax, dword [0x41ebf4]
add eax, 0xc8
jae 0x408ead
call fcn.00402a08
mov dword [0x41ec04], eax
mov eax, dword [0x41ec04]
add eax, 0x20
jae 0x408ec1
call fcn.00402a08
cmp eax, dword [0x41ebf0]
jbe 0x408ed3
mov eax, dword [0x41ebf0]
mov dword [0x41ec04], eax
mov eax, dword [0x41ebfc]
cmp eax, dword [0x41ec04]
ja 0x40910c
mov eax, dword [0x41ebfc]
cmp eax, dword [0x41ebf4]
jbe 0x408f03
mov eax, dword [0x41ebfc]
cmp eax, dword [ebp - 0xc]
jae 0x408f03
mov eax, dword [ebp - 0xc]
mov dword [0x41ebfc], eax
cmp byte [0x41ecc8], 0x1f
jae 0x408f55
mov eax, dword [0x41ebfc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x408f20
cmp eax, dword [edx - 4]
jb 0x408f25
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d0f8], eax
jae 0x408f49
add byte [0x41ecc8], 1
jae 0x408f44
call fcn.00402a08
jmp 0x4090ed
mov byte [0x41ecc8], 0
jmp 0x4090ed
cmp byte [0x41ecc8], 0x1f
jne 0x4090ed
mov eax, dword [0x41ebfc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x408f76
cmp eax, dword [edx - 4]
jb 0x408f7b
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d0f8], eax
jae 0x4090e6
mov eax, dword [0x41ebfc]
add eax, 1
jae 0x408f9f
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x408fae
cmp eax, dword [edx - 4]
jb 0x408fb3
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d118], eax
jae 0x4090e6
mov eax, dword [0x41ebfc]
sub eax, 0x20
jae 0x408fd7
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x408fe6
cmp eax, dword [edx - 4]
jb 0x408feb
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d118], eax
jae 0x4090e6
mov eax, 0x41ec2c
call fcn.004035ec
mov edx, 1
dec edx
test eax, eax
je 0x409019
cmp edx, dword [eax - 4]
jb 0x40901e
call fcn.00402a00
inc edx
lea eax, [eax + edx - 1]
xor edx, edx
mov dl, byte [0x41ecc8]
mov ecx, dword [0x41ebfc]
sub ecx, edx
jae 0x40903a
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x409049
cmp ecx, dword [edx - 4]
jb 0x40904e
call fcn.00402a00
add edx, ecx
mov ecx, 0x20
call fcn.0040441c
mov eax, dword [0x41ec2c]
call fcn.00405ea0
test al, al
je 0x4090e6
mov edx, dword [0x41ec1c]
mov eax, dword [0x41ec2c]
call fcn.00403634
test eax, eax
jne 0x4090e6
push dword [0x41ec1c]
push 0x409c30
push 0x409c84
mov eax, dword [0x41ec0c]
add eax, dword [0x41ebfc]
jae 0x40909e
call fcn.00402a08
xor edx, edx
mov dl, byte [0x41ecc8]
sub eax, edx
jae 0x4090af
call fcn.00402a08
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x28]
call fcn.00404970
push dword [ebp - 0x28]
push 0x409c24
push dword [0x41ec2c]
mov eax, 0x41ec1c
mov edx, 6
call fcn.0040345c
add dword [0x41ec10], 1
jae 0x4090e6
call fcn.00402a08
mov byte [0x41ecc8], 0
add dword [0x41ebfc], 1
jae 0x4090fb
call fcn.00402a08
mov eax, dword [0x41ebfc]
cmp eax, dword [0x41ec04]
jbe 0x408ee4
mov byte [0x41ecc8], 0
cmp byte [0x41ecc9], 1
jbe 0x409739
cmp byte [0x41ecc9], 2
jne 0x409165
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x40913b
cmp eax, dword [edx - 4]
jb 0x409140
call fcn.00402a00
cmp byte [edx + eax], 0x20
jne 0x409159
add byte [0x41ecc9], 1
jae 0x409154
call fcn.00402a08
jmp 0x409739
mov byte [0x41ecc9], 0
jmp 0x409739
cmp byte [0x41ecc9], 3
jne 0x4091b5
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x409180
cmp eax, dword [edx - 4]
jb 0x409185
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d138], eax
jae 0x4091a9
add byte [0x41ecc9], 1
jae 0x4091a4
call fcn.00402a08
jmp 0x409739
mov byte [0x41ecc9], 0
jmp 0x409739
cmp byte [0x41ecc9], 4
jne 0x4091fa
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x4091d0
cmp eax, dword [edx - 4]
jb 0x4091d5
call fcn.00402a00
cmp byte [edx + eax], 0x39
jne 0x4091ee
add byte [0x41ecc9], 1
jae 0x4091e9
call fcn.00402a08
jmp 0x409739
mov byte [0x41ecc9], 0
jmp 0x409739
mov al, byte [0x41ecc9]
cmp al, 0x1f
ja 0x40920d
and eax, 0x7f
bt dword [0x409c88], eax
jae 0x40924b
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x409221
cmp eax, dword [edx - 4]
jb 0x409226
call fcn.00402a00
cmp byte [edx + eax], 0x20
jne 0x40923f
add byte [0x41ecc9], 1
jae 0x40923a
call fcn.00402a08
jmp 0x409739
mov byte [0x41ecc9], 0
jmp 0x409739
mov al, byte [0x41ecc9]
cmp al, 0x1f
ja 0x40925e
and eax, 0x7f
bt dword [0x409c8c], eax
jae 0x4092a7
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x409272
cmp eax, dword [edx - 4]
jb 0x409277
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d0d8], eax
jae 0x40929b
add byte [0x41ecc9], 1
jae 0x409296
call fcn.00402a08
jmp 0x409739
mov byte [0x41ecc9], 0
jmp 0x409739
cmp byte [0x41ecc9], 0x19
jne 0x409739
mov eax, dword [ebp - 0xc]
mov edx, dword [0x41eccc]
test edx, edx
je 0x4092c6
cmp eax, dword [edx - 4]
jb 0x4092cb
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d0d8], eax
jae 0x409739
mov eax, dword [ebp - 0xc]
add eax, 1
jae 0x4092ed
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x4092fc
cmp eax, dword [edx - 4]
jb 0x409301
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d118], eax
jae 0x409739
mov eax, dword [ebp - 0xc]
sub eax, 0x1a
jae 0x409323
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x409332
cmp eax, dword [edx - 4]
jb 0x409337
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d118], eax
jae 0x409739
xor eax, eax
mov al, byte [0x41ecc9]
mov edx, dword [ebp - 0xc]
sub edx, eax
jae 0x40935f
call fcn.00402a08
mov dword [0x41ebf8], edx
mov byte [0x41ecc9], 0
mov eax, dword [0x41ebf8]
mov edx, dword [0x41eccc]
test edx, edx
je 0x409380
cmp eax, dword [edx - 4]
jb 0x409385
call fcn.00402a00
add edx, eax
mov eax, 0x41ec30
mov ecx, 0x1a
call fcn.00403308
lea edx, [ebp - 0x2c]
mov eax, dword [0x41ec30]
call fcn.00405dec
mov edx, dword [ebp - 0x2c]
mov eax, 0x41ec30
call fcn.0040326c
mov eax, dword [0x41ec30]
call fcn.00405ea0
test al, al
je 0x409739
push dword [0x41ec20]
push 0x409974
push 0x409c98
mov eax, dword [0x41ec0c]
add eax, dword [0x41ebf8]
jae 0x4093e4
call fcn.00402a08
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x30]
call fcn.00404970
push dword [ebp - 0x30]
push 0x409c24
push dword [0x41ec30]
mov eax, 0x41ec20
mov edx, 6
call fcn.0040345c
cmp dword [0x41ebf8], 0xc8
jbe 0x409431
mov eax, dword [0x41ebf8]
sub eax, 0xc8
jae 0x40942a
call fcn.00402a08
mov dword [0x41ec00], eax
jmp 0x40943b
mov dword [0x41ec00], 1
mov eax, dword [0x41ebf8]
add eax, 0xc8
jae 0x40944c
call fcn.00402a08
mov dword [0x41ec08], eax
mov eax, dword [0x41ec08]
add eax, 0x2f
jae 0x409460
call fcn.00402a08
cmp eax, dword [0x41ebf0]
jbe 0x409472
mov eax, dword [0x41ebf0]
mov dword [0x41ec08], eax
mov eax, dword [0x41ec00]
cmp eax, dword [0x41ec08]
ja 0x409732
mov eax, dword [0x41ec00]
cmp eax, dword [0x41ebf8]
jbe 0x4094a2
mov eax, dword [0x41ec00]
cmp eax, dword [ebp - 0xc]
jae 0x4094a2
mov eax, dword [ebp - 0xc]
mov dword [0x41ec00], eax
mov al, byte [0x41ecc9]
cmp al, 0x2f
ja 0x4094b5
and eax, 0x7f
bt dword [0x409ca0], eax
jae 0x409500
mov eax, dword [0x41ec00]
mov edx, dword [0x41eccc]
test edx, edx
je 0x4094cb
cmp eax, dword [edx - 4]
jb 0x4094d0
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d0f8], eax
jae 0x4094f4
add byte [0x41ecc9], 1
jae 0x4094ef
call fcn.00402a08
jmp 0x409704
mov byte [0x41ecc9], 0
jmp 0x409704
mov al, byte [0x41ecc9]
cmp al, 0x2f
ja 0x409513
and eax, 0x7f
bt dword [0x409ca8], eax
jae 0x409553
mov eax, dword [0x41ec00]
mov edx, dword [0x41eccc]
test edx, edx
je 0x409529
cmp eax, dword [edx - 4]
jb 0x40952e
call fcn.00402a00
cmp byte [edx + eax], 0x20
jne 0x409547
add byte [0x41ecc9], 1
jae 0x409542
call fcn.00402a08
jmp 0x409704
mov byte [0x41ecc9], 0
jmp 0x409704
cmp byte [0x41ecc9], 0x2e
jne 0x409704
mov eax, 0x41eb74
mov edx, 0x409cb8
call fcn.0040326c
mov eax, dword [0x41ec00]
mov edx, dword [0x41eccc]
test edx, edx
je 0x409583
cmp eax, dword [edx - 4]
jb 0x409588
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d0f8], eax
jae 0x4096ee
mov eax, dword [0x41ec00]
add eax, 1
jae 0x4095ac
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x4095bb
cmp eax, dword [edx - 4]
jb 0x4095c0
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d118], eax
jae 0x4096ee
mov eax, dword [0x41ec00]
sub eax, 0x2f
jae 0x4095e4
call fcn.00402a08
mov edx, dword [0x41eccc]
test edx, edx
je 0x4095f3
cmp eax, dword [edx - 4]
jb 0x4095f8
call fcn.00402a00
mov al, byte [edx + eax]
and eax, 0xff
bt dword [0x41d118], eax
jae 0x4096ee
xor eax, eax
mov al, byte [0x41ecc9]
mov edx, dword [0x41ec00]
sub edx, eax
jae 0x409623
call fcn.00402a08
mov eax, dword [0x41eccc]
test eax, eax
je 0x409631
cmp edx, dword [eax - 4]
jb 0x409636
call fcn.00402a00
lea edx, [eax + edx]
mov eax, 0x41ec34
mov ecx, 0x2f
call fcn.00403308
lea edx, [ebp - 0x34]
mov eax, dword [0x41ec34]
call fcn.00405dec
mov edx, dword [ebp - 0x34]
mov eax, 0x41ec34
call fcn.0040326c
mov eax, dword [0x41ec34]
call fcn.00405ea0
test al, al
je 0x4096ee
mov edx, dword [0x41ec20]
mov eax, dword [0x41ec34]
call fcn.00403634
test eax, eax
jne 0x4096ee
push dword [0x41ec20]
push 0x409c30
push 0x409d60
mov eax, dword [0x41ec0c]
add eax, dword [0x41ec00]
jae 0x4096a6
call fcn.00402a08
xor edx, edx
mov dl, byte [0x41ecc9]
sub eax, edx
jae 0x4096b7
call fcn.00402a08
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x38]
call fcn.00404970
push dword [ebp - 0x38]
push 0x409c24
push dword [0x41ec34]
mov eax, 0x41ec20
mov edx, 6
call fcn.0040345c
add dword [0x41ec14], 1
jae 0x4096ee
call fcn.00402a08
mov byte [0x41ecc9], 0
mov eax, 0x41eb74
mov edx, 0x409d70
call fcn.0040326c
add dword [0x41ec00], 1
jae 0x409712
call fcn.00402a08
mov eax, 0x41eb74
mov edx, 0x409e04
call fcn.0040326c
mov eax, dword [0x41ec00]
cmp eax, dword [0x41ec08]
jbe 0x409483
mov byte [0x41ecc9], 0
inc dword [ebp - 0xc]
dec dword [ebp - 0x10]
jne 0x4088a4
mov eax, dword [0x41ebf0]
add dword [0x41ec0c], eax
jae 0x409757
call fcn.00402a08
push 0
push 0x41ebf0
push 0x100000
mov eax, 1
mov edx, dword [0x41eccc]
test edx, edx
je 0x409777
cmp eax, dword [edx - 4]
jb 0x40977c
call fcn.00402a00
lea eax, [edx + eax]
push eax
mov eax, dword [0x41ebec]
push eax
call sub.kernel32.dll_ReadFile
test eax, eax
je 0x40979c
cmp dword [0x41ebf0], 0
ja 0x408838
cmp dword [0x41ec10], 0
jbe 0x4097c2
mov eax, dword [ebp - 8]
push dword [eax]
push dword [0x41ec1c]
push 0x409974
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.0040345c
cmp dword [0x41ec14], 0
jbe 0x4097e8
mov eax, dword [ebp - 8]
push dword [eax]
push dword [0x41ec20]
push 0x409974
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.0040345c
cmp dword [0x41ec18], 0
jbe 0x40980e
mov eax, dword [ebp - 8]
push dword [eax]
push dword [0x41ec24]
push 0x409974
mov eax, dword [ebp - 8]
mov edx, 3
call fcn.0040345c
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0040339c
cmp eax, 0xed800
jle 0x409834
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 0xed800
xor edx, edx
call fcn.004035f4
mov eax, dword [0x41ebec]
push eax
call sub.kernel32.dll_CloseHandle
mov eax, 0x41eb74
mov edx, 0x409ee0
call fcn.0040326c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x409878
lea eax, [ebp - 0x38]
mov edx, 0xa
call fcn.0040323c
lea eax, [ebp - 4]
call fcn.00403218
ret