Function at 0x409650
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x450d58
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x47a42c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov esi, dword [ebp + 8]
test esi, esi
jne 0x4096a1
push esi
push esi
push esi
push 2
call fcn.0040bde0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.00408b10
push 2
push 0
push esi
mov dword [ebx + 8], 0xffffffff
mov dword [ebx + 4], 0xffffffff
call fcn.00432de1
push esi
call fcn.00433353
push 0
push 0
push esi
mov edi, eax
call fcn.00432de1
add esp, 0x1c
test edi, edi
jg 0x4096fc
push 0
push 0
push 0
push 0xd
mov ecx, ebx
call fcn.0040bde0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov dword [ebp - 0x1c], 0x47b814
push edi
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0
call fcn.00408390
xor eax, eax
mov word [ebp - 0x14], 0xbbef
mov byte [ebp - 0x12], 0xbf
mov word [ebp - 0x18], ax
mov byte [ebp - 0x16], al
cmp edi, 3
jg 0x40973e
push eax
push eax
push eax
push 0xd
mov ecx, ebx
call fcn.0040bde0
xor bl, bl
jmp 0x40987f
push esi
push 1
lea eax, [ebp - 0x18]
push 3
push eax
call fcn.004329f6
add esp, 0x10
cmp eax, 1
je 0x40976a
push 0
push 0
push 0
push 2
mov ecx, ebx
call fcn.0040bde0
xor bl, bl
jmp 0x40987f
lea ecx, [ebp - 0x14]
movzx eax, word [ecx]
lea edx, [ebp - 0x18]
cmp ax, word [edx]
jne 0x409786
movzx eax, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x409786
sub edi, 3
jmp 0x409793
push 0
push 0
push esi
call fcn.00432de1
add esp, 0xc
lea eax, [edi + 1]
push eax
call fcn.00428a76
push esi
push 1
push edi
push eax
mov dword [ebp - 0x14], eax
mov byte [eax], 0
call fcn.004329f6
add esp, 0x14
cmp eax, 1
je 0x4097d5
push dword [ebp - 0x14]
call fcn.00428a7f
add esp, 4
mov ecx, ebx
push 0
push 0
push 0
push 2
call fcn.0040bde0
xor bl, bl
jmp 0x40987f
mov eax, dword [ebp - 0x14]
mov ecx, eax
mov esi, eax
mov byte [eax + edi], 0
mov al, byte [eax]
test al, al
je 0x40983d
cmp al, 0xa
jne 0x4097fe
mov eax, esi
sub eax, ecx
inc eax
push eax
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00408260
inc esi
mov ecx, esi
jmp 0x409837
cmp al, 0xd
jne 0x409836
mov eax, esi
sub eax, ecx
test eax, eax
jle 0x409814
push eax
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00408260
push 1
lea eax, [ebp - 0x10]
mov byte [ebp - 0x10], 0xa
push eax
lea ecx, [ebp - 0x1c]
call fcn.00408260
xor eax, eax
cmp byte [esi + 1], 0xa
sete al
inc eax
add esi, eax
mov ecx, esi
jmp 0x409837
inc esi
mov al, byte [esi]
test al, al
jne 0x4097e6
sub esi, ecx
je 0x40984b
push esi
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00408260
push dword [ebp - 0x14]
call fcn.00428a7f
mov esi, dword [ebx]
add esp, 4
mov eax, dword [ebp - 0x1c]
add eax, 8
push dword [ebp + 0xc]
mov esi, dword [esi + 8]
mov ecx, esi
push 0
push eax
call dword [0x45343c]
mov ecx, ebx
call esi
cmp byte [ebx + 0x2c], 0
je 0x40987d
xor bl, bl
jmp 0x40987f
mov bl, 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, 0x47b814
je 0x409893
push ecx
call fcn.00428a7f
add esp, 4
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8