Function at 0x424960
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 [0x47fc14]
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 0x4249d3
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438d70
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.00443eba
lea eax, [ebp - 0x414]
push 0x2e
push eax
call fcn.0043aaab
xor ecx, ecx
push str.64.exe
push 0x104
mov word [eax], cx
lea eax, [ebp - 0x414]
push eax
call fcn.00443e4b
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.0043aaab
push eax
lea eax, [ebp - 0x61c]
push 0x104
push eax
call fcn.00443e4b
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.00443eba
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 0x424b64
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 0x46a5f4
push eax
lea eax, [ebp - 0x620]
push eax
call fcn.00444d52
mov ecx, dword [ebp - 0x620]
add esp, 0xc
test ecx, ecx
je 0x424b64
push ecx
push edi
push 1
push esi
call fcn.0044a97f
push dword [ebp - 0x620]
call fcn.0044a68a
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 0x424ba3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_launching_64_bit_version
push 0
call fcn.0041a6d0
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.00438d70
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x424ae7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_launching_64_bit_version
push 0
call fcn.0041a6d0
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438d70
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.00438d70
mov esp, ebp
pop ebp
ret