Function at 0x4e6cf0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x44
mov eax, dword [0x6d7160]
xor eax, esp
mov dword [esp + 0x3c], eax
push ebx
push ebp
push esi
push edi
mov edi, edx
test edi, edi
mov esi, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
jne 0x4e6d2a
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.00607d6d
add esp, 0x44
ret
mov ecx, dword [edi + 0xc]
cmp ecx, dword [edi + 8]
ja 0x4e7009
mov eax, dword [edi + 4]
add eax, ecx
mov ecx, dword [esi + 0x10]
cmp dword [ecx + 0x14], 0
je 0x4e6dba
mov edx, dword [ecx + 0x1c]
cmp edx, eax
ja 0x4e6d4d
mov eax, edx
mov dword [ecx + 0x18], eax
mov ecx, dword [edi + 0xc]
add ecx, 2
cmp ecx, dword [edi + 8]
ja 0x4e7009
mov esi, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x4e6de5
mov eax, dword [esi + 0x1c]
mov ebx, 2
cmp eax, ebx
jb 0x4e6d7f
mov ecx, dword [esi + 0x18]
lea ebp, [ecx + 2]
cmp ebp, eax
jbe 0x4e6d8c
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x4e7009
add ecx, edx
push ebx
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 2
je 0x4e6e10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.00607d6d
add esp, 0x44
ret
push 0
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.006081d8
add esp, 0xc
test eax, eax
je 0x4e6d50
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.00607d6d
add esp, 0x44
ret
mov eax, dword [esi + 4]
push eax
push 1
lea ecx, [esp + 0x1c]
push 2
push ecx
call fcn.0060860a
add esp, 0x10
test eax, eax
jne 0x4e6e10
cmp dword [esi + 4], eax
jne 0x4e7009
cmp dword [esi + 0xc], eax
jne 0x4e7009
mov ax, word [esp + 0x14]
cmp ax, 0x3e8
movzx edx, ax
lea ecx, [edx + edx*2]
lea ecx, [ecx*4 + 2]
mov dword [esp + 0x24], ecx
ja 0x4e7009
mov esi, dword [edi + 8]
cmp ecx, esi
ja 0x4e7009
mov eax, dword [edi + 0xc]
add ecx, eax
cmp ecx, esi
ja 0x4e7009
test edx, edx
mov dword [edi + 0x10], ecx
mov ecx, dword [edi + 4]
lea ebp, [eax + ecx + 2]
mov dword [esp + 0x18], 0
jbe 0x4e6f41
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 0x10]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x4e6ec4
mov eax, dword [esi + 0x1c]
mov ebx, 0xc
cmp eax, ebx
jb 0x4e6e8a
mov ecx, dword [esi + 0x18]
lea edi, [ecx + 0xc]
cmp edi, eax
mov edi, dword [esp + 0x20]
jbe 0x4e6e93
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x4e6eac
push ebx
add ecx, edx
push ecx
lea eax, [esp + 0x48]
push eax
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 0xc
je 0x4e6eff
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.00607d6d
add esp, 0x44
ret
mov eax, dword [esi + 4]
test eax, eax
je 0x4e6ee5
push eax
push 1
lea ecx, [esp + 0x48]
push 0xc
push ecx
call fcn.0060860a
add esp, 0x10
test eax, eax
je 0x4e6ee5
xor esi, esi
jmp 0x4e6ef5
cmp dword [esi + 4], 0
je 0x4e6ef2
mov esi, 2
jmp 0x4e6ef5
mov esi, dword [esi + 0xc]
test esi, esi
mov eax, esi
jne 0x4e700b
mov ebx, dword [esp + 0x1c]
lea edx, [esp + 0x40]
push edx
mov eax, ebp
mov ecx, edi
mov edx, ebx
call fcn.004eae70
add ebp, 0xc
mov ecx, ebp
mov eax, ebx
call fcn.004e39f0
test eax, eax
jne 0x4e700b
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x14]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x4e6e62
jmp 0x4e6f45
mov ebx, dword [esp + 0x1c]
cmp dword [edi], 0
jne 0x4e7009
mov edx, dword [ebx + 0xc]
shr edx, 9
test dl, 1
je 0x4e7009
mov ecx, dword [esp + 0x24]
mov eax, dword [edi + 8]
lea edx, [ecx + 4]
cmp edx, eax
ja 0x4e7009
mov edx, dword [edi + 0xc]
lea ecx, [edx + ecx + 4]
cmp ecx, eax
ja 0x4e7009
mov esi, dword [ebx + 0x10]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x4e701e
mov eax, dword [esi + 0x1c]
mov ebx, 4
cmp eax, ebx
jb 0x4e6fa2
mov ecx, dword [esi + 0x18]
lea ebp, [ecx + 4]
cmp ebp, eax
jbe 0x4e6fab
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x4e7009
add ecx, edx
push ebx
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 4
jne 0x4e7009
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4e7009
mov edx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [esp + 0x34], eax
add eax, 2
lea esi, [esp + 0x28]
mov edi, ebx
mov dword [esp + 0x28], 0x18
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
mov byte [esp + 0x3c], 0
call fcn.004e3d00
test eax, eax
je 0x4e6d12
xor eax, eax
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00607d6d
add esp, 0x44
ret
mov eax, dword [esi + 4]
push eax
push 1
lea ecx, [esp + 0x20]
push 4
push ecx
call fcn.0060860a
add esp, 0x10
test eax, eax
jne 0x4e6fc8
cmp dword [esi + 4], eax
jne 0x4e7009
cmp dword [esi + 0xc], eax
jne 0x4e7009
jmp 0x4e6fc8