Function at 0x4c9a30
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x28
push ebx
mov ebx, dword [esp + 0x30]
push ebp
push esi
push edi
lea ebp, [ebx + 0x3c]
mov dword [ebx + 0x38], 0
mov dword [ebp], 0
lea esp, [esp]
mov eax, dword [ebx + 0x48]
test byte [eax], 8
je 0x4c9ce5
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4c9a72
push 1
lea eax, [esp + 0x40]
push eax
push ebx
call ecx
add esp, 0xc
jmp 0x4c9a86
push dword [eax + 0x38]
lea eax, [esp + 0x40]
push 1
push 1
push eax
call fcn.0050bb27
add esp, 0x10
cmp eax, 1
jne 0x4c9cd4
mov al, byte [esp + 0x3c]
cmp al, 0x21
je 0x4c9ab1
cmp al, 0x2c
je 0x4c9aaa
cmp al, 0x3b
jne 0x4c9cb6
mov eax, 4
jmp 0x4c9ab6
mov eax, 2
jmp 0x4c9ab6
mov eax, 3
mov ecx, eax
sub ecx, 2
je 0x4c9bb2
sub ecx, 1
je 0x4c9ae6
cmp eax, 4
jne 0x4c9a50
cmp dword [ebx + 0x18], 0
jne 0x4c9cc7
pop edi
pop esi
pop ebp
mov dword [ebx + 0x40], 0x69
xor eax, eax
pop ebx
add esp, 0x28
ret
mov eax, dword [ebx + 0x48]
test byte [eax], 8
je 0x4c9ce5
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4c9b08
push 1
lea eax, [esp + 0x17]
push eax
push ebx
call ecx
add esp, 0xc
jmp 0x4c9b1c
push dword [eax + 0x38]
lea eax, [esp + 0x17]
push 1
push 1
push eax
call fcn.0050bb27
add esp, 0x10
cmp eax, 1
jne 0x4c9cd4
movzx esi, byte [esp + 0x13]
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.004c90d0
add esp, 8
test eax, eax
je 0x4c9cec
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4c9a50
lea eax, [ecx + 1]
push eax
movzx eax, byte [ecx]
push eax
push esi
push ebp
lea esi, [ebx + 0x38]
push esi
call fcn.004c9d60
add esp, 0x14
test eax, eax
je 0x4c9cec
lea ebx, [ebx]
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.004c90d0
add esp, 8
test eax, eax
je 0x4c9cec
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4c9a50
lea eax, [ecx + 1]
push eax
movzx eax, byte [ecx]
push eax
push 0
push ebp
push esi
call fcn.004c9d60
add esp, 0x14
test eax, eax
jne 0x4c9b70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push ebx
call fcn.004c9180
add esp, 4
test eax, eax
je 0x4c9cec
mov eax, dword [ebx + 0x18]
lea ecx, [eax + eax*8]
mov eax, dword [ebx + 0x34]
mov ebp, dword [eax + ecx*4 - 0x1c]
lea edi, [eax + ecx*4]
test ebp, ebp
jns 0x4c9bee
mov ecx, dword [edi - 0x18]
test ecx, ecx
jns 0x4c9bee
mov eax, 0x7fffffff
cdq
idiv ecx
cmp ebp, eax
jg 0x4c9cec
mov esi, dword [edi - 0x18]
imul esi, ebp
push 1
push esi
push 0
call fcn.004c9fb0
add esp, 0xc
mov dword [edi - 0xc], eax
test eax, eax
je 0x4c9cec
cmp byte [edi - 0x14], 0
je 0x4c9c8b
mov dword [esp + 0x18], 0
xor ebp, ebp
mov dword [esp + 0x1c], 4
mov dword [esp + 0x20], 2
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], 8
mov dword [esp + 0x30], 4
mov dword [esp + 0x34], 2
mov esi, dword [esp + ebp + 0x18]
cmp esi, dword [edi - 0x18]
jge 0x4c9c81
lea ecx, [ecx]
mov eax, dword [edi - 0x1c]
push eax
imul eax, esi
add eax, dword [edi - 0xc]
push eax
push ebx
call fcn.004c9480
add esp, 0xc
test eax, eax
je 0x4c9cec
add esi, dword [esp + ebp + 0x28]
cmp esi, dword [edi - 0x18]
jl 0x4c9c60
add ebp, 4
cmp ebp, 0x10
jl 0x4c9c54
jmp 0x4c9c9a
push esi
push eax
push ebx
call fcn.004c9480
add esp, 0xc
test eax, eax
je 0x4c9cec
mov eax, dword [ebx + 0x3c]
lea ebp, [ebx + 0x3c]
test eax, eax
je 0x4c9a50
mov dword [edi - 4], eax
mov eax, dword [ebx + 0x38]
mov dword [edi - 8], eax
jmp 0x4c9a3e
pop edi
pop esi
pop ebp
mov dword [ebx + 0x40], 0x6b
xor eax, eax
pop ebx
add esp, 0x28
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x28
ret
pop edi
pop esi
pop ebp
mov dword [ebx + 0x40], 0x66
xor eax, eax
pop ebx
add esp, 0x28
ret
mov dword [ebx + 0x40], 0x6f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret