Function at 0x436110
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x13c
mov eax, dword [0x66c0e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor edi, edi
push 0x220
push edi
push 0x66d5c8
mov dword [ebp - 0x128], edi
call fcn.005bb320
add esp, 0xc
mov dword [ebp - 0x12c], edi
cmp edi, 7
ja 0x4363bd
test edi, edi
jne 0x436167
lea eax, [ebp - 0x20]
push str.ascii.lmf
push eax
call fcn.005bbf72
add esp, 8
jmp 0x436179
push edi
lea ecx, [ebp - 0x20]
push str.ascii__d.lmf
push ecx
call fcn.005bbf72
add esp, 0xc
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x124]
push eax
call fcn.004357a0
lea ecx, [ebp - 0x124]
push 0x5f7dc0
push ecx
call fcn.005bc9d4
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x4363bd
push ebx
call fcn.00489860
add esp, 4
cmp eax, 0x388
jl 0x4363b4
push ebx
push 1
xor eax, eax
lea edx, [ebp - 0xc]
push 5
push edx
mov dword [ebp - 0xc], eax
mov word [ebp - 8], ax
call fcn.005bc8fb
add esp, 0x10
test eax, eax
je 0x4363b4
push 4
lea eax, [ebp - 0xc]
push str.LMWM
push eax
call fcn.005bce9e
add esp, 0xc
test eax, eax
jne 0x4363b4
mov cl, byte [ebp - 8]
mov esi, edi
shl esi, 4
add esi, edi
dec cl
add esi, esi
add esi, esi
neg cl
sbb cl, cl
push eax
and cl, 0x80
add cl, 0xe0
push 0x12
push ebx
mov byte [esi + 0x66d5c9], cl
mov dword [ebp - 0xc], eax
mov word [ebp - 8], ax
call fcn.005bcb9e
push ebx
push 1
lea edx, [ebp - 0xc]
push 4
push edx
call fcn.005bc8fb
add esp, 0x1c
test eax, eax
je 0x4363b4
lea eax, [ebp - 0xc]
push eax
call fcn.00488820
lea edi, [eax + 0x10]
xor eax, eax
push eax
push edi
push ebx
mov dword [ebp - 0xc], eax
mov word [ebp - 8], ax
call fcn.005bcb9e
push ebx
push 1
lea ecx, [ebp - 0xc]
push 2
push ecx
call fcn.005bc8fb
add esp, 0x20
test eax, eax
je 0x4363ae
lea edx, [ebp - 0xc]
push edx
call fcn.00488800
movzx eax, ax
add esp, 4
test al, al
je 0x4363ae
add edi, 2
mov edx, 0x5fb230
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x130], 1
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x134], edx
lea edi, [esi + 0x66d5cc]
jmp 0x4362c0
mov ecx, dword [ebp - 0x130]
mov dword [edi], 0
mov dword [edi + 0x20], 0
test dword [ebp - 0x13c], ecx
je 0x43637b
mov ecx, dword [ebp - 0x138]
movzx edx, word [edx]
mov dword [edi], ecx
movzx eax, byte [esi + 0x66d5c9]
inc edx
imul edx, eax
add ecx, edx
mov dword [ebp - 0x138], ecx
mov ecx, dword [0x66d5c0]
test ecx, ecx
je 0x43637b
mov edx, dword [ebp - 0x128]
add edx, eax
cmp edx, 0x4000
ja 0x43637b
add ecx, dword [ebp - 0x128]
push eax
push 0
push ecx
call fcn.005bb320
mov ecx, dword [edi]
push 0
push ecx
push ebx
call fcn.005bcb9e
movzx edx, byte [esi + 0x66d5c9]
mov eax, dword [0x66d5c0]
add eax, dword [ebp - 0x128]
push ebx
push edx
push 1
push eax
call fcn.005bc8fb
movzx edx, byte [esi + 0x66d5c9]
add esp, 0x28
cmp eax, edx
jne 0x43637b
mov eax, dword [ebp - 0x128]
mov ecx, dword [0x66d5c0]
add ecx, eax
mov dword [edi + 0x20], ecx
movzx edx, byte [esi + 0x66d5c9]
add eax, edx
mov dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x134]
mov eax, dword [ebp - 0x130]
add edx, 2
add edi, 4
rol eax, 1
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x130], eax
cmp edx, str.ascii.lmf
jl 0x4362c0
mov byte [esi + 0x66d5c8], 1
mov edi, dword [ebp - 0x12c]
push ebx
call fcn.005bcc87
add esp, 4
inc edi
mov dword [ebp - 0x12c], edi
cmp edi, 8
jl 0x436147
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005bb30e
mov esp, ebp
pop ebp
ret