Function at 0x40f570
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
push 0x4386ba
push dword [ebp + 8]
call fcn.0041d63e
add esp, 8
test eax, eax
je 0x40f808
mov esi, eax
push 2
push 0
push eax
call fcn.0041a01c
add esp, 0xc
mov ebx, 6
test eax, eax
jne 0x40f81a
push esi
call fcn.0041acf3
add esp, 4
test eax, eax
jle 0x40f81a
mov edi, eax
inc eax
push eax
call fcn.00411e4b
add esp, 4
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
push eax
push esi
call fcn.0041a01c
add esp, 0xc
test eax, eax
jne 0x40f80f
push esi
push edi
push 1
push dword [ebp - 0x10]
call fcn.0041ee3f
add esp, 0x10
cmp eax, edi
jne 0x40f80f
mov ecx, dword [ebp - 0x10]
mov byte [ecx + edi], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], 0
mov ebx, ecx
mov dword [ebp - 0x18], esi
lea esi, [ebx + 1]
lea ecx, [ebx + 2]
lea eax, [ebx + 3]
mov dl, byte [ebx]
cmp dl, 0xa
je 0x40f628
cmp dl, 0xd
jne 0x40f62e
inc ebx
inc esi
inc ecx
inc eax
jmp 0x40f61c
mov edi, esi
mov dh, dl
test dl, dl
je 0x40f82d
cmp dh, 0xd
je 0x40f64f
cmp dh, 0xa
je 0x40f64f
mov dh, byte [edi]
inc edi
test dh, dh
jne 0x40f63a
xor ebx, ebx
jmp 0x40f657
mov byte [edi - 1], 0
mov dl, byte [ebx]
mov ebx, edi
cmp dl, 0x23
je 0x40f744
cmp dl, 0x3b
je 0x40f744
jmp 0x40f675
cmp dl, 0x20
jne 0x40f689
mov dl, byte [esi]
inc esi
inc ecx
inc eax
cmp dl, 0x1f
jg 0x40f66b
cmp dl, 9
je 0x40f670
test dl, dl
je 0x40f744
jmp 0x40f69f
cmp dl, 0x5b
jne 0x40f69f
mov dword [ebp - 0x14], ebx
mov edx, esi
mov bl, byte [edx]
cmp bl, 0x5d
jne 0x40f6c1
inc edx
inc ecx
inc eax
jmp 0x40f693
test byte [ebp - 0x1c], 1
je 0x40f744
mov dword [ebp - 0x14], ebx
lea eax, [esi - 1]
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp + 0xc]
cmp dl, 0x3d
jne 0x40f6df
mov dl, byte [eax + 1]
inc eax
inc esi
jmp 0x40f6b5
test bl, bl
jne 0x40f6ce
mov dword [ebp - 0x1c], 0
jmp 0x40f741
cmp bl, 0x5d
je 0x40f6f7
mov bl, byte [edx + 1]
inc edx
inc ecx
inc eax
test bl, bl
jne 0x40f6ce
jmp 0x40f70e
test dl, dl
je 0x40f7fd
cmp dl, 0x3d
je 0x40f757
mov dl, byte [esi]
inc esi
test dl, dl
jne 0x40f6e7
xor esi, esi
jmp 0x40f75b
mov byte [edx], 0
mov dl, byte [ecx]
cmp dl, 9
je 0x40f706
cmp dl, 0x20
jne 0x40f70a
inc ecx
inc eax
jmp 0x40f6fa
test dl, dl
jne 0x40f718
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x40f72b
push eax
jmp 0x40f730
cmp dl, 0x20
je 0x40f792
cmp dl, 9
je 0x40f792
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40f718
jmp 0x40f6c5
push str.Strings
push esi
call fcn.0041f590
add esp, 8
test eax, eax
sete al
mov dword [ebp - 0x1c], eax
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
test ebx, ebx
jne 0x40f613
jmp 0x40f833
mov byte [esi - 1], 0
test ebx, ebx
je 0x40f7fd
cmp byte [ebx], 0
je 0x40f7fd
xor edi, edi
push ebx
push dword [ebp - 0x20]
call fcn.0041f590
add esp, 8
test eax, eax
je 0x40f79b
push ebx
call fcn.0041f720
add esp, 4
add ebx, eax
inc ebx
inc edi
cmp byte [ebx], 0
jne 0x40f76e
jmp 0x40f7fd
mov byte [eax - 1], 0
jmp 0x40f6c5
cmp edi, dword [ebp + 0x10]
jae 0x40f7fd
mov ebx, edi
push esi
call fcn.0041f720
add esp, 4
inc eax
mov dword [ebp - 0x28], eax
push eax
call fcn.00411e4b
add esp, 4
mov dword [ebp - 0x20], eax
push dword [ebp - 0x28]
push 0
push eax
call fcn.00414ee0
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + edi*4]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x20]
mov dword [ecx + edi*4], edx
test eax, eax
je 0x40f7ee
push eax
call fcn.00412138
add esp, 4
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x20], eax
push esi
push dword [ebp - 0x20]
call fcn.0041f620
add esp, 8
inc dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
jmp 0x40f747
mov ebx, 6
jmp 0x40f823
push dword [ebp - 0x10]
call fcn.00412138
add esp, 4
push esi
call fcn.0041e96c
add esp, 4
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
xor eax, eax
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp + 0x10]
setne al
lea ebx, [eax + eax*4]
push ecx
jmp 0x40f812