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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
xor ebx, ebx
mov eax, edx
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocStringLen
push ecx
mov dword [ebp - 0xc], eax
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov dword [eax], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x10], eax
cmp eax, 0xffffffff
jne 0x43fccd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43fcc1
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43fcfa
mov esi, 0x80004005
jmp 0x43ffb1
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, 0xffffffff
jne 0x43fcfa
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43fcf3
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43fcfa
mov esi, 0x80004005
test esi, esi
js 0x43ffa2
cmp edi, 2
jbe 0x43fe0e
push ebx
lea eax, [ebp - 0x14]
push eax
push 2
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x43fd41
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43fd3a
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43fd41
mov esi, 0x80004005
cmp dword [ebp - 0x14], 2
je 0x43fd4c
mov esi, 0x80004005
test esi, esi
js 0x43ffa2
mov eax, 0xfeff
cmp word [ebp - 8], ax
jne 0x43fd69
mov al, bl
sub edi, 2
jmp 0x43fe11
cmp edi, 3
jbe 0x43fddb
mov ecx, 0x40b9dc
lea eax, [ebp - 8]
mov ax, word [eax]
cmp ax, word [ecx]
jne 0x43fddb
push ebx
lea eax, [ebp - 0x14]
push eax
push 1
lea eax, [ebp - 1]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x43fdb4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43fdad
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43fdb4
mov esi, 0x80004005
xor eax, eax
inc eax
cmp dword [ebp - 0x14], eax
je 0x43fdc1
mov esi, 0x80004005
test esi, esi
js 0x43ffa2
cmp byte [ebp - 1], 0xbf
jne 0x43fddb
mov dword [ebp - 0x18], 0xfde9
sub edi, 3
jmp 0x43fe11
push ebx
push ebx
push ebx
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x43fe0e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43fe03
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43ffa2
mov esi, 0x80004005
xor eax, eax
inc eax
test esi, esi
js 0x43ffa2
test al, al
je 0x43ff28
lea eax, [edi + 1]
push eax
call fcn.00440dea
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x43fe37
mov esi, 0x8007000e
test esi, esi
js 0x43ffa2
push ebx
lea ecx, [ebp - 8]
push ecx
push edi
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x43fe75
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43fe6a
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43ff1c
mov esi, 0x80004005
mov edi, dword [ebp - 0x1c]
test esi, esi
js 0x43ff1f
push ebx
push ebx
push dword [ebp - 8]
push edi
push ebx
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x7ffffffe
ja 0x43fea8
inc ecx
call fcn.0043f2a1
mov ecx, dword [ebp - 0x1c]
jmp 0x43feaa
mov eax, ebx
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
test eax, eax
jne 0x43feb8
mov esi, 0x8007000e
test esi, esi
js 0x43ff1f
cmp dword [ebp - 8], ebx
jbe 0x43fef8
push ecx
push eax
push dword [ebp - 8]
push edi
push ebx
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
test ebx, ebx
jne 0x43fef5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43feee
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43ff12
mov esi, 0x80004005
mov edx, dword [ebp - 0xc]
test esi, esi
js 0x43ff12
mov eax, dword [edx]
xor edx, edx
mov ecx, dword [ebp - 0x1c]
mov word [eax + ecx*2], dx
mov eax, dword [ebp + 8]
test eax, eax
je 0x43ff1f
mov dword [eax], ebx
jmp 0x43ff1f
mov ecx, dword [ebp - 0xc]
call fcn.0043f314
jmp 0x43ff1f
mov edi, dword [ebp - 0x1c]
push edi
call fcn.00440db7
pop ecx
jmp 0x43ffa2
mov ecx, edi
shr ecx, 1
inc ecx
call fcn.0043f2a1
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
test eax, eax
jne 0x43ff40
mov esi, 0x8007000e
test esi, esi
js 0x43ffa2
push ebx
lea ecx, [ebp - 0x1c]
push ecx
push edi
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x43ff76
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43ff6f
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43ff9a
mov esi, 0x80004005
test esi, esi
js 0x43ff9a
mov eax, dword [ebp - 0xc]
xor edx, edx
mov ecx, dword [ebp - 0x1c]
shr ecx, 1
mov eax, dword [eax]
mov word [eax + ecx*2], dx
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x43ffa2
mov eax, dword [ebp - 0x1c]
shr eax, 1
mov dword [ecx], eax
jmp 0x43ffa2
mov ecx, dword [ebp - 0xc]
call fcn.0043f314
mov eax, dword [ebp - 0x10]
cmp eax, 0xffffffff
je 0x43ffb1
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8