Function at 0x4602b0
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
mov dword [esp + 0x18], 0x7d0
xor ebp, ebp
lea esi, [ebp + 1]
cmp esi, ecx
jge 0x4602ee
nop
mov eax, dword [esp + 0x54]
mov edx, dword [eax]
lea edi, [esi*4]
mov ebx, dword [edx + edi]
cmp byte [ebx], 0x40
je 0x4602f8
mov ebp, esi
lea esi, [ebp + 1]
cmp esi, ecx
jl 0x4602d0
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
dec dword [esp + 0x18]
je 0x460532
mov dword [esp + 4], 0x48f7b9
inc ebx
mov dword [esp], ebx
call fcn.00471f1c
mov ebx, eax
test eax, eax
je 0x4604c4
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_fseek
inc eax
je 0x4604bc
mov dword [esp], ebx
call sub.msvcrt.dll_ftell
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x4604bc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msvcrt.dll_fseek
inc eax
je 0x4604bc
mov edx, dword [esp + 0x1c]
lea eax, [edx + 1]
mov dword [esp + 0x20], edx
mov dword [esp], eax
call fcn.0045fe8c
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x20]
mov dword [esp + 8], edx
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov edx, dword [esp + 0x20]
cmp edx, eax
je 0x4603b5
test byte [ebx + 0xc], 0x20
jne 0x4604bc
mov ecx, dword [esp + 0x1c]
mov byte [ecx + eax], 0
movzx eax, byte [ecx]
test al, al
je 0x4603ee
test byte [eax + eax + 0x490b80], 0x40
je 0x4604d1
mov edx, ecx
jmp 0x4603e6
test byte [eax + eax + 0x490b80], 0x40
je 0x4604d1
inc edx
movzx eax, byte [edx]
test al, al
jne 0x4603d8
mov dword [esp], 4
call fcn.0045fe8c
mov dword [esp + 0x20], eax
mov dword [eax], 0
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0045ff38
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
mov dword [esp + 0x24], 0
xor edx, edx
mov ecx, dword [esp + 0x50]
mov eax, edx
mov dword [esp + 0x28], edx
add eax, dword [ecx]
lea eax, [eax*4 + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.0045fef8
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx]
sub ecx, esi
shl ecx, 2
mov dword [esp + 8], ecx
lea ecx, [eax + edi + 4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x28]
add esi, edx
lea eax, [eax + esi*4]
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
add eax, edi
mov edi, eax
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov edx, dword [esp + 0x28]
lea eax, [edx + eax - 1]
mov edi, dword [esp + 0x50]
mov dword [edi], eax
mov esi, dword [esp + 0x20]
mov dword [esp], esi
call fcn.00471e04
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.00471e04
mov esi, ebp
lea esi, [esi]
mov dword [esp], ebx
call sub.msvcrt.dll_fclose
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
mov ebp, esi
jmp 0x4602e7
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.0046001c
mov dword [esp + 0x20], eax
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0045ff38
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
mov edx, dword [esp + 0x24]
test edx, edx
je 0x46055c
mov ecx, 4
xor edx, edx
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x20]
jmp 0x46051a
mov ecx, eax
inc edx
lea eax, [ecx + 4]
cmp dword [ebp + ecx], 0
jne 0x460518
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x24], ecx
jmp 0x460426
mov eax, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], str._s:_error:_too_many___files_encountered_n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 1
call fcn.00460608
mov dword [esp + 0x24], 0
jmp 0x460426