Function at 0x43af20
Capabilities:
Accept command line arguments
Check mutex on windows

Disassembly:
sub esp, 0x40
push ebx
push ebp
push esi
xor esi, esi
push edi
mov dword [esp + 0x18], esi
call fcn.00433e70
mov eax, dword [esp + 0x54]
mov dword [0x4b03b4], eax
call fcn.00445570
call fcn.00434270
call fcn.00452040
call fcn.0044c790
call fcn.00451c30
call fcn.00413940
call fcn.0044ac90
call fcn.00437ac0
call fcn.0043f030
call fcn.00442000
call fcn.0043b5e0
call fcn.00440130
push esi
call dword [sym.imp.ole32.dll_OleInitialize]
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x30], 8
mov dword [esp + 0x34], 0x4415
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
cmp dword [esp + 0x5c], esi
je 0x43b121
mov dword [esp + 0x54], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [esp + 0x28]
call fcn.0047bfd0
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x10]
push edx
push eax
call fcn.00402de0
mov ebx, eax
add esp, 8
cmp ebx, esi
je 0x43b118
mov edi, 1
cmp dword [esp + 0x10], edi
jle 0x43b100
mov ebp, 2
nop
mov esi, dword [ebx + edi*4]
mov ecx, esi
mov al, byte [ecx]
cmp al, 0x2d
mov edx, str._svc
jne 0x43b011
test al, al
je 0x43b01b
mov al, byte [ecx + 1]
add ecx, 1
add edx, 1
cmp al, byte [edx]
je 0x43b000
movsx eax, byte [ecx]
movsx ecx, byte [edx]
sub eax, ecx
jne 0x43b02d
mov eax, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x54], eax
jmp 0x43b0ee
mov ecx, esi
mov al, byte [ecx]
cmp al, 0x2d
mov edx, str._install_service
jne 0x43b051
lea ebx, [ebx]
test al, al
je 0x43b05b
mov al, byte [ecx + 1]
add ecx, 1
add edx, 1
cmp al, byte [edx]
je 0x43b040
movsx edx, byte [edx]
movsx eax, byte [ecx]
sub eax, edx
jne 0x43b06d
call fcn.0044be30
mov dword [esp + 0x54], 1
jmp 0x43b0ee
push str._uninstall_service
push esi
call fcn.00402f60
add esp, 8
test eax, eax
jne 0x43b08e
call fcn.0044c060
mov dword [esp + 0x54], 1
jmp 0x43b0ee
cmp ebp, dword [esp + 0x10]
jge 0x43b0ee
push str._instance
push esi
call fcn.00402f60
add esp, 8
test eax, eax
jne 0x43b0b7
mov eax, dword [ebx + edi*4 + 4]
push eax
call fcn.00452290
mov dword [0x4b03c0], eax
jmp 0x43b0eb
push str._config
push esi
call fcn.00402f60
add esp, 8
test eax, eax
je 0x43b0db
push str._ini
push esi
call fcn.00402f60
add esp, 8
test eax, eax
jne 0x43b0ee
mov ecx, dword [ebx + edi*4 + 4]
add edi, 1
push ecx
add ebp, 1
call fcn.0044c760
add esp, 4
add edi, 1
add ebp, 1
cmp edi, dword [esp + 0x10]
jl 0x43aff0
xor esi, esi
push ebx
call fcn.00402f40
add esp, 4
cmp dword [esp + 0x54], esi
je 0x43b118
lea ecx, [esp + 0x24]
jmp 0x43b4a0
lea ecx, [esp + 0x24]
call fcn.0047ca90
call fcn.004518c0
call fcn.0043aaa0
cmp dword [0x4b03c0], esi
jne 0x43b15b
mov ecx, dword [0x4b174c]
mov eax, ecx
cmp byte [eax], 0
je 0x43b148
add eax, 1
cmp byte [eax], 0
jne 0x43b140
sub eax, ecx
je 0x43b15b
push ecx
push esi
call fcn.004533d0
add esp, 8
mov dword [0x4b03c0], eax
cmp dword [0x4b16b4], esi
jne 0x43b1d1
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [0x4b03c0]
cmp eax, esi
je 0x43b1a1
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], esi
call fcn.0047cbb0
mov edx, dword [esp + 0x28]
push edx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
lea ecx, [esp + 0x24]
mov dword [esp + 0x54], eax
call fcn.0047ca90
jmp 0x43b1b2
push str.EVERYTHING_MUTEX
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esp + 0x54], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x43b1d5
mov eax, dword [esp + 0x58]
push eax
call fcn.0043a800
add esp, 4
jmp 0x43b2c3
mov dword [esp + 0x54], esi
mov ecx, dword [0x4b1568]
push ecx
call fcn.00444ad0
add esp, 4
call fcn.0043a920
call fcn.0044b310
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push esi
push 0x43ae70
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.004550a0
add esp, 8
cmp byte [0x4b158c], 0
je 0x43b223
call fcn.00439310
cmp byte [0x4b155c], 0
je 0x43b231
call fcn.0043fe30
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
mov ebp, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
lea esp, [esp]
call dword [sym.imp.USER32.dll_WaitMessage]
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x44]
push ecx
call edi
test eax, eax
je 0x43b250
lea esp, [esp]
push 0
push 0
push 0
lea edx, [esp + 0x40]
push edx
call esi
cmp eax, 0xffffffff
je 0x43b2c1
test eax, eax
je 0x43b2c1
cmp dword [esp + 0x38], 0x12
je 0x43b2c1
lea eax, [esp + 0x34]
push eax
call fcn.0043adb0
add esp, 4
test eax, eax
jne 0x43b2ac
lea ecx, [esp + 0x34]
push ecx
call ebp
lea edx, [esp + 0x34]
push edx
call ebx
push 0
push 0
push 0
push 0
lea eax, [esp + 0x44]
push eax
call edi
test eax, eax
jne 0x43b270
jmp 0x43b250
xor esi, esi
call fcn.00459b50
call fcn.00453b00
call fcn.004385d0
call fcn.0043fd20
call fcn.00417960
mov eax, dword [esp + 0x54]
cmp eax, esi
je 0x43b2eb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x4b03cc], esi
je 0x43b4a5
push 0x20000
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
call fcn.0047be00
push 0x20000
lea ecx, [esp + 0x28]
call fcn.0047be00
push 0x20000
lea ecx, [esp + 0x14]
call fcn.0047be00
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
push edx
push esi
call fcn.00447be0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
push eax
push ecx
push edx
call fcn.0043a4e0
mov eax, dword [esp + 0x2c]
mov byte [eax], 0
add esp, 0x18
xor eax, eax
cmp dword [0x4b03c0], esi
je 0x43b3b5
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push str.__instance__
push esi
push ecx
push edx
call fcn.00434e70
mov ecx, dword [0x4b03c0]
mov edx, dword [esp + 0x20]
push ecx
push eax
mov eax, dword [esp + 0x2c]
push edx
push eax
call fcn.00434e70
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
push 0x49c254
push eax
push ecx
push edx
call fcn.00434e70
add esp, 0x30
cmp dword [0x4b03d0], esi
je 0x43b3d5
mov ecx, dword [esp + 0x14]
push str.__install_start_menu_shortcuts
push eax
mov eax, dword [esp + 0x18]
push eax
push ecx
call fcn.00434e70
add esp, 0x10
cmp dword [0x4b03d4], esi
je 0x43b3f5
mov edx, dword [esp + 0x10]
push str.__install_folder_context_menu
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00434e70
add esp, 0x10
cmp dword [0x4b03d8], esi
je 0x43b415
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push str.__install_desktop_shortcut
push eax
push ecx
push edx
call fcn.00434e70
add esp, 0x10
cmp dword [0x4b03dc], esi
je 0x43b435
mov ecx, dword [esp + 0x14]
push str.__install_quick_launch_shortcut
push eax
mov eax, dword [esp + 0x18]
push eax
push ecx
call fcn.00434e70
add esp, 0x10
cmp dword [0x4b1470], esi
je 0x43b46c
mov edx, dword [esp + 0x10]
push str.__config
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00434e70
mov ecx, dword [0x4b1470]
mov edx, dword [esp + 0x20]
push ecx
push eax
mov eax, dword [esp + 0x2c]
push edx
push eax
call fcn.00434e70
add esp, 0x20
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
push esi
push esi
call fcn.0043a550
add esp, 0x18
lea ecx, [esp + 0x10]
call fcn.0047ca90
lea ecx, [esp + 0x24]
call fcn.0047ca90
lea ecx, [esp + 0x1c]
call fcn.0047ca90
mov eax, dword [0x4b03b8]
cmp eax, esi
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
je 0x43b4c1
push eax
call esi
mov dword [0x4b03b8], 0
mov eax, dword [0x4b03bc]
test eax, eax
je 0x43b4d7
push eax
call esi
mov dword [0x4b03bc], 0
call fcn.0043bd80
call fcn.00440b90
call dword [sym.imp.ole32.dll_OleUninitialize]
call fcn.00445020
call fcn.00437ad0
call fcn.0043f040
call fcn.0044ad20
call fcn.0042b4d0
call fcn.00451c80
call fcn.0044f150
call fcn.0043aaa0
call fcn.00434290
call fcn.00445580
call fcn.00433ea0
cmp dword [esp + 0x18], 0
pop edi
pop esi
pop ebp
pop ebx
je 0x43b52e
call fcn.0044bcf0
mov eax, dword [esp + 0x2c]
add esp, 0x40
ret