Function at 0x4052b0
Capabilities:
Accept command line arguments
Get common file path
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x160
mov eax, dword [0x4a9bf0]
xor eax, esp
mov dword [esp + 0x15c], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x10]
push 0x844
mov dword [0x5225a0], eax
call fcn.0046dc45
add esp, 4
mov dword [0x520090], eax
test eax, eax
je 0x4054b0
push 0x844
push 0
push eax
call fcn.00464960
add esp, 0xc
test eax, eax
je 0x4054b0
push 0x104
push dword [0x520090]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov eax, dword [0x520090]
push 1
push eax
add eax, 0x12c
push eax
call fcn.0040cda0
mov eax, dword [0x520090]
add esp, 0xc
add eax, 0x258
push eax
push 0x12c
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x100
lea eax, [esp + 0x58]
mov dword [esp + 0x44], 0x11c
push 0
push eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.00464960
mov esi, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
add esp, 0xc
xor eax, eax
mov word [esp + 0x156], ax
mov dword [esp + 0x158], eax
push 3
push 0x20
push 3
push 1
push 3
push 2
push eax
push eax
call esi
push edx
push eax
call esi
push edx
push eax
call esi
push edx
push eax
push 0x23
lea eax, [esp + 0x4c]
mov dword [esp + 0x50], 6
xor ecx, ecx
mov dword [esp + 0x54], 2
push eax
mov word [esp + 0x164], cx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
mov eax, dword [0x520090]
jne 0x405402
push 0x30
add eax, 0x12c
push eax
push str.This_program_requires_Windows_8_or_higher
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x15c]
xor ecx, esp
call fcn.0046300c
mov esp, ebp
pop ebp
ret 0x10
add eax, 0x12c
push eax
push 1
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov esi, eax
test esi, esi
je 0x4054a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4054c8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0x491890
call dword [sym.imp.USER32.dll_FindWindowA]
mov esi, eax
test esi, esi
je 0x4054a2
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x40545d
push 9
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push esi
call dword [sym.imp.USER32.dll_SetFocus]
mov dword [esp + 0x30], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov ecx, eax
mov dword [esp + 0x38], ecx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405482
sub ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x30]
push eax
push 0
push 0x4a
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [0x520090]
call fcn.00468056
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x15c]
xor ecx, esp
call fcn.0046300c
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [0x520090]
lea eax, [ecx + 0x394]
push eax
push 0x12b
push str.SoftwareProps_sUsername
lea eax, [ecx + 0x12c]
push eax
push str.SoftwareProps_sUsername
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
push SysReAllocString
call fcn.0040be70
mov ecx, dword [0x520090]
add esp, 0x10
lea eax, [ecx + 0x4c0]
push eax
push 0x12b
push str.SoftwareProps_sEmail
lea eax, [ecx + 0x12c]
push eax
push str.SoftwareProps_sEmail
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
push SysReAllocString
call fcn.0040be70
mov ecx, dword [0x520090]
add esp, 0x10
lea eax, [ecx + 0x5ec]
push eax
push 0x12b
push str.SoftwareProps_sRegPath
lea eax, [ecx + 0x12c]
push eax
push str.SoftwareProps_sRegPath
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
push SysReAllocString
call fcn.0040be70
mov ecx, dword [0x520090]
add esp, 0x10
lea eax, [ecx + 0x718]
push eax
push 0x12b
push str.SoftwareProps_sExecutable
lea eax, [ecx + 0x12c]
push eax
push str.SoftwareProps_sExecutable
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
push SysReAllocString
call fcn.0040be70
push 0
push 0
call fcn.0042ff20
push 0x8b8
push 0
push 0x520660
call fcn.00464960
add esp, 0x24
push 0x1686
push 0
push 0x520f1a
call fcn.00464960
mov ecx, dword [0x520090]
mov eax, 0x20
mov edx, 0x5209fc
mov word [0x520f18], ax
add esp, 0xc
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x405602
or dword [0x520664], 0x38200
push 0x520660
call fcn.0042b4d0
add esp, 4
call fcn.004210e0
call fcn.0042d8f0
call fcn.00432480
mov esi, dword [0x5225a0]
call dword [sym.imp.USER32.dll_GetProcessWindowStation]
lea ecx, [esp + 0x3c]
push ecx
push 0xc
lea ecx, [esp + 0x38]
push ecx
push 1
push eax
call dword [sym.imp.USER32.dll_GetUserObjectInformationA]
mov eax, dword [esp + 0x38]
and eax, 1
push eax
push 0x490b7c
push esi
push esi
call fcn.0041fd60
push eax
call fcn.00421180
add esp, 0x14
test byte [esp + 0x38], 1
jne 0x405688
call fcn.0041fd60
mov dword [eax + 4], 0x60
jmp 0x40569d
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
mov esi, eax
call fcn.0041fd60
mov dword [eax + 0x1e0c], esi
push 0x104
call fcn.0041fd60
add eax, 0x39c
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push str.Props_s
push 1
call fcn.0041fd60
add eax, 0x39c
push eax
push 0
call fcn.0040cda0
add esp, 0xc
push eax
push str.Props_s
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
call fcn.00422d70
add esp, 4
lea eax, [esp + 8]
push eax
push 0x8002
push dword [0x5225a0]
call dword [sym.imp.USER32.dll_GetClassInfoA]
mov eax, dword [0x5225a0]
push str.rdpicon
push eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], 0x491890
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esp + 0x1c], eax
lea eax, [esp + 8]
push eax
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
je 0x4054a2
mov ecx, 0x403b40
call fcn.00403a70
mov ecx, 0x403b80
call fcn.00403a70
call fcn.0040bd70
mov ecx, edi
call fcn.004043f0
test eax, eax
js 0x4054b0
mov ecx, dword [0x520090]
mov eax, dword [ecx + 0x390]
cmp eax, 1
jne 0x405777
call fcn.00404930
jmp 0x4057a3
cmp eax, 2
jne 0x405789
add ecx, 0x718
call fcn.00404a50
jmp 0x4057a3
push 0
push 0x404e00
push 0
push str.EncoderDialog
push dword [0x5225a0]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov ecx, dword [0x520090]
lea eax, [ecx + 0x394]
push eax
push 0
push 1
push str.SoftwareProps_sUsername
lea eax, [ecx + 0x12c]
push eax
push str.SoftwareProps_sUsername
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
push SysReAllocString
call fcn.0040c8d0
mov ecx, dword [0x520090]
add esp, 0x14
lea eax, [ecx + 0x4c0]
push eax
push 0
push 1
push str.SoftwareProps_sEmail
lea eax, [ecx + 0x12c]
push eax
push str.SoftwareProps_sEmail
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
push SysReAllocString
call fcn.0040c8d0
mov ecx, dword [0x520090]
add esp, 0x14
lea eax, [ecx + 0x5ec]
push eax
push 0
push 1
push str.SoftwareProps_sRegPath
lea eax, [ecx + 0x12c]
push eax
push str.SoftwareProps_sRegPath
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
push SysReAllocString
call fcn.0040c8d0
mov ecx, dword [0x520090]
add esp, 0x14
lea eax, [ecx + 0x718]
push eax
push 0
push 1
push str.SoftwareProps_sExecutable
lea eax, [ecx + 0x12c]
push eax
push str.SoftwareProps_sExecutable
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
push SysReAllocString
call fcn.0040c8d0
mov ecx, dword [0x520090]
add esp, 0x14
lea eax, [ecx + 0x388]
push eax
push 0
push 4
push str.SoftwareProps_sFlags
lea eax, [ecx + 0x12c]
push eax
push str.SoftwareProps_sFlags
push 0
push 0
call fcn.0040ad10
add esp, 0x14
push eax
push SysReAllocString
call fcn.0040c8d0
mov ecx, dword [esp + 0x178]
add esp, 0x14
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.0046300c
mov esp, ebp
pop ebp
ret 0x10