Function at 0x41b592
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0x18
mov eax, 0x438563
call fcn.00422682
mov eax, dword [ebp + 8]
xor ebx, ebx
push ebx
push 0x80
push 3
push ebx
push ebx
push 0x80000000
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp - 0x24], 0x443654
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], ebx
cmp edi, 0xffffffff
je 0x41b5e1
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x14], eax
cmp eax, 0xffffffff
jne 0x41b5ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x41b792
mov dword [ebp - 0x10], ebx
inc eax
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x10]
call fcn.0040b63b
mov esi, dword [ebp - 0x10]
test al, al
jne 0x41b60e
push 8
pop ebx
jmp 0x41b78b
push ebx
lea eax, [ebp + 8]
mov dword [ebp + 8], ebx
push eax
push dword [ebp - 0x14]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41b632
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x41b78b
mov edi, dword [ebp + 0x10]
mov ecx, edi
call fcn.0040243c
mov eax, dword [ebp + 8]
test eax, eax
je 0x41b788
mov byte [eax + esi], bl
mov eax, dword [ebp + 0xc]
push str.utf_8
push dword [eax]
call fcn.00428e97
pop ecx
pop ecx
test eax, eax
jne 0x41b669
push 0xfde9
jmp 0x41b77e
mov eax, dword [ebp + 0xc]
push str.utf_16
push dword [eax]
call fcn.00428e97
pop ecx
pop ecx
test eax, eax
jne 0x41b6e9
mov edi, dword [ebp + 8]
shr edi, 1
call fcn.0040219e
push eax
push edi
push esi
lea ecx, [ebp - 0x14]
call fcn.00404770
mov ecx, dword [ebp + 0x10]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x14]
mov edi, dword [ecx]
sub edi, 0x10
lea edx, [eax - 0x10]
mov dword [ebp - 0x18], edi
mov dword [ebp + 0xc], edx
cmp edx, edi
je 0x41b6e2
cmp dword [edi + 0xc], ebx
jl 0x41b6d6
mov edx, dword [edx]
cmp edx, dword [edi]
jne 0x41b6d6
mov ecx, dword [ebp + 0xc]
call fcn.00404f5e
mov ecx, dword [ebp - 0x18]
mov edi, eax
call fcn.00402471
mov ecx, dword [ebp + 0x10]
lea eax, [edi + 0x10]
mov dword [ecx], eax
jmp 0x41b6df
push dword [eax - 0xc]
push eax
call fcn.004026cf
mov edx, dword [ebp + 0xc]
mov ecx, edx
jmp 0x41b776
mov eax, dword [ebp + 0xc]
push str.ISO_8859_1
push dword [eax]
call fcn.00428e97
pop ecx
pop ecx
test eax, eax
jne 0x41b705
push 0x6faf
jmp 0x41b77e
mov eax, dword [ebp + 0xc]
push str.US_ASCII
push dword [eax]
call fcn.00428e97
pop ecx
pop ecx
test eax, eax
jne 0x41b77d
push dword [ebp + 8]
lea ecx, [ebp - 0x14]
push esi
call fcn.0041d577
mov byte [ebp - 4], 3
mov edx, dword [eax]
mov ecx, dword [edi]
sub ecx, 0x10
mov dword [ebp - 0x18], ecx
lea eax, [edx - 0x10]
mov dword [ebp + 0xc], eax
cmp eax, ecx
je 0x41b770
cmp dword [ecx + 0xc], ebx
jl 0x41b765
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x41b765
mov ecx, dword [ebp + 0xc]
call fcn.00404f5e
mov ecx, dword [ebp - 0x18]
mov edi, eax
call fcn.00402471
mov ecx, dword [ebp + 0x10]
lea eax, [edi + 0x10]
mov dword [ecx], eax
jmp 0x41b770
push dword [edx - 0xc]
mov ecx, edi
push edx
call fcn.004026cf
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00402471
jmp 0x41b788
push ebx
mov edx, edi
mov ecx, esi
call fcn.00411d9f
pop ecx
mov edi, dword [ebp - 0x1c]
push esi
call fcn.004221b9
pop ecx
test edi, edi
je 0x41b79d
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
call fcn.0042265c
ret 0xc