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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
xor ebx, ebx
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push dword [ebp + 8]
mov dword [ebp - 0x10], ebx
mov dword [eax], ebx
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0xc], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 8], eax
cmp eax, reloc.ADVAPI32.dll_TraceMessage
je 0x464f8b
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, reloc.ADVAPI32.dll_TraceMessage
jne 0x464fac
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x464fa5
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x464fac
mov edi, 0x80004005
test edi, edi
js 0x46526c
cmp esi, 2
jbe 0x4650d0
push ebx
lea eax, [ebp - 0xc]
push eax
push 2
lea eax, [ebp - 4]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x464ff6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x464fef
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x464ff6
mov edi, 0x80004005
cmp dword [ebp - 0xc], 2
je 0x465001
mov edi, 0x80004005
test edi, edi
js 0x46526c
mov eax, 0xfeff
cmp word [ebp - 4], ax
jne 0x46501e
mov al, bl
sub esi, 2
jmp 0x4650d3
cmp esi, 3
jbe 0x46509a
push 2
lea eax, [ebp - 4]
push 0x41bcdc
push eax
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x46509a
push ebx
lea eax, [ebp - 0xc]
push eax
push 1
lea eax, [ebp + 0xb]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x465073
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x46506c
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x465073
mov edi, 0x80004005
xor eax, eax
inc eax
cmp dword [ebp - 0xc], eax
je 0x465080
mov edi, 0x80004005
test edi, edi
js 0x46526c
cmp byte [ebp + 0xb], 0xbf
jne 0x46509a
mov dword [ebp - 0x10], reloc.ADVAPI32.dll_TraceMessage
sub esi, 3
jmp 0x4650d3
push ebx
push ebx
push ebx
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, reloc.ADVAPI32.dll_TraceMessage
jne 0x4650d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x4650c5
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x46526c
mov edi, 0x80004005
xor eax, eax
inc eax
test edi, edi
js 0x46526c
test al, al
je 0x4651ef
lea eax, [esi + 1]
push eax
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
pop ecx
mov dword [ebp - 4], eax
test eax, eax
jne 0x4650fa
mov edi, 0x8007000e
test edi, edi
js 0x46526c
push ebx
lea ecx, [ebp + 8]
push ecx
push esi
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x46513b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x465130
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x4651e3
mov edi, 0x80004005
test edi, edi
js 0x4651e3
push ebx
push ebx
push dword [ebp + 8]
push dword [ebp - 4]
push ebx
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
cmp esi, 0x7ffffffe
ja 0x465170
lea eax, [esi + 1]
call fcn.004634eb
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov eax, ecx
jmp 0x465175
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
cmp dword [eax], ebx
jne 0x46517e
mov edi, 0x8007000e
test edi, edi
js 0x4651e3
cmp dword [ebp + 8], ebx
jbe 0x4651c4
push esi
push dword [eax]
push dword [ebp + 8]
push dword [ebp - 4]
push ebx
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
test ebx, ebx
jne 0x4651c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x4651ba
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x4651db
mov edi, 0x80004005
mov eax, dword [ebp + 0xc]
test edi, edi
js 0x4651db
mov eax, dword [eax]
xor ecx, ecx
mov word [eax + esi*2], cx
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4651e3
mov dword [eax], ebx
jmp 0x4651e3
mov esi, dword [ebp + 0xc]
call fcn.0046354b
push dword [ebp - 4]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
jmp 0x46526c
mov eax, esi
shr eax, 1
inc eax
call fcn.004634eb
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
test eax, eax
jne 0x465207
mov edi, 0x8007000e
test edi, edi
js 0x46526c
push ebx
lea ecx, [ebp + 8]
push ecx
push esi
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x465240
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x465239
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x465264
mov edi, 0x80004005
test edi, edi
js 0x465264
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
shr ecx, 1
xor edx, edx
mov word [eax + ecx*2], dx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x46526c
mov eax, dword [ebp + 8]
shr eax, 1
mov dword [ecx], eax
jmp 0x46526c
mov esi, dword [ebp + 0xc]
call fcn.0046354b
mov eax, dword [ebp - 8]
cmp eax, reloc.ADVAPI32.dll_TraceMessage
je 0x46527b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0xc