Function at 0x40a180
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
push 0x42cf32
push dword [ebp + 8]
call fcn.004152ed
add esp, 8
test eax, eax
je 0x40a412
mov esi, eax
push 2
push 0
push eax
call fcn.00415b12
add esp, 0xc
mov ebx, 6
test eax, eax
jne 0x40a424
push esi
call fcn.00415def
add esp, 4
test eax, eax
jle 0x40a424
mov edi, eax
inc eax
push eax
call fcn.0040d784
add esp, 4
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
push eax
push esi
call fcn.00415b12
add esp, 0xc
test eax, eax
jne 0x40a419
push esi
push edi
push 1
push dword [ebp - 0x10]
call fcn.004158ff
add esp, 0x10
cmp eax, edi
jne 0x40a419
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 0x40a23a
cmp dl, 0xd
jne 0x40a240
inc ebx
inc edi
inc ecx
inc eax
jmp 0x40a22e
test dl, dl
mov esi, edi
mov dh, dl
je 0x40a437
cmp dh, 0xd
je 0x40a261
cmp dh, 0xa
je 0x40a261
mov dh, byte [esi]
inc esi
test dh, dh
jne 0x40a24c
xor esi, esi
jmp 0x40a267
mov byte [esi - 1], 0
mov dl, byte [ebx]
cmp dl, 0x23
je 0x40a405
cmp dl, 0x3b
je 0x40a405
jmp 0x40a285
cmp dl, 0x20
jne 0x40a299
mov dl, byte [edi]
inc edi
inc ecx
inc eax
cmp dl, 0x1f
jg 0x40a27b
cmp dl, 9
je 0x40a280
test dl, dl
je 0x40a405
jmp 0x40a2ac
cmp dl, 0x5b
jne 0x40a2ac
mov edx, edi
mov bl, byte [edx]
cmp bl, 0x5d
jne 0x40a2cb
inc edx
inc ecx
inc eax
jmp 0x40a2a0
test byte [ebp - 0x14], 1
je 0x40a405
mov ebx, dword [ebp + 0xc]
lea eax, [edi - 1]
mov dword [ebp - 0x18], eax
cmp dl, 0x3d
jne 0x40a2ec
mov dl, byte [eax + 1]
inc eax
inc edi
jmp 0x40a2bf
test bl, bl
jne 0x40a2db
mov dword [ebp - 0x14], 0
jmp 0x40a405
cmp bl, 0x5d
je 0x40a304
mov bl, byte [edx + 1]
inc edx
inc ecx
inc eax
test bl, bl
jne 0x40a2db
jmp 0x40a31b
test dl, dl
je 0x40a405
cmp dl, 0x3d
je 0x40a353
mov dl, byte [edi]
inc edi
test dl, dl
jne 0x40a2f4
xor edi, edi
jmp 0x40a357
mov byte [edx], 0
mov dl, byte [ecx]
cmp dl, 9
je 0x40a313
cmp dl, 0x20
jne 0x40a317
inc ecx
inc eax
jmp 0x40a307
test dl, dl
jne 0x40a325
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x40a338
push eax
jmp 0x40a33d
cmp dl, 0x20
je 0x40a396
cmp dl, 9
je 0x40a396
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a325
jmp 0x40a2cf
push str.Strings
push edi
call fcn.00416450
add esp, 8
test eax, eax
sete al
mov dword [ebp - 0x14], eax
jmp 0x40a405
mov byte [edi - 1], 0
test ebx, ebx
je 0x40a405
cmp byte [ebx], 0
je 0x40a405
mov dword [ebp - 0x1c], 0
push ebx
push dword [ebp - 0x18]
call fcn.00416450
add esp, 8
test eax, eax
je 0x40a39f
push ebx
call fcn.004165e0
add esp, 4
lea ebx, [eax + ebx + 1]
inc dword [ebp - 0x1c]
cmp byte [ebx], 0
jne 0x40a36f
jmp 0x40a405
mov byte [eax - 1], 0
jmp 0x40a2cf
mov ebx, dword [ebp - 0x1c]
cmp ebx, dword [ebp + 0x10]
jae 0x40a405
push edi
call fcn.004165e0
add esp, 4
inc eax
mov dword [ebp - 0x24], eax
push eax
call fcn.0040d784
add esp, 4
mov dword [ebp - 0x18], eax
push dword [ebp - 0x24]
push 0
push eax
call fcn.0040fdd0
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 0x40a3f6
push eax
call fcn.0040d78d
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.004164e0
add esp, 8
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
test esi, esi
jne 0x40a223
jmp 0x40a43a
mov ebx, 6
jmp 0x40a42d
push dword [ebp - 0x10]
call fcn.0040d78d
add esp, 4
push esi
call fcn.004153d8
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.0040d78d
add esp, 4
mov esi, dword [ebp - 0x28]
jmp 0x40a424