Function at 0x66587bb0
Capabilities:
Read file on windows

Disassembly:
sal byte [ebp - 0xa], 1
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], 0
mov dword [esp + 4], ebp
mov dword [esp], edi
mov dword [esp + 8], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub esp, 0x14
test eax, eax
je 0x66587d56
mov eax, dword [0x6667b890]
mov edi, dword [esp + 0x4c]
add edi, ebp
add ebp, eax
xor eax, eax
mov edx, dword [ebp]
mov ecx, dword [ebp + 4]
test edx, edx
je 0x66587c11
nop
add dword [ebp + eax*4 + 8], ecx
add eax, 1
cmp eax, edx
jne 0x66587c06
mov esi, dword [0x6667b858]
mov ecx, dword [esp + 0x2c]
add ebp, esi
test ecx, ecx
je 0x66587e56
movsx esi, byte [ebp]
mov dword [esp], ebx
add esi, ebp
lea eax, [esi + 1]
mov dword [esp + 4], eax
call fcn.66587926
mov dword [esp + 0x30], eax
test eax, eax
je 0x66587e16
movsx ebx, byte [esi]
add ebx, esi
lea eax, [ebx + 1]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
sub esp, 4
mov esi, eax
test eax, eax
je 0x66587dd6
jb 0x66587c63
add byte [eax], al
movsx eax, byte [ebx]
lea edx, [esp + 0x50]
mov dword [esp + 0x50], 0
add eax, ebx
mov ebx, dword [0x6667b868]
mov ecx, dword [eax + 4]
add ebx, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 8]
mov eax, dword [esi + 0x3c]
lea ebp, [ebx + ecx]
mov dword [esp + 0x34], ecx
add esi, dword [esi + eax + 0x2c]
mov dword [esp + 0xc], edx
mov eax, dword [0x6667b874]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
call eax
mov eax, esi
sub esp, 0x10
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x50]
test ecx, ecx
je 0x66587cda
mov dword [esp + 0x34], ecx
nop
movzx ecx, byte [ebx]
add ebx, 1
add eax, 1
mov byte [eax - 1], cl
cmp ebp, ebx
jne 0x66587cc6
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x50]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
call eax
mov ecx, dword [0x6667b880]
xor eax, eax
sub esp, 0x10
add esi, dword [esp + 0x2c]
cmp byte [ecx], 0
je 0x66587ea6
mov edx, dword [0x6667b880]
movsx dx, byte [edx + eax]
mov word [edi + eax*2], dx
mov edx, dword [0x6667b880]
add eax, 1
cmp byte [edx + eax], 0
jne 0x66587d0b
lea eax, [edi + eax*2]
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0x54]
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], ebp
mov byte [esp + 0x5c], 1
mov dword [esp], eax
call esi
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x6667b880]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
call eax
sub esp, 0x10
mov dword [esp], 0
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
jmp 0x66587beb
mov eax, dword [0x6667b880]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
call eax
sub esp, 0x10
mov dword [esp], 0
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
jmp 0x66587c64
mov eax, dword [0x6667b880]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
call eax
sub esp, 0x10
mov dword [esp], 0
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
jmp 0x66587c46
mov eax, dword [0x6667b880]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
call eax
sub esp, 0x10
mov dword [esp], 0
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
jmp 0x66587c25
mov eax, edi
jmp 0x66587d2c