Function at 0x1017a50
Capabilities:
Read file on windows

Disassembly:
push 0x844
mov eax, 0x102fd7b
call fcn.01026060
mov esi, ecx
mov eax, dword [esi + 0xac]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x830]
mov dword [ebp - 0x820], eax
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
xor ebx, ebx
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x828]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x838]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
mov byte [ebp - 4], 2
lea edi, [esi + 0x58]
mov ecx, edi
call dword [sym.imp.MFC80U.DLL_Ordinal_2895]
test eax, eax
je 0x1017f42
push ebx
push 0x100080
push 3
push ebx
push 1
push SysReAllocString
mov ecx, edi
call dword [sym.imp.MFC80U.DLL_Ordinal_870]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x82c], eax
mov dword [ebp - 0x834], eax
mov byte [ebp - 4], 3
cmp eax, 0xffffffff
jne 0x1017b42
mov edi, dword [esi]
push 1
push 1
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, esi
call dword [edi]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x834]
call fcn.01010702
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x838]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x828]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x830]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
xor al, al
call fcn.010260f2
ret
lea eax, [ebp - 0x828]
push eax
lea eax, [ebp - 0x830]
push eax
lea edi, [esi + 0xa0]
lea eax, [ebp - 0x820]
push eax
mov ecx, edi
mov dword [ebp - 0x83c], edi
call fcn.0100e51f
mov ecx, edi
call fcn.01009a6e
lea ecx, [ebp - 0x814]
mov dword [ebp - 0x81c], ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
mov byte [ebp - 4], 4
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
lea eax, [ebp - 0x81c]
push eax
push 0x7fe
lea eax, [ebp - 0x810]
push eax
push dword [ebp - 0x82c]
call edi
test eax, eax
je 0x1017ed0
push ebx
push dword [ebp - 0x81c]
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.ADVAPI32.dll_IsTextUnicode]
push ebx
push ebx
push ebx
push dword [ebp - 0x82c]
mov dword [ebp - 0x84c], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
lea eax, [ebp - 0x81c]
push eax
push 0x7fe
lea eax, [ebp - 0x810]
push eax
push dword [ebp - 0x82c]
call edi
test eax, eax
je 0x1017eac
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov eax, dword [ebp - 0x81c]
cmp eax, ebx
je 0x1017eac
cmp dword [ebp - 0x84c], ebx
jne 0x1017c76
lea eax, [eax + eax + 2]
push eax
push 8
mov dword [ebp - 0x820], 1
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push dword [ebp - 0x81c]
mov esi, eax
push esi
push dword [ebp - 0x81c]
lea eax, [ebp - 0x810]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 0x81c]
push esi
lea ecx, [ebp - 0x814]
mov word [esi + eax*2], bx
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
push esi
push ebx
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1017c9d
shr eax, 1
mov word [ebp + eax*2 - 0x810], bx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x814]
mov dword [ebp - 0x820], 2
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
push 0xa
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_5524]
cmp eax, 0xffffffff
je 0x1017d09
mov esi, dword [ebp - 0x81c]
inc eax
mov ecx, eax
imul ecx, dword [ebp - 0x820]
push eax
lea eax, [ebp - 0x850]
sub esi, ecx
push eax
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_3990]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x850]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
push 1
push ebx
neg esi
push esi
push dword [ebp - 0x82c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea ecx, [ebp - 0x824]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
mov byte [ebp - 4], 6
push ebx
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_860]
cmp ax, 0xfeff
jne 0x1017d62
push 1
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_4100]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x840]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
push ebx
mov esi, 0x1001e8c
push esi
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_2261]
cmp eax, 0xffffffff
lea ecx, [ebp - 0x814]
je 0x1017e53
lea eax, [ebp - 0x820]
push eax
push esi
lea eax, [ebp - 0x844]
push eax
mov dword [ebp - 0x820], ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_6133]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x844]
jmp 0x1017e32
lea ecx, [ebp - 0x824]
call dword [sym.imp.MFC80U.DLL_Ordinal_6161]
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
lea eax, [ebp - 0x828]
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.MFC80U.DLL_Ordinal_870]
mov ecx, dword [ebp - 0x83c]
push eax
call fcn.010086b4
mov ecx, eax
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
lea eax, [ebp - 0x820]
push eax
push esi
lea eax, [ebp - 0x848]
push eax
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_6133]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x848]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
push 0x10016d0
lea ecx, [ebp - 0x824]
call dword [sym.imp.MFC80U.DLL_Ordinal_1472]
test eax, eax
jne 0x1017dbc
jmp 0x1017e74
lea eax, [ebp - 0x828]
push eax
call dword [sym.imp.MFC80U.DLL_Ordinal_870]
mov ecx, dword [ebp - 0x83c]
push eax
call fcn.010086b4
mov ecx, eax
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x824]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
push ebx
lea eax, [ebp - 0x81c]
push eax
push 0x7fe
lea eax, [ebp - 0x810]
push eax
push dword [ebp - 0x82c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1017c04
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x834]
call fcn.01010702
jmp 0x1017f99
mov edi, dword [esi]
push 1
push 1
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, esi
call dword [edi]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x814]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x834]
call fcn.01010702
mov byte [ebp - 0x815], bl
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x838]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x828]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x830]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov al, byte [ebp - 0x815]
jmp 0x1017b3c
lea edi, [esi + 0x54]
mov ecx, edi
call dword [sym.imp.MFC80U.DLL_Ordinal_2895]
test eax, eax
je 0x1017f99
lea eax, [ebp - 0x828]
push eax
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x820]
add esi, 0xa0
push eax
mov ecx, esi
call fcn.0100e51f
mov ecx, esi
call fcn.01009a6e
lea eax, [ebp - 0x828]
push eax
mov ecx, edi
call dword [sym.imp.MFC80U.DLL_Ordinal_870]
push eax
mov ecx, esi
call fcn.010086b4
mov ecx, eax
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
mov byte [ebp - 0x815], 1
jmp 0x1017f08