Function at 0x4bc860
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x1c
mov eax, dword [0x659a34]
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], esi
test eax, ecx
je 0x4bc915
mov ebp, dword [esp + 0x30]
mov ebx, 2
mov cl, byte [0x6599e6]
lea edx, [esp + 0x1c]
xor edi, edi
push ebp
push edx
mov byte [esp + 0x24], cl
mov byte [esp + 0x25], 0
mov byte [esp + 0x26], 0
mov byte [esp + 0x27], bl
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], 0xff
mov word [esp + 0x2a], di
mov dword [esp + 0x2c], 0x2532
mov word [esp + 0x30], 4
mov word [esp + 0x32], di
call fcn.00487160
mov ecx, eax
call fcn.00482d80
cmp word [ebp + 6], di
je 0x4bc8ec
add esi, 0x10
mov ecx, ebx
mov edi, ebp
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x4bc8f6
mov esi, dword [esp + 0x10]
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4bc887
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp]
pop edi
pop esi
mov dword [eax + 0x10], ecx
mov edx, dword [ebp + 4]
mov dword [eax + 0x14], edx
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c
ret 8
mov ecx, esi
call fcn.00477a30
test eax, eax
je 0x4bca96
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov ebx, dword [sym.imp.MSVCRT.dll__read]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov ebp, 0x14a
mov eax, dword [esi + 4]
lea edx, [esp + 0x1c]
push 0x10
push edx
push eax
call ebx
add esp, 0xc
cmp eax, 0x10
jne 0x4bca5c
mov ax, word [esp + 0x24]
test ax, ax
jne 0x4bc975
cmp word [esp + 0x26], ax
jne 0x4bc93d
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4bca70
jmp 0x4bc93d
cmp ax, 1
jne 0x4bc98e
cmp word [esp + 0x26], bp
jne 0x4bc93d
mov cx, word [esp + 0x28]
mov word [esp + 0x14], cx
jmp 0x4bc9d0
cmp ax, 3
jne 0x4bc93d
mov ax, word [esp + 0x26]
test ax, ax
jne 0x4bc9ff
mov si, word [esp + 0x28]
mov word [esp + 0x16], si
call fcn.0047de30
mov ecx, eax
call fcn.0047e5d0
cmp eax, 0x12c
jne 0x4bc9cc
movsx eax, si
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov word [esp + 0x16], ax
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
lea edx, [edx + ecx*8]
mov word [esp + 0x1a], dx
jmp 0x4bc93d
cmp ax, 1
jne 0x4bca35
mov di, word [esp + 0x28]
mov word [esp + 0x18], di
call fcn.0047de30
mov ecx, eax
call fcn.0047e5d0
cmp eax, 0x12c
jne 0x4bc9d0
movsx eax, di
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov word [esp + 0x18], ax
jmp 0x4bc9d0
cmp ax, 0x35
jne 0x4bca47
mov ax, word [esp + 0x28]
mov word [esp + 0x16], ax
jmp 0x4bc9d0
cmp ax, 0x36
jne 0x4bc9d0
mov cx, word [esp + 0x28]
mov word [esp + 0x18], cx
jmp 0x4bc9d0
test eax, eax
jge 0x4bc93d
mov ecx, esi
call fcn.004bcac0
jmp 0x4bc93d
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
pop edi
mov dword [eax], edx
pop esi
mov dword [eax + 4], ecx
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c
ret 8
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 4]
push 8
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__read]
add esp, 0xc
xor edx, edx
cmp eax, 8
pop edi
pop esi
sete dl
pop ebp
mov eax, edx
pop ebx
add esp, 0x1c
ret 8