Function at 0x50fa00
Capabilities:
Accept command line arguments
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x579247
mov eax, dword fs:[0]
push eax
mov eax, 0x4d3c
call fcn.0053fec0
mov eax, dword [0x5bd250]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x4cec], ecx
push 0x590a2d
lea ecx, [ebp - 0xa3c]
call fcn.004065a0
mov dword [ebp - 4], 0
mov dword [ebp - 0x4d14], 0
lea eax, [ebp - 0x4d14]
push eax
push str._test:
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00413b10
add esp, 0xc
cmp dword [ebp - 0x4d14], 0
jne 0x50fb51
mov dword [ebp - 0x4cf4], 0
mov dword [ebp - 0x4cfc], 0
mov dword [ebp - 0x4d00], 0
mov dword [ebp - 0x4d0c], 0
push 0x580020
push str.IDR_SOFTINFO
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x4cf4], eax
cmp dword [ebp - 0x4cf4], 0
je 0x50fb4c
mov ecx, dword [ebp - 0x4cf4]
push ecx
mov edx, dword [0x5c33bc]
push edx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x4cfc], eax
cmp dword [ebp - 0x4cfc], 0
je 0x50fb3f
mov eax, dword [ebp - 0x4cfc]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x4d00], eax
mov ecx, dword [ebp - 0x4cf4]
push ecx
mov edx, dword [0x5c33bc]
push edx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x4d0c], eax
cmp dword [ebp - 0x4d00], 0
je 0x50fb3f
cmp dword [ebp - 0x4d0c], 0
jbe 0x50fb3f
mov eax, dword [ebp - 0x4d00]
push eax
lea ecx, [ebp - 0xa3c]
call fcn.0040e690
mov ecx, dword [ebp - 0x4cf4]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x50fbf4
xor edx, edx
mov word [ebp - 0x21c], dx
push 0x208
push 0
lea eax, [ebp - 0x21a]
push eax
call fcn.0053e230
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x21c]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x21c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.sfInfo.xml
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
push 0
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0xa54]
push edx
call fcn.0041b070
add esp, 0x10
mov dword [ebp - 0x4d20], eax
mov eax, dword [ebp - 0x4d20]
mov dword [ebp - 0x4d24], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x4d24]
push ecx
lea ecx, [ebp - 0xa3c]
call fcn.00424d50
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa54]
call fcn.004066b0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x4d38], esp
lea edx, [ebp - 0xa3c]
push edx
call fcn.00406550
mov dword [ebp - 0x4d1c], eax
mov eax, dword [ebp - 0x4d1c]
mov dword [ebp - 0x4d3c], eax
mov byte [ebp - 4], 2
mov ecx, 0x5c18b0
call fcn.0050e7b0
mov byte [ebp - 4], 0
mov ecx, eax
call fcn.004f8620
lea ecx, [ebp - 0x4ce8]
push ecx
mov ecx, 0x5c18b0
call fcn.0050e7b0
mov ecx, eax
call fcn.004f85d0
movzx edx, al
test edx, edx
je 0x50feb9
xor eax, eax
mov word [ebp - 0xa24], ax
push 0x806
push 0
lea ecx, [ebp - 0xa22]
push ecx
call fcn.0053e230
add esp, 0xc
lea edx, [ebp - 0x3e68]
push edx
push str._____s
push 0x404
lea eax, [ebp - 0xa24]
push eax
call fcn.0041f330
add esp, 0x10
lea ecx, [ebp - 0xa24]
push ecx
push str.softdesc
mov ecx, dword [ebp - 0x4cec]
call fcn.00513520
lea edx, [ebp - 0x42e8]
push edx
push str.softname_1
mov ecx, dword [ebp - 0x4cec]
call fcn.00513520
lea eax, [ebp - 0xe68]
push eax
push str.softsize
mov ecx, dword [ebp - 0x4cec]
call fcn.00513520
lea ecx, [ebp - 0xde8]
push ecx
push str.softlang
mov ecx, dword [ebp - 0x4cec]
call fcn.00513520
lea edx, [ebp - 0x3ee8]
push edx
push str.softver
mov ecx, dword [ebp - 0x4cec]
call fcn.00513520
push 0
lea eax, [ebp - 0xce8]
push eax
call fcn.0054380d
add esp, 8
fstp qword [ebp - 0x4d44]
movsd xmm0, qword [ebp - 0x4d44]
divsd xmm0, qword [0x580580]
movsd qword [ebp - 0x4d30], xmm0
movsd xmm0, qword [0x5a7cb0]
movsd qword [ebp - 0x4d08], xmm0
jmp 0x50fd64
movsd xmm0, qword [ebp - 0x4d08]
addsd xmm0, qword [0x5a7ce8]
movsd qword [ebp - 0x4d08], xmm0
movsd xmm0, qword [0x580578]
comisd xmm0, xmmword [ebp - 0x4d08]
jbe 0x50fe7f
movsd xmm0, qword [ebp - 0x4d30]
comisd xmm0, xmmword [ebp - 0x4d08]
jbe 0x50fe7f
movsd xmm0, qword [ebp - 0x4d08]
addsd xmm0, qword [0x5a7ce8]
comisd xmm0, xmmword [ebp - 0x4d30]
jbe 0x50fdb6
mov dword [ebp - 0x4d10], 1
jmp 0x50fdc0
mov dword [ebp - 0x4d10], 0
mov cl, byte [ebp - 0x4d10]
mov byte [ebp - 0x4ced], cl
lea ecx, [ebp - 0x4cf8]
call fcn.004fe300
mov byte [ebp - 4], 3
movsd xmm0, qword [ebp - 0x4d08]
addsd xmm0, qword [0x5a7ce8]
cvttsd2si edx, xmm0
push edx
push str.SoftLevel__d
lea eax, [ebp - 0x4cf8]
push eax
call fcn.005003f0
add esp, 0xc
movzx ecx, byte [ebp - 0x4ced]
test ecx, ecx
je 0x50fe1b
mov dword [ebp - 0x4d18], str.imageshalfstar.png
jmp 0x50fe25
mov dword [ebp - 0x4d18], 0x5800fc
push ecx
mov ecx, esp
mov dword [ebp - 0x4d48], esp
mov edx, dword [ebp - 0x4d18]
push edx
call fcn.004fe220
mov dword [ebp - 0x4d28], eax
mov eax, dword [ebp - 0x4d28]
mov dword [ebp - 0x4d34], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4cf8]
call fcn.004ff450
push eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x4cec]
call fcn.00513070
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4cf8]
call fcn.004feb20
jmp 0x50fd4c
lea ecx, [ebp - 0xce8]
push ecx
push str.softlevel
mov ecx, dword [ebp - 0x4cec]
call fcn.00513520
push 0
lea edx, [ebp - 0x2468]
push edx
lea eax, [ebp - 0x4ce8]
push eax
push 0
mov ecx, 0x5c18ac
call fcn.005081f0
mov ecx, eax
call fcn.005043c0
mov ecx, 0x5c18b4
call fcn.0050e7d0
mov ecx, eax
call fcn.005156d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa3c]
call fcn.004066b0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0053f9bc
mov esp, ebp
pop ebp
ret