Function at 0x4d7690
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov edi, eax
test edi, edi
jne 0x4d76ac
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4d76fd
mov eax, dword [edi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x4d76c9
mov esi, dword [edi + 0x18]
lea edx, [esi + 1]
cmp edx, eax
jbe 0x4d76d2
mov esi, dword [edi + 0x18]
sub eax, esi
mov ebx, eax
je 0x4d76ee
lea eax, [esi + ecx]
push ebx
push eax
lea ecx, [esp + 0x1a]
push ecx
call fcn.0060d1b0
add esi, ebx
add esp, 0xc
cmp ebx, 1
mov dword [edi + 0x18], esi
je 0x4d7730
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
mov edx, dword [edi + 4]
push edx
push 1
lea eax, [esp + 0x1a]
push 1
push eax
call fcn.0060860a
add esp, 0x10
test eax, eax
je 0x4d771a
xor eax, eax
jmp 0x4d7728
cmp dword [edi + 4], 0
mov eax, 2
jne 0x4d7728
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x4d7cd1
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4d7781
mov eax, dword [edi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x4d774d
mov esi, dword [edi + 0x18]
lea edx, [esi + 1]
cmp edx, eax
jbe 0x4d7756
mov esi, dword [edi + 0x18]
sub eax, esi
mov ebx, eax
je 0x4d7772
lea eax, [esi + ecx]
push ebx
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.0060d1b0
add esi, ebx
add esp, 0xc
cmp ebx, 1
mov dword [edi + 0x18], esi
je 0x4d77b4
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
mov edx, dword [edi + 4]
push edx
push 1
lea eax, [esp + 0x1c]
push 1
push eax
call fcn.0060860a
add esp, 0x10
test eax, eax
je 0x4d779e
xor eax, eax
jmp 0x4d77ac
cmp dword [edi + 4], 0
mov eax, 2
jne 0x4d77ac
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x4d7cd1
cmp byte [esp + 0x12], 0xff
jne 0x4d7ccc
cmp byte [esp + 0x14], 0xd8
jne 0x4d7ccc
mov byte [esp + 0x13], 0
xor ebp, ebp
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4d781d
mov eax, dword [edi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x4d77ee
mov esi, dword [edi + 0x18]
lea edx, [esi + 1]
cmp edx, eax
jbe 0x4d77fb
mov esi, dword [edi + 0x18]
sub eax, esi
mov ebx, eax
je 0x4d76ee
lea eax, [esi + ecx]
push ebx
push eax
lea ecx, [esp + 0x1a]
push ecx
call fcn.0060d1b0
add esi, ebx
add esp, 0xc
cmp ebx, 1
mov dword [edi + 0x18], esi
jne 0x4d76ee
jmp 0x4d7850
mov edx, dword [edi + 4]
push edx
push 1
lea eax, [esp + 0x1a]
push 1
push eax
call fcn.0060860a
add esp, 0x10
test eax, eax
je 0x4d783a
xor eax, eax
jmp 0x4d7848
cmp dword [edi + 4], 0
mov eax, 2
jne 0x4d7848
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x4d7cd1
add ebp, 1
cmp byte [esp + 0x12], 0xff
jne 0x4d77d1
mov edi, edi
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4d78ac
mov eax, dword [edi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x4d787d
mov esi, dword [edi + 0x18]
lea edx, [esi + 1]
cmp edx, eax
jbe 0x4d788a
mov esi, dword [edi + 0x18]
sub eax, esi
mov ebx, eax
je 0x4d76ee
lea eax, [esi + ecx]
push ebx
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.0060d1b0
add esi, ebx
add esp, 0xc
cmp ebx, 1
mov dword [edi + 0x18], esi
jne 0x4d76ee
jmp 0x4d78df
mov edx, dword [edi + 4]
push edx
push 1
lea eax, [esp + 0x1c]
push 1
push eax
call fcn.0060860a
add esp, 0x10
test eax, eax
je 0x4d78c9
xor eax, eax
jmp 0x4d78d7
cmp dword [edi + 4], 0
mov eax, 2
jne 0x4d78d7
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x4d7cd1
add ebp, 1
cmp byte [esp + 0x14], 0xff
je 0x4d7860
cmp byte [esp + 0x13], 0
je 0x4d793f
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
shr edx, 1
mov eax, dword [eax + edx*4 - 4]
add ebp, 0xfffffffe
add dword [eax + 8], ebp
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0xc]
shr edx, 1
mov edx, dword [eax + edx*4 - 4]
mov eax, dword [ecx + 0x10]
mov edx, dword [edx + 0xc]
shr eax, 1
mov eax, dword [esi + eax*4 - 4]
add edx, dword [eax + 0x14]
mov eax, dword [ecx + 0x10]
shr eax, 1
mov eax, dword [esi + eax*4 - 4]
cmp edx, dword [eax + 8]
mov byte [esp + 0x13], 0
jbe 0x4d793f
mov byte [ecx + 8], 0
mov al, byte [esp + 0x14]
cmp al, 0xda
je 0x4d7c4a
cmp al, 0xd9
je 0x4d7c4a
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4d799f
mov eax, dword [edi + 0x1c]
mov ebx, 2
cmp eax, ebx
jb 0x4d7970
mov esi, dword [edi + 0x18]
lea edx, [esi + 2]
cmp edx, eax
jbe 0x4d797d
mov esi, dword [edi + 0x18]
sub eax, esi
mov ebx, eax
je 0x4d76ee
lea eax, [esi + ecx]
push ebx
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.0060d1b0
add esi, ebx
add esp, 0xc
cmp ebx, 2
mov dword [edi + 0x18], esi
jne 0x4d76ee
jmp 0x4d79d2
mov edx, dword [edi + 4]
push edx
push 1
lea eax, [esp + 0x20]
push 2
push eax
call fcn.0060860a
add esp, 0x10
test eax, eax
je 0x4d79bc
xor eax, eax
jmp 0x4d79ca
cmp dword [edi + 4], 0
mov eax, 2
jne 0x4d79ca
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x4d7cd1
mov cx, word [esp + 0x18]
rol cx, 8
movzx eax, cx
cmp ax, 2
jb 0x4d7ccc
add eax, 0xfffe
mov dword [esp + 0x18], eax
mov eax, edi
call fcn.00410270
mov edx, dword [esp + 0x14]
mov ebx, eax
sub ebx, 4
xor al, al
xor ecx, ecx
cmp ecx, 0x78
jae 0x4d7ac4
cmp dl, byte [ecx + 0x6e8338]
jne 0x4d7a23
cmp dword [ecx + 0x6e8348], 0
je 0x4d7a23
mov al, 1
jmp 0x4d7a25
xor al, al
add ecx, 0x14
test al, al
je 0x4d7a05
mov ebp, dword [esp + 0x2c]
test al, al
mov byte [esp + 0x13], 1
je 0x4d7a5a
movzx eax, word [esp + 0x18]
push edi
push ebx
push edx
push ebp
call fcn.004d7e40
cmp eax, 0xf4240
je 0x4d77cf
test eax, eax
jne 0x4d7cd1
mov eax, 0x1c
call fcn.00457920
mov esi, eax
test esi, esi
je 0x4d769d
movzx edx, word [esp + 0x18]
mov al, byte [esp + 0x14]
mov ecx, ebx
call fcn.004d5220
mov ebp, eax
test ebp, ebp
je 0x4d769d
movzx eax, word [esp + 0x18]
push 0
lea ecx, [ebp + 0x14]
call fcn.00487200
test eax, eax
jne 0x4d7cd1
cmp dword [edi + 0x14], eax
mov ebx, dword [ebp + 0x18]
movzx esi, word [esp + 0x18]
je 0x4d7ba9
mov eax, esi
call fcn.00410220
cmp eax, esi
jne 0x4d76ee
jmp 0x4d7bdb
test al, al
jne 0x4d7a2c
mov ebp, dword [esp + 0x2c]
cmp byte [ebp + 8], al
je 0x4d7a30
mov eax, 0x1c
call fcn.00457920
mov esi, eax
test esi, esi
je 0x4d769d
movzx edx, word [esp + 0x18]
mov al, byte [esp + 0x14]
mov ecx, ebx
call fcn.004d5220
mov esi, eax
test esi, esi
je 0x4d769d
mov eax, dword [ebp + 0x10]
test al, 1
jne 0x4d7b56
shr eax, 1
lea edx, [eax - 1]
test eax, edx
jne 0x4d7b38
add eax, eax
jne 0x4d7b20
mov eax, 1
mov ecx, dword [ebp + 0xc]
add eax, eax
add eax, eax
push eax
push ecx
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [ebp + 0xc], eax
je 0x4d7b56
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
shr edx, 1
mov dword [eax + edx*4], esi
mov eax, dword [ebp + 0x10]
mov ecx, eax
and ecx, 0xfffffffe
add ecx, 2
and eax, 1
xor ecx, eax
mov dword [ebp + 0x10], ecx
cmp dword [edi + 0x14], 0
movzx ecx, word [esp + 0x18]
je 0x4d7b83
mov eax, dword [edi + 0x18]
cmp eax, 0xffffffff
je 0x4d76ee
add eax, ecx
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
mov dword [edi + 0x18], eax
ja 0x4d7b7b
mov eax, ecx
mov dword [edi + 0x18], eax
jmp 0x4d77cf
mov edx, dword [edi + 4]
push 1
push ecx
push edx
call fcn.006081d8
add esp, 0xc
test eax, eax
je 0x4d77cf
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
mov eax, dword [edi + 4]
test eax, eax
je 0x4d7bc5
push eax
push 1
push esi
push ebx
call fcn.0060860a
add esp, 0x10
test eax, eax
je 0x4d7bc5
xor eax, eax
jmp 0x4d7bd3
cmp dword [edi + 4], 0
mov eax, 2
jne 0x4d7bd3
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x4d7cd1
mov eax, dword [esp + 0x2c]
mov byte [ebp + 1], 1
mov eax, dword [eax + 0x10]
test al, 1
jne 0x4d77cf
shr eax, 1
lea ecx, [eax - 1]
test eax, ecx
jne 0x4d7c23
add eax, eax
jne 0x4d7c00
mov eax, 1
mov esi, dword [esp + 0x2c]
lea edx, [eax*4]
mov eax, dword [esi + 0xc]
push edx
push eax
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [esi + 0xc], eax
je 0x4d77cf
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
shr edx, 1
mov dword [eax + edx*4], ebp
mov eax, dword [ecx + 0x10]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [ecx + 0x10], edx
jmp 0x4d77cf
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x10]
shr eax, 1
xor ebp, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebp
cmp dword [ebp + 0x6e8348], 0
je 0x4d7c9a
xor edi, edi
lea eax, [esp + 0x20]
call fcn.00487150
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x1c]
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004d7ce0
lea esi, [esp + 0x20]
mov edi, eax
call fcn.00487190
test edi, edi
jne 0x4d7cc0
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
add dword [esp + 0x18], 1
add ebp, 0x14
cmp ebp, 0x78
jb 0x4d7c5d
mov ecx, dword [ebx + 0x10]
shr ecx, 1
cmp eax, ecx
je 0x4d7cb4
mov byte [ebx + 8], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4