Function at 0x1e970
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x1ebce
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
call fcn.00014314
lea eax, [ebp - 0xc]
call fcn.00013c3c
mov eax, dword [ebp - 4]
call fcn.00014314
mov eax, dword [ebx + 0xc]
cmp eax, 0xffffffff
jne 0x1e9bd
mov esi, 0x6e
jmp 0x1ebb0
push 0
push 0
mov edx, dword [ebx + 0x10]
push edx
push eax
call sub.kernel32.dll_SetFilePointer_1
mov al, byte [ebx + 0x14]
cmp al, 2
jne 0x1ea1c
lea eax, [ebx + 0x18]
xor ecx, ecx
mov edx, 0x5000
call fcn.00012b94
push 0
lea eax, [ebp - 0x10]
push eax
push 0x5000
lea eax, [ebx + 0x18]
push eax
mov eax, dword [ebx + 0xc]
push eax
call sub.kernel32.dll_ReadFile_1
test eax, eax
jne 0x1ea0a
call sub.kernel32.dll_GetLastError_1
mov esi, eax
mov byte [ebx + 4], 1
jmp 0x1ea6f
cmp dword [ebp - 0x10], 0
jne 0x1ea18
xor esi, esi
mov byte [ebx + 4], 1
jmp 0x1ea6f
xor esi, esi
jmp 0x1ea6f
cmp al, 1
jne 0x1ea6a
lea eax, [ebx + 0x18]
xor ecx, ecx
mov edx, 0x2800
call fcn.00012b94
push 0
lea eax, [ebp - 0x10]
push eax
push 0x2800
lea eax, [ebx + 0x18]
push eax
mov eax, dword [ebx + 0xc]
push eax
call sub.kernel32.dll_ReadFile_1
test eax, eax
jne 0x1ea58
call sub.kernel32.dll_GetLastError_1
mov esi, eax
mov byte [ebx + 4], 1
jmp 0x1ea6f
cmp dword [ebp - 0x10], 0
jne 0x1ea66
xor esi, esi
mov byte [ebx + 4], 1
jmp 0x1ea6f
xor esi, esi
jmp 0x1ea6f
mov esi, 0x6e
test esi, esi
jne 0x1ebb0
cmp byte [ebx + 0x14], 2
jne 0x1eb17
lea eax, [ebp - 8]
lea edx, [ebx + 0x18]
mov ecx, 0x2800
call fcn.000144a8
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.000148c4
xor esi, esi
xor eax, eax
jmp 0x1eabe
mov ax, word [ebx + esi*2 + 0x18]
cmp ax, 0xd
je 0x1eab7
cmp ax, 0xa
je 0x1eab7
xor eax, eax
jmp 0x1eab9
mov al, 1
test al, al
jne 0x1eabe
inc esi
cmp esi, 0x27ff
jg 0x1eaca
test al, al
je 0x1eaa2
test al, al
je 0x1eaf1
lea eax, [ebp - 8]
mov edx, esi
call fcn.000148c4
cmp esi, 0x27ff
jge 0x1eaf1
cmp word [ebx + esi*2 + 0x18], 0xd
jne 0x1eaf1
cmp word [ebx + esi*2 + 0x1a], 0xa
jne 0x1eaf1
inc esi
inc esi
mov eax, esi
add eax, eax
add dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebx + 8]
jb 0x1eb05
mov byte [ebx + 4], 1
xor esi, esi
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
call fcn.00014350
jmp 0x1ebb0
cmp byte [ebx + 0x14], 1
jne 0x1ebab
lea eax, [ebp - 0xc]
lea edx, [ebx + 0x18]
mov ecx, 0x2800
call fcn.00013e7c
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.00014200
xor esi, esi
xor eax, eax
jmp 0x1eb59
mov al, byte [ebx + esi + 0x18]
cmp al, 0xd
je 0x1eb52
cmp al, 0xa
je 0x1eb52
xor eax, eax
jmp 0x1eb54
mov al, 1
test al, al
jne 0x1eb59
inc esi
cmp esi, 0x27ff
jg 0x1eb65
test al, al
je 0x1eb42
test al, al
je 0x1eb8a
lea eax, [ebp - 0xc]
mov edx, esi
call fcn.00014200
cmp esi, 0x27ff
jge 0x1eb8a
cmp byte [ebx + esi + 0x18], 0xd
jne 0x1eb8a
cmp byte [ebx + esi + 0x19], 0xa
jne 0x1eb8a
inc esi
inc esi
mov eax, esi
add dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebx + 8]
jb 0x1eb9c
mov byte [ebx + 4], 1
xor esi, esi
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
call fcn.000144c4
jmp 0x1ebb0
mov esi, 0x6e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x1ebd5
lea eax, [ebp - 0xc]
call fcn.00013c3c
lea eax, [ebp - 8]
call fcn.00014314
ret