Function at 0x153f0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
push ebx
push esi
push edi
push ebp
mov esi, dword [esp + 0x20]
cmp esi, dword [0x20188]
jb 0x15424
mov dword [0x200d0], 9
mov dword [0x200d4], 0
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
sub edi, edi
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
cmp edx, edi
je 0x1560a
mov cl, byte [esi + 0x20190]
test cl, 2
jne 0x1560a
test cl, 0x48
je 0x15465
mov cl, byte [esi + str._n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n]
cmp cl, 0xa
je 0x15465
mov byte [eax], cl
inc eax
mov edi, 1
dec edx
mov byte [esi + str._n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n], 0xa
lea ecx, [esp + 0x18]
push 0
push ecx
push edx
push eax
mov eax, dword [esi*4 + 0x201d0]
push eax
call sub.KERNEL32.dll_ReadFile
or eax, eax
jne 0x154d0
call sub.KERNEL32.dll_GetLastError
cmp eax, 5
jne 0x154a5
mov dword [0x200d0], 9
mov dword [0x200d4], eax
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
cmp eax, 0x6d
jne 0x154b4
sub eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
push eax
call fcn.00014530
add esp, 4
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
add edi, dword [esp + 0x18]
mov cl, byte [esi + 0x20190]
test cl, 0x80
je 0x15600
mov eax, dword [esp + 0x24]
cmp byte [eax], 0xa
jne 0x154f1
or cl, 4
jmp 0x154f4
and cl, 0xfb
mov byte [esi + 0x20190], cl
mov ebp, dword [esp + 0x24]
mov ebx, ebp
mov eax, ebp
add eax, edi
mov dword [esp + 0x14], eax
mov eax, ebp
cmp eax, dword [esp + 0x14]
jae 0x155fa
mov al, byte [ebx]
cmp al, 0x1a
je 0x155e8
cmp al, 0xd
je 0x1552b
mov byte [ebp], al
inc ebx
jmp 0x155db
mov ecx, dword [esp + 0x14]
dec ecx
cmp ecx, ebx
jbe 0x15552
lea ecx, [ebx + 1]
cmp byte [ecx], 0xa
jne 0x15548
add ebx, 2
mov byte [ebp], 0xa
jmp 0x155db
mov byte [ebp], al
mov ebx, ecx
jmp 0x155db
sub edi, edi
lea eax, [esp + 0x18]
push edi
push eax
lea eax, [esp + 0x1b]
push 1
inc ebx
push eax
mov eax, dword [esi*4 + 0x201d0]
push eax
call sub.KERNEL32.dll_ReadFile
cmp eax, edi
jne 0x1557a
call sub.KERNEL32.dll_GetLastError
mov edi, eax
or edi, edi
jne 0x155d7
cmp dword [esp + 0x18], 0
je 0x155d7
test byte [esi + 0x20190], 0x48
je 0x155b0
cmp byte [esp + 0x13], 0xa
jne 0x1559b
mov byte [ebp], 0xa
jmp 0x155db
mov byte [ebp], 0xd
inc ebp
mov al, byte [esp + 0x13]
mov byte [esi + str._n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n], al
jmp 0x155dc
cmp dword [esp + 0x24], ebp
jne 0x155c3
cmp byte [esp + 0x13], 0xa
jne 0x155c3
mov byte [ebp], 0xa
jmp 0x155db
push 1
push 0xffffffffffffffff
push esi
call fcn.00014fb0
add esp, 0xc
cmp byte [esp + 0x13], 0xa
je 0x155dc
mov byte [ebp], 0xd
inc ebp
cmp ebx, dword [esp + 0x14]
jb 0x15514
jmp 0x155fa
mov al, byte [esi + 0x20190]
test al, 0x40
jne 0x155fa
or al, 2
mov byte [esi + 0x20190], al
mov edi, ebp
sub edi, dword [esp + 0x24]
mov eax, edi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
sub eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret