Function at 0x40a720
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
push 0x42e0b2
push dword [ebp + 8]
call fcn.00414cd0
add esp, 8
test eax, eax
je 0x40a9b8
mov esi, eax
push 2
push 0
push eax
call fcn.004154f5
add esp, 0xc
mov ebx, 6
test eax, eax
jne 0x40a9ca
push esi
call fcn.004157d2
add esp, 4
test eax, eax
jle 0x40a9ca
mov edi, eax
inc eax
push eax
call fcn.0040cf57
add esp, 4
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
push eax
push esi
call fcn.004154f5
add esp, 0xc
test eax, eax
jne 0x40a9bf
push esi
push edi
push 1
push dword [ebp - 0x10]
call fcn.004152e2
add esp, 0x10
cmp eax, edi
jne 0x40a9bf
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 0x40a7d8
cmp dl, 0xd
jne 0x40a7de
inc ebx
inc esi
inc ecx
inc eax
jmp 0x40a7cc
mov edi, esi
mov dh, dl
test dl, dl
je 0x40a9dd
cmp dh, 0xd
je 0x40a7ff
cmp dh, 0xa
je 0x40a7ff
mov dh, byte [edi]
inc edi
test dh, dh
jne 0x40a7ea
xor ebx, ebx
jmp 0x40a807
mov byte [edi - 1], 0
mov dl, byte [ebx]
mov ebx, edi
cmp dl, 0x23
je 0x40a8f4
cmp dl, 0x3b
je 0x40a8f4
jmp 0x40a825
cmp dl, 0x20
jne 0x40a839
mov dl, byte [esi]
inc esi
inc ecx
inc eax
cmp dl, 0x1f
jg 0x40a81b
cmp dl, 9
je 0x40a820
test dl, dl
je 0x40a8f4
jmp 0x40a84f
cmp dl, 0x5b
jne 0x40a84f
mov dword [ebp - 0x14], ebx
mov edx, esi
mov bl, byte [edx]
cmp bl, 0x5d
jne 0x40a871
inc edx
inc ecx
inc eax
jmp 0x40a843
test byte [ebp - 0x1c], 1
je 0x40a8f4
mov dword [ebp - 0x14], ebx
lea eax, [esi - 1]
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp + 0xc]
cmp dl, 0x3d
jne 0x40a88f
mov dl, byte [eax + 1]
inc eax
inc esi
jmp 0x40a865
test bl, bl
jne 0x40a87e
mov dword [ebp - 0x1c], 0
jmp 0x40a8f1
cmp bl, 0x5d
je 0x40a8a7
mov bl, byte [edx + 1]
inc edx
inc ecx
inc eax
test bl, bl
jne 0x40a87e
jmp 0x40a8be
test dl, dl
je 0x40a9ad
cmp dl, 0x3d
je 0x40a907
mov dl, byte [esi]
inc esi
test dl, dl
jne 0x40a897
xor esi, esi
jmp 0x40a90b
mov byte [edx], 0
mov dl, byte [ecx]
cmp dl, 9
je 0x40a8b6
cmp dl, 0x20
jne 0x40a8ba
inc ecx
inc eax
jmp 0x40a8aa
test dl, dl
jne 0x40a8c8
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x40a8db
push eax
jmp 0x40a8e0
cmp dl, 0x20
je 0x40a942
cmp dl, 9
je 0x40a942
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a8c8
jmp 0x40a875
push str.Strings
push esi
call fcn.00415e40
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 0x40a7c3
jmp 0x40a9e3
mov byte [esi - 1], 0
test ebx, ebx
je 0x40a9ad
cmp byte [ebx], 0
je 0x40a9ad
xor edi, edi
push ebx
push dword [ebp - 0x20]
call fcn.00415e40
add esp, 8
test eax, eax
je 0x40a94b
push ebx
call fcn.00415fd0
add esp, 4
add ebx, eax
inc ebx
inc edi
cmp byte [ebx], 0
jne 0x40a91e
jmp 0x40a9ad
mov byte [eax - 1], 0
jmp 0x40a875
cmp edi, dword [ebp + 0x10]
jae 0x40a9ad
mov ebx, edi
push esi
call fcn.00415fd0
add esp, 4
inc eax
mov dword [ebp - 0x28], eax
push eax
call fcn.0040cf57
add esp, 4
mov dword [ebp - 0x20], eax
push dword [ebp - 0x28]
push 0
push eax
call fcn.0040f9d0
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 0x40a99e
push eax
call fcn.0040d268
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.00415ed0
add esp, 8
inc dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
jmp 0x40a8f7
mov ebx, 6
jmp 0x40a9d3
push dword [ebp - 0x10]
call fcn.0040d268
add esp, 4
push esi
call fcn.00414dbb
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 0x40a9c2