Function at 0x4b4160
Capabilities:
Accept command line arguments
Create directory
Extract resource via kernel32 functions
Get common file path
Read file via mapping
Set file attributes
Terminate thread
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30c
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x308], eax
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x98]
push ebx
push esi
push edi
push ecx
push eax
mov dword [esp + 0xac], 0
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
push dword [esi]
push str.launch
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x4b4204
cmp dword [esp + 0xa4], 2
jne 0x4b4204
push dword [esi + 4]
push 8
push eax
push 4
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
push 8
push 0
push 0
mov ebx, eax
push 0xf001f
push ebx
mov dword [esp + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
mov dword [esp + 0xc], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4b421d
push 1
push dword [edi]
call dword [sym.imp.USER32.dll_SwitchToThisWindow]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x308]
xor ecx, esp
call fcn.004bf1a3
mov esp, ebp
pop ebp
ret 0x10
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea eax, [esp + 0xac]
mov dword [esp + 0xac], 8
push eax
mov dword [esp + 0xb4], 0x4001
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
lea eax, [esp + 0x108]
push eax
push 1
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x4b4366
push str.IOROBOX_oio_
mov edx, 0x104
lea ecx, [esp + 0x10c]
call fcn.004b40b0
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x108]
push 0
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [esp + 0x108]
push 2
push eax
call esi
push 0x4e6ea8
mov edx, 0x104
lea ecx, [esp + 0x10c]
call fcn.004b40b0
push 0
lea eax, [esp + 0x10c]
push eax
call edi
push 2
lea eax, [esp + 0x10c]
push eax
call esi
push 0x4e6eb8
mov edx, 0x104
lea ecx, [esp + 0x10c]
call fcn.004b40b0
push 0
push 2
push 1
push 0
push 0
push 0x40000000
lea eax, [esp + 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
je 0x4b4362
push 0x4e6ed0
push 0x4e6ed8
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push 0
lea ecx, [esp + 0xec]
push ecx
push esi
mov esi, dword [esp + 0x1c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_FreeResource]
push esi
call ebx
mov edi, dword [esp + 0xc]
push 0
lea eax, [esp + 0xd8]
mov dword [esp + 0xd8], 2
push eax
lea eax, [esp + 0xb0]
mov dword [esp + 0xe0], 0
push eax
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
call fcn.004b4520
push 0
lea eax, [esp + 0xb8]
push eax
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xbc]
add ecx, 0xfffffdbc
add eax, ecx
mov ecx, dword [esp + 0xb8]
sar eax, 1
add ecx, 0xfffffd08
mov dword [esp + 0xc4], eax
add eax, 0x244
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xc0]
add eax, ecx
lea ecx, [esp + 0x18]
sar eax, 1
mov dword [esp + 0xc8], eax
add eax, 0x2f8
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xc4]
push eax
push str.GSM
call fcn.004b5db0
mov eax, dword [esp + 0x1c]
push edi
mov dword [edi], eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push 0
push 0
push 0
lea eax, [esp + 0xf8]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x4b449c
mov esi, dword [sym.imp.USER32.dll_TranslateMessage]
mov edi, dword [sym.imp.USER32.dll_DispatchMessageW]
nop dword [eax + eax]
lea eax, [esp + 0xec]
push eax
call esi
lea eax, [esp + 0xec]
push eax
call edi
push 0
push 0
push 0
lea eax, [esp + 0xf8]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x4b4470
push dword [esp + 0x14]
call ebx
push dword [esp + 0xa8]
call dword [sym.imp.gdiplus.dll_GdiplusShutdown]
mov eax, dword [0x4ebb90]
cmp eax, 0xffffffff
je 0x4b44c6
push eax
call ebx
mov dword [0x4ebb90], 0xffffffff
mov eax, dword [0x4ede50]
test eax, eax
je 0x4b44ea
push 1
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push dword [0x4ede50]
call ebx
mov dword [0x4ede50], 0
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0xf4]
test ecx, ecx
je 0x4b4500
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov ecx, dword [esp + 0x314]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004bf1a3
mov esp, ebp
pop ebp
ret 0x10