Function at 0x45bf20
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x18
mov eax, dword [0x6ab100]
xor eax, esp
mov dword [esp + 0x14], eax
push ebx
push esi
push edi
mov edi, ecx
lea eax, [esp + 0x18]
push edi
push 1
push 4
push eax
call fcn.005f7ecf
add esp, 0x10
mov byte [esp + 0x1c], 0
mov ecx, str.MEKA
lea eax, [esp + 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x45bf73
test dl, dl
je 0x45bf6f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x45bf73
add eax, 2
add ecx, 2
test dl, dl
jne 0x45bf53
xor eax, eax
jmp 0x45bf78
sbb eax, eax
or eax, 1
test eax, eax
je 0x45bfde
mov ecx, str.S8B
lea eax, [esp + 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x45bfa5
test dl, dl
je 0x45bfa1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x45bfa5
add eax, 2
add ecx, 2
test dl, dl
jne 0x45bf85
xor eax, eax
jmp 0x45bfaa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x45bfc7
mov ecx, edi
call fcn.0045c3a0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.005e8cbe
add esp, 0x18
ret
mov eax, 3
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.005e8cbe
add esp, 0x18
ret
push 0
push 5
push edi
call fcn.005f8d0f
add esp, 0xc
lea eax, [esp + 0x12]
push edi
push 1
push 1
push eax
call fcn.005f7ecf
add esp, 0x10
cmp byte [esp + 0x12], 0xe
jbe 0x45c01b
mov eax, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.005e8cbe
add esp, 0x18
ret
push edi
push 1
lea eax, [esp + 0x1b]
push 1
push eax
call fcn.005f7ecf
mov dl, byte [esp + 0x22]
add esp, 0x10
cmp dl, 5
jb 0x45c0cc
movzx eax, byte [esp + 0x13]
cmp eax, dword [0x76c368]
jne 0x45c0e4
cmp dl, 0xc
jb 0x45c062
push edi
push 1
lea eax, [esp + 0x1c]
push 4
push eax
call fcn.005f7ecf
add esp, 0x10
movzx esi, word [0x764134]
mov bl, byte [0x764136]
push edi
push 1
push 0x5c
push 0x764108
call fcn.005f7ecf
mov al, byte [0x764122]
add esp, 0x10
and al, 0x80
mov word [0x764134], si
cmp byte [esp + 0x12], 0xe
mov byte [0x764123], al
mov byte [0x764136], bl
push edi
jb 0x45c0fb
mov eax, dword [0x76c378]
mov ecx, 4
cmp eax, ecx
cmovle eax, ecx
push eax
push 1
push 0x76c370
call fcn.005f7ecf
mov esi, dword [0x76c36c]
add esp, 0x10
jmp 0x45c159
mov ecx, dword [0x76c368]
call fcn.00447f40
movzx ecx, byte [esp + 0x13]
cmp ecx, eax
je 0x45c04b
mov eax, 5
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.005e8cbe
add esp, 0x18
ret
push 4
push 1
push 0x76c370
call fcn.005f7ecf
mov esi, dword [0x76c36c]
xor eax, eax
add esp, 0x10
mov word [0x76c373], ax
mov byte [0x76c375], al
cmp esi, 0xc
je 0x45c129
cmp esi, 0x12
jne 0x45c159
mov cl, byte [0x76c372]
mov dl, byte [0x76c371]
mov al, cl
and al, 0xf
shr cl, 4
mov byte [0x76c370], al
mov al, dl
and al, 0xf
mov byte [0x76c371], cl
shr dl, 4
mov byte [0x76c372], al
mov byte [0x76c373], dl
mov cl, byte [esp + 0x12]
cmp cl, 0xd
jb 0x45c188
push edi
push 1
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.005f7ecf
movzx eax, word [esp + 0x24]
add esp, 0x10
mov cl, byte [esp + 0x12]
mov esi, dword [0x76c36c]
mov dword [0x75fc50], eax
dec esi
cmp esi, 0x27
ja case.0x45c199.4
movzx eax, byte [esi + 0x45c378]
jmp dword [eax*4 + 0x45c354]
mov eax, 0x8000
jmp 0x45c24d
cmp cl, 6
sbb eax, eax
and eax, 0x1c00
add eax, 0x400
jmp 0x45c24d
cmp cl, 6
sbb eax, eax
and eax, 0x1000
add eax, 0x1000
jmp 0x45c24d
push edi
push 1
push 0x1000
push 0x7704f0
call fcn.005f7ecf
add esp, 0x10
mov ecx, 0x789c10
mov eax, 0xc
jmp 0x45c252
push edi
push 1
push 0x10000
push 0x7704f0
call fcn.005f7ecf
add esp, 0x10
mov ecx, 0x7890c0
mov eax, 6
jmp 0x45c252
test byte [0x764160], 0x20
mov eax, 0x4000
mov edx, 0x2000
cmove eax, edx
jmp 0x45c24d
push edi
push 1
push 0x2000
push 0x7704f0
call fcn.005f7ecf
add esp, 0x10
mov ecx, 0x7724f0
mov eax, 0x800
jmp 0x45c252
mov eax, 0x2000
mov ecx, 0x7704f0
mov edx, edi
push edx
push 1
push eax
push ecx
call fcn.005f7ecf
push edi
push 1
push 0x4000
push 0x76c490
call fcn.005f7ecf
mov eax, dword [0x76c368]
add esp, 0x20
sub eax, 0
je 0x45c2a5
sub eax, 1
jne 0x45c2b7
push edi
push 1
push 0x40
push 0x7704b0
call fcn.005f7ecf
push edi
push 1
push 3
push 0x6de280
call fcn.005f7ecf
add esp, 0x20
jmp 0x45c2b7
push edi
push 1
push 0x20
push 0x7704b0
call fcn.005f7ecf
add esp, 0x10
mov al, byte [esp + 0x12]
cmp al, 8
jb 0x45c2cb
movzx edx, al
mov ecx, edi
call fcn.004623c0
jmp 0x45c2d0
call fcn.004625e0
mov al, byte [esp + 0x12]
cmp al, 3
jb 0x45c2e3
mov ecx, edi
call fcn.004621e0
mov al, byte [esp + 0x12]
cmp al, 4
jb 0x45c2fd
push edi
push 1
push 1
push 0x75fc68
call fcn.005f7ecf
mov al, byte [esp + 0x22]
add esp, 0x10
cmp al, 7
jae 0x45c307
shl byte [0x76415f], 1
cmp al, 9
jae 0x45c314
cmp dword [0x76c36c], 4
je 0x45c31f
mov ecx, edi
call fcn.0043b250
mov al, byte [esp + 0x12]
cmp al, 0xa
jae 0x45c33a
mov al, byte [0x764120]
mov cl, al
and al, 0xb7
shr cl, 3
and cl, 8
or cl, al
mov byte [0x764120], cl
mov ecx, dword [esp + 0x20]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005e8cbe
add esp, 0x18
ret