Function at 0x417fb0
Capabilities:
Accept command line arguments
Check if file exists
Create process on windows
Delete file
Extract resource via kernel32 functions
Get file attributes
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x660
mov eax, dword [0x4739c8]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x104
xorps xmm0, xmm0
mov dword [ebp - 0x648], 0
lea eax, [ebp - 0x20c]
movlpd qword [ebp - 0x658], xmm0
push eax
push 0
movlpd qword [ebp - 0x640], xmm0
movlpd qword [ebp - 0x638], xmm0
movlpd qword [ebp - 0x630], xmm0
mov dword [ebp - 0x628], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x418023
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004297e8
mov esp, ebp
pop ebp
ret
push esi
push edi
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.0043730a
lea eax, [ebp - 0x414]
push 0x2e
push eax
call fcn.0042de8b
xor ecx, ecx
push str.64.exe
push 0x104
mov word [eax], cx
lea eax, [ebp - 0x414]
push eax
call fcn.0043729b
add esp, 0x20
lea eax, [ebp - 0x61c]
push 0x104
push eax
push str._TEMP_
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea eax, [ebp - 0x414]
push 0x5c
push eax
call fcn.0042de8b
push eax
lea eax, [ebp - 0x61c]
push 0x104
push eax
call fcn.0043729b
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.0043730a
add esp, 0x20
push str.BINRES
push str.RCZOOMIT64
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
je 0x4181b4
push edi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push edi
push 0
mov esi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
lea eax, [ebp - 0x20c]
push 0x45cec4
push eax
lea eax, [ebp - 0x620]
push eax
call fcn.004381a2
mov ecx, dword [ebp - 0x620]
add esp, 0xc
test ecx, ecx
je 0x4181b4
push ecx
push edi
push 1
push esi
call fcn.0043ddcf
push dword [ebp - 0x620]
call fcn.0043dada
add esp, 0x14
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x660], 0x3c
mov dword [ebp - 0x65c], 0x140
mov dword [ebp - 0x650], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x64c], eax
lea eax, [ebp - 0x660]
push eax
mov dword [ebp - 0x644], 1
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x4181f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_launching_64_bit_version
push 0
call fcn.0040fb40
add esp, 0xc
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
pop edi
or eax, 0xffffffff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004297e8
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x418137
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_launching_64_bit_version
push 0
call fcn.0040fb40
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004297e8
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
push dword [ebp - 0x628]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x624]
push eax
push dword [ebp - 0x628]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [ebp - 0x628]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x624]
xor ecx, ebp
pop edi
pop esi
call fcn.004297e8
mov esp, ebp
pop ebp
ret