Function at 0x446f7c
Capabilities:
Check os version
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x2394]
mov eax, 0x2414
call fcn.004571d0
mov eax, dword [0x47a4b0]
xor eax, ebp
mov dword [ebp + 0x2390], eax
mov eax, dword [ebp + 0x239c]
push ebx
push esi
push edi
push 8
push eax
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov edi, 0x103
push edi
mov dword [ebp - 0x1c], eax
xor esi, esi
lea eax, [ebp + 0x218d]
push esi
push eax
mov byte [ebp + 0x218c], 0
call sub.MSVCR80.dll_memset
add esp, 0xc
mov ebx, 0x104
push ebx
lea eax, [ebp + 0x218c]
push eax
push 0x27ce
push dword [0x47d724]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x447011
cmp byte [ebp + 0x218c], 0
lea eax, [ebp + 0x218c]
je 0x447011
cmp byte [eax], 0x7c
jne 0x44700b
mov byte [eax], 0
inc eax
cmp byte [eax], 0
jne 0x447003
push edi
lea eax, [ebp + 0x2089]
push esi
push eax
mov byte [ebp + 0x2088], 0
call sub.MSVCR80.dll_memset
push 0x58
lea eax, [ebp - 0x80]
push esi
push eax
call sub.MSVCR80.dll_memset
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
add esp, 0x18
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 0x14], 0x9c
call edi
cmp eax, esi
jne 0x44705d
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 0x14], 0x94
call edi
cmp eax, esi
je 0x44706a
cmp dword [ebp - 0x10], 5
mov dword [ebp - 0x80], 0x58
jae 0x447071
mov dword [ebp - 0x80], 0x4c
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x7c], eax
lea eax, [ebp + 0x218c]
mov dword [ebp - 0x74], eax
lea eax, [ebp + 0x2088]
mov dword [ebp - 0x64], eax
lea eax, [ebp + 0x2290]
mov dword [ebp - 0x5c], eax
xor edi, edi
lea eax, [ebp - 0x80]
inc edi
push eax
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x58], 0x100
mov dword [ebp - 0x4c], 0x1004
mov dword [ebp - 0x44], 0x46cc00
call dword [sym.imp.comdlg32.dll_GetOpenFileNameA]
test eax, eax
jne 0x4470ed
call dword [sym.imp.comdlg32.dll_CommDlgExtendedError]
cmp eax, esi
je 0x44729c
push eax
call fcn.00453762
pop ecx
call fcn.0045387a
push eax
push 0x30
push 0x27c9
call fcn.0046708d
push eax
push 0x27cf
jmp 0x44712a
push esi
push 0x28000080
push 3
push esi
push edi
push OleUIPasteSpecialA
lea eax, [ebp + 0x2088]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x20], eax
jne 0x447140
lea eax, [ebp + 0x2290]
push eax
push 0x30
push 0x27c9
call fcn.0046708d
push eax
push 0x27d0
call fcn.0046708d
push eax
push dword [ebp - 0x18]
call fcn.00455173
add esp, 0x14
jmp 0x44729c
lea eax, [ebp - 0x24]
push eax
push esi
push esi
push 8
lea eax, [ebp + 0x2290]
push eax
push str.Query_Template
push dword [ebp - 0x1c]
call dword [sym.imp.NfoMgr4.dll_Nfo_CreateObjectA]
test eax, eax
je 0x447190
call dword [sym.imp.NfoMgr4.dll_Nfo_GetErrorA]
push eax
push 0x30
push 0x27c9
call fcn.0046708d
push eax
push 0x27d1
call fcn.0046708d
push eax
push dword [ebp - 0x18]
call fcn.00455173
add esp, 0x14
jmp 0x44722c
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, 0x2000
jmp 0x4471b7
cmp dword [ebp - 0x28], edi
jne 0x4471cd
push edi
lea eax, [ebp + 0x88]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.NfoMgr4.dll_Nfo_WriteObject]
test eax, eax
jne 0x4471e4
push esi
lea eax, [ebp - 0x28]
push eax
push edi
lea eax, [ebp + 0x88]
push eax
push dword [ebp - 0x20]
call ebx
test eax, eax
jne 0x44719d
push dword [ebp - 0x28]
lea eax, [ebp + 0x88]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.NfoMgr4.dll_Nfo_WriteObject]
test eax, eax
je 0x447237
call dword [sym.imp.NfoMgr4.dll_Nfo_GetErrorA]
push eax
push 0x30
push 0x27c9
call fcn.0046708d
push eax
push 0x27d2
call fcn.0046708d
push eax
push dword [ebp - 0x18]
call fcn.00455173
add esp, 0x14
push dword [ebp - 0x24]
call dword [sym.imp.NfoMgr4.dll_Nfo_CloseObject]
lea eax, [ebp + 0x2290]
push eax
push str.Query_Template
push dword [ebp - 0x1c]
call dword [sym.imp.NfoMgr4.dll_Nfo_DestroyObjectA]
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x44729c
push dword [ebp - 0x24]
call dword [sym.imp.NfoMgr4.dll_Nfo_CloseObject]
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
mov ebx, 0xba
push ebx
push dword [ebp - 0x18]
call edi
lea ecx, [ebp + 0x2290]
push ecx
push esi
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0x180
push eax
mov dword [ebp - 0x1c], eax
call esi
lea eax, [ebp + 0x2290]
push eax
push 0xffffffffffffffff
push 0x18c
push dword [ebp - 0x1c]
call esi
push ebx
push dword [ebp - 0x18]
call edi
push eax
push 0x100ba
push 0x111
push dword [ebp - 0x18]
call esi
mov ecx, dword [ebp + 0x2390]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00456f61
add ebp, 0x2394
leave
ret 4