Function at 0x44de80
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
test eax, eax
je 0x44e280
mov edi, dword [ecx]
mov esi, ebp
mov eax, edi
movzx ebx, word [eax + 4]
cmp ebx, 0xfde9
je 0x44e1d0
mov edx, ebx
or edx, 1
cmp edx, 0x4b1
je 0x44e040
cmp edx, 0x2ee1
je 0x44e130
lea ebp, [esp + 0x3a]
cmp ebx, 0xc42b
setbe al
cmp ebx, 0x2a
setne dl
and al, dl
movzx eax, al
shl eax, 3
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
lea esi, [esi]
lea esi, [esi]
mov eax, dword [edi]
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, 1
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fread
dec eax
jne 0x44e240
mov dword [esp], ebx
movzx eax, byte [esp + 0x3a]
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByteEx]
sub esp, 8
test eax, eax
je 0x44e120
mov eax, dword [edi]
mov dword [esp + 0xc], eax
mov eax, 1
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
lea eax, [esp + 0x3b]
mov dword [esp], eax
call sub.msvcrt.dll_fread
dec eax
jne 0x44e240
mov edx, 2
mov dword [esp + 0xc], edx
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], ebp
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 0x28], edx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
sub esp, 0x18
test eax, eax
je 0x44e108
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jae 0x44e278
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x24]
mov dword [esp + 8], ebp
mov dword [esp], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movzx edx, word [esi]
lea esi, [esi + eax*2]
sub esp, 0x18
sub dword [esp + 0x20], eax
dec eax
jne 0x44df00
cmp edx, 0xa
je 0x44dffb
cmp edx, 0xd
jne 0x44df00
mov word [esi], 0
mov eax, dword [esp + 0x20]
lea ecx, [esi - 2]
movzx edx, word [esi - 2]
mov esi, dword [esp + 0x2c]
inc eax
cmp eax, dword [esp + 0x64]
movzx ebx, word [esi + 4]
mov word [esi + 4], dx
jne 0x44e415
xor edx, ebx
cmp edx, 7
jne 0x44e415
mov word [esi + 4], 0
mov eax, dword [esi]
mov esi, ecx
jmp 0x44dea1
mov eax, dword [esp + 0x64]
lea ebp, [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [edi]
mov ecx, 2
mov dword [esp + 8], ecx
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fread
cmp eax, 2
jne 0x44e240
cmp ebx, 0x4b1
movzx eax, word [esp + 0x38]
jne 0x44e094
mov edx, eax
shl edx, 8
shr eax, 8
or eax, edx
movzx eax, ax
mov word [esp + 0x38], ax
lea edx, [eax + 0x2400]
cmp dx, 0x3ff
jbe 0x44e108
cmp dword [esp + 0x20], 1
jbe 0x44e278
mov word [esi], ax
lea edx, [eax + 0x2800]
cmp dx, 0x3ff
jbe 0x44e148
mov edx, 1
mov ecx, eax
and ecx, 0xfffe
cmp ecx, 0xfffe
je 0x44e108
sub eax, 0xfdd0
cmp eax, 0x1f
jbe 0x44e108
movzx eax, word [esi]
lea esi, [esi + edx*2]
sub dword [esp + 0x20], edx
dec edx
jne 0x44e04c
sub eax, 0xa
cmp ax, 3
jbe 0x44dffb
jmp 0x44e04c
mov ebp, esi
mov word [ebp], 0
mov eax, 3
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov edx, 1
jmp 0x44df74
mov word [esi], 0
add esp, 0x4c
mov eax, 4
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov eax, dword [edi]
mov edx, 1
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov eax, 2
mov dword [esp + 8], eax
lea eax, [esp + 0x3a]
mov dword [esp], eax
call sub.msvcrt.dll_fread
cmp eax, 2
jne 0x44e240
cmp ebx, 0x4b1
movzx edx, word [esp + 0x3a]
jne 0x44e194
mov eax, edx
shl eax, 8
shr edx, 8
or edx, eax
movzx edx, dx
mov word [esp + 0x3a], dx
lea eax, [edx + 0x2400]
cmp ax, 0x3ff
ja 0x44e108
movzx eax, word [esp + 0x38]
shl eax, 0xa
cmp dword [esp + 0x20], 2
lea eax, [edx + eax - 0x35fdc00]
je 0x44e278
mov word [esi + 2], dx
mov edx, 2
jmp 0x44e0c5
mov eax, dword [esp + 0x64]
lea ebp, [esp + 0x3a]
mov ebx, esi
mov esi, ebp
mov dword [esp + 0x20], eax
mov eax, dword [edi]
mov ebp, 1
mov dword [esp + 8], ebp
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fread
dec eax
jne 0x44e3e9
movzx eax, byte [esp + 0x3a]
test al, al
js 0x44e260
mov edx, dword [esp + 0x20]
cmp edx, 1
jbe 0x44e3fc
movzx ecx, al
dec edx
mov word [ebx], cx
add ebx, 2
mov dword [esp + 0x20], edx
sub eax, 0xa
cmp ax, 3
ja 0x44e1e0
mov esi, ebx
jmp 0x44dffb
mov ebp, esi
mov word [ebp], 0
add esp, 0x4c
mov eax, 2
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov cl, al
and cl, 0xc0
cmp cl, 0xc0
je 0x44e290
mov ebp, ebx
jmp 0x44e10a
mov ebp, esi
mov word [ebp], 0
mov eax, 1
jmp 0x44e115
mov cl, al
and cl, 0xe0
cmp cl, 0xe0
jne 0x44e3f5
mov cl, al
and cl, 0xf0
cmp cl, 0xf0
jne 0x44e405
mov cl, al
and cl, 0xf8
cmp cl, 0xf8
jne 0x44e40c
and al, 0xfe
cmp al, 0xfc
je 0x44e41c
ja 0x44e26a
mov cl, 4
lea esi, [esi]
nop
movzx eax, cl
mov ebp, esi
mov dword [esp + 0x60], ebx
lea edx, [esp + 0x38]
add eax, esi
mov dword [esp + 0x28], esi
mov ebx, edx
mov esi, eax
mov byte [esp + 0x24], cl
jmp 0x44e30b
movzx eax, byte [esp + 0x38]
mov dl, al
and dl, 0xc0
cmp dl, 0x80
jne 0x44e3e0
mov byte [ebp + 1], al
inc ebp
cmp ebp, esi
je 0x44e340
mov eax, dword [edi]
mov edx, 1
mov ecx, 1
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fread
dec eax
je 0x44e2f0
mov ebp, dword [esp + 0x60]
jmp 0x44e242
movzx ecx, byte [esp + 0x24]
xor eax, eax
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x10], eax
mov eax, 8
mov ebp, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x60]
mov dword [esp], 0xfde9
inc cl
mov dword [esp + 8], esi
movzx edx, cl
mov dword [esp + 0xc], edx
mov dword [esp + 0x24], edx
call ebp
sub esp, 0x18
test eax, eax
je 0x44e26a
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jae 0x44e3fc
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x24]
mov eax, 8
mov dword [esp + 0x10], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
mov dword [esp], 0xfde9
call ebp
mov ecx, eax
sub esp, 0x18
movzx eax, word [ebx]
sub dword [esp + 0x20], ecx
lea ebx, [ebx + ecx*2]
dec ecx
jne 0x44e1e0
jmp 0x44e22b
mov ebp, dword [esp + 0x60]
jmp 0x44e10a
mov ebp, ebx
lea esi, [esi]
nop
jmp 0x44e242
mov cl, 1
jmp 0x44e2d0
mov ebp, ebx
nop
jmp 0x44e27a
mov cl, 2
jmp 0x44e2d0
mov cl, 3
nop
jmp 0x44e2d0
xor eax, eax
jmp 0x44e115
mov cl, 5
nop
jmp 0x44e2d0