Function at 0x40f1a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
push 0x43849a
push dword [ebp + 8]
call fcn.0041d30b
add esp, 8
test eax, eax
je 0x40f432
mov esi, eax
push 2
push 0
push eax
call fcn.00419c7f
add esp, 0xc
mov ebx, 6
test eax, eax
jne 0x40f444
push esi
call fcn.0041a956
add esp, 4
test eax, eax
jle 0x40f444
mov edi, eax
inc eax
push eax
call fcn.00411d49
add esp, 4
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
push eax
push esi
call fcn.00419c7f
add esp, 0xc
test eax, eax
jne 0x40f439
push esi
push edi
push 1
push dword [ebp - 0x10]
call fcn.0041eb0c
add esp, 0x10
cmp eax, edi
jne 0x40f439
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0
mov esi, ecx
mov byte [ecx + edi], 0
lea edi, [esi + 1]
lea ecx, [esi + 2]
lea eax, [esi + 3]
mov ebx, esi
mov dl, byte [ebx]
cmp dl, 0xa
je 0x40f25a
cmp dl, 0xd
jne 0x40f260
inc ebx
inc edi
inc ecx
inc eax
jmp 0x40f24e
test dl, dl
mov esi, edi
mov dh, dl
je 0x40f457
cmp dh, 0xd
je 0x40f281
cmp dh, 0xa
je 0x40f281
mov dh, byte [esi]
inc esi
test dh, dh
jne 0x40f26c
xor esi, esi
jmp 0x40f287
mov byte [esi - 1], 0
mov dl, byte [ebx]
cmp dl, 0x23
je 0x40f425
cmp dl, 0x3b
je 0x40f425
jmp 0x40f2a5
cmp dl, 0x20
jne 0x40f2b9
mov dl, byte [edi]
inc edi
inc ecx
inc eax
cmp dl, 0x1f
jg 0x40f29b
cmp dl, 9
je 0x40f2a0
test dl, dl
je 0x40f425
jmp 0x40f2cc
cmp dl, 0x5b
jne 0x40f2cc
mov edx, edi
mov bl, byte [edx]
cmp bl, 0x5d
jne 0x40f2eb
inc edx
inc ecx
inc eax
jmp 0x40f2c0
test byte [ebp - 0x14], 1
je 0x40f425
mov ebx, dword [ebp + 0xc]
lea eax, [edi - 1]
mov dword [ebp - 0x18], eax
cmp dl, 0x3d
jne 0x40f30c
mov dl, byte [eax + 1]
inc eax
inc edi
jmp 0x40f2df
test bl, bl
jne 0x40f2fb
mov dword [ebp - 0x14], 0
jmp 0x40f425
cmp bl, 0x5d
je 0x40f324
mov bl, byte [edx + 1]
inc edx
inc ecx
inc eax
test bl, bl
jne 0x40f2fb
jmp 0x40f33b
test dl, dl
je 0x40f425
cmp dl, 0x3d
je 0x40f373
mov dl, byte [edi]
inc edi
test dl, dl
jne 0x40f314
xor edi, edi
jmp 0x40f377
mov byte [edx], 0
mov dl, byte [ecx]
cmp dl, 9
je 0x40f333
cmp dl, 0x20
jne 0x40f337
inc ecx
inc eax
jmp 0x40f327
test dl, dl
jne 0x40f345
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x40f358
push eax
jmp 0x40f35d
cmp dl, 0x20
je 0x40f3b6
cmp dl, 9
je 0x40f3b6
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40f345
jmp 0x40f2ef
push str.Strings
push edi
call fcn.0041f260
add esp, 8
test eax, eax
sete al
mov dword [ebp - 0x14], eax
jmp 0x40f425
mov byte [edi - 1], 0
test ebx, ebx
je 0x40f425
cmp byte [ebx], 0
je 0x40f425
mov dword [ebp - 0x1c], 0
push ebx
push dword [ebp - 0x18]
call fcn.0041f260
add esp, 8
test eax, eax
je 0x40f3bf
push ebx
call fcn.0041f3f0
add esp, 4
lea ebx, [eax + ebx + 1]
inc dword [ebp - 0x1c]
cmp byte [ebx], 0
jne 0x40f38f
jmp 0x40f425
mov byte [eax - 1], 0
jmp 0x40f2ef
mov ebx, dword [ebp - 0x1c]
cmp ebx, dword [ebp + 0x10]
jae 0x40f425
push edi
call fcn.0041f3f0
add esp, 4
inc eax
mov dword [ebp - 0x24], eax
push eax
call fcn.00411d49
add esp, 4
mov dword [ebp - 0x18], eax
push dword [ebp - 0x24]
push 0
push eax
call fcn.00414930
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + ebx*4]
mov dword [ecx + ebx*4], edx
test eax, eax
je 0x40f416
push eax
call fcn.00411d52
add esp, 4
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x18], eax
push edi
push dword [ebp - 0x18]
call fcn.0041f2f0
add esp, 8
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
test esi, esi
jne 0x40f243
jmp 0x40f45a
mov ebx, 6
jmp 0x40f44d
push dword [ebp - 0x10]
call fcn.00411d52
add esp, 4
push esi
call fcn.0041e639
add esp, 4
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x20]
xor eax, eax
cmp edx, dword [ebp + 0x10]
setne al
lea ebx, [eax + eax*4]
push ecx
call fcn.00411d52
add esp, 4
mov esi, dword [ebp - 0x28]
jmp 0x40f444