Function at 0x4715e0
Capabilities:
Accept command line arguments
Create directory
Create process on windows
Get session user name

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54216b
mov eax, dword fs:[0]
push eax
sub esp, 0x98
mov eax, dword [0x589ed0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
push 0xffffffffffffffff
call sub.IMM32.dll_ImmDisableIME
push 0
push 3
push 6
call fcn.00408740
add esp, 0xc
test al, al
je 0x471656
push str.shcore.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x471656
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SetProcessDpiAwareness
push esi
call edi
push 1
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x47165c
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea eax, [ebp - 0xa4]
mov dword [ebp - 0xa4], 0x14
push eax
xorps xmm0, xmm0
lea eax, [ebp - 0x3c]
push eax
movups xmmword [ebp - 0x3c], xmm0
movups xmmword [ebp - 0x2c], xmm0
movq qword [ebp - 0x1c], xmm0
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
lea eax, [ebp - 0x3c]
push str.SYSTEM
push eax
call fcn.004e5011
add esp, 8
test eax, eax
jne 0x4716a6
mov eax, 1
jmp 0x471888
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xa0], 8
push eax
mov dword [ebp - 0x9c], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0
push dword [ebp + 8]
mov ecx, 0x58eb14
push 0
call fcn.0046f150
push 0x46f510
call fcn.004e4b69
add esp, 4
push 0x5948d0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [0x5948cc], 0
jne 0x4717ed
push 0x104
push 0x5944c4
push 0
mov byte [0x5948cc], 1
mov dword [0x58ec8c], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
push 0x5944c4
call fcn.004d819d
mov edx, eax
add esp, 8
test edx, edx
je 0x4717ed
mov ecx, edx
mov eax, 0x104
sub ecx, 0x58ec88
sub ecx, 0x583c
push 0xffffffffffffffff
sar ecx, 1
push str._bugreport.exe
sub eax, ecx
push eax
push edx
call fcn.004e4e6f
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push 0xffffffffffffffff
push eax
push 0x1000
push 0x58ef74
call fcn.004e4e6f
push 0xffffffffffffffff
push 0x5679b8
push 0x40
push 0x5943c4
call fcn.004e4e6f
push 0xffffffffffffffff
push str.server
push 0x40
push 0x594444
call fcn.004e4e6f
add esp, 0x30
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push str.bdbugreport__u
push 0xffffffffffffffff
push 0x5946cc
call fcn.0046dfa0
add esp, 0x10
push 0x46eba0
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
xor ecx, ecx
cmp eax, 0x46eba0
cmove eax, ecx
mov dword [0x58ec88], eax
push 0x5948d0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [ebp + 0x10]
mov eax, str._userdir
mov ecx, edx
mov si, word [eax]
cmp si, word [ecx]
jne 0x471828
test si, si
je 0x471824
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x471828
add eax, 4
add ecx, 4
test si, si
jne 0x471802
xor eax, eax
jmp 0x47182d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4718a6
lea eax, [ebp - 0x54]
push eax
call fcn.004280c0
add esp, 4
cmp dword [eax + 0x14], 8
jb 0x471845
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea ecx, [ebp - 0x54]
call fcn.004066a0
lea eax, [ebp - 0x54]
push eax
call fcn.004280c0
add esp, 4
cmp dword [eax + 0x14], 8
jb 0x47186a
mov eax, dword [eax]
push 1
push 0
push 0
push eax
push 0x551c5c
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x54]
call fcn.004066a0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004ba2f5
mov esp, ebp
pop ebp
ret 0x10
mov ecx, edx
mov eax, str._installdir
nop dword [eax]
mov si, word [eax]
cmp si, word [ecx]
jne 0x4718d6
test si, si
je 0x4718d2
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x4718d6
add eax, 4
add ecx, 4
test si, si
jne 0x4718b0
xor eax, eax
jmp 0x4718db
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4718ed
lea eax, [ebp - 0x54]
push eax
call fcn.00471330
jmp 0x47185f
mov byte [ebp - 0x92], 0
mov ecx, edx
mov eax, 0x551d44
nop dword [eax + eax]
mov si, word [eax]
cmp si, word [ecx]
jne 0x471926
test si, si
je 0x471922
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x471926
add eax, 4
add ecx, 4
test si, si
jne 0x471900
xor eax, eax
jmp 0x47192b
sbb eax, eax
or eax, 1
test eax, eax
je 0x47196a
mov eax, str._quit
mov cx, word [eax]
cmp cx, word [edx]
jne 0x47195a
test cx, cx
je 0x471956
mov cx, word [eax + 2]
cmp cx, word [edx + 2]
jne 0x47195a
add eax, 4
add edx, 4
test cx, cx
jne 0x471934
xor eax, eax
jmp 0x47195f
sbb eax, eax
or eax, 1
mov byte [ebp - 0x91], 0
test eax, eax
jne 0x471971
mov byte [ebp - 0x91], 1
lea ecx, [ebp - 0xa0]
call fcn.0043eea0
sub esp, 0x28
mov dword [ebp - 4], 0
mov eax, esp
lea ecx, [ebp - 0xa0]
mov dword [eax + 0x24], 0
call fcn.0043f390
test al, al
je 0x4719b9
cmp byte [ebp - 0x91], 0
mov byte [ebp - 0x92], 1
je 0x4719b9
lea ecx, [ebp - 0xa0]
call fcn.0043f430
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.0043f140
cmp byte [ebp - 0x91], 0
jne 0x471886
cmp byte [ebp - 0x92], 0
jne 0x471886
lea eax, [ebp - 0x54]
push eax
call fcn.004280c0
add esp, 4
cmp dword [eax + 0x14], 8
jb 0x4719f9
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea ecx, [ebp - 0x54]
call fcn.004066a0
lea ecx, [ebp - 0x90]
mov dword [ebp - 4], 1
call fcn.00471f30
push 0
push 0
push 6
mov byte [ebp - 4], 2
call fcn.00408740
add esp, 0xc
test al, al
je 0x471a4b
push str.RegisterApplicationRestart
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call edi
push 0
push 0
call eax
lea ecx, [ebp - 0x90]
call fcn.00472200
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x98], eax
call fcn.00472110
jmp 0x471a85
mov edi, dword [0x5989bc]
add edi, 0x10
mov dword [ebp - 4], 0xffffffff
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x58eb4c]
test esi, esi
je 0x471aee
cmp dword [esi + 4], 0
jle 0x471abc
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x58eb4c]
test esi, esi
je 0x471aee
mov eax, dword [esi]
test eax, eax
je 0x471ad5
push eax
call fcn.004e4691
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.004b9f4f
add esp, 8
push edi
mov dword [0x58eb4c], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x58eb48]
test esi, esi
je 0x471b47
mov eax, dword [esi]
test eax, eax
je 0x471b1e
push eax
call fcn.004e4691
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x471b35
push eax
call fcn.004e4691
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.004b9f4f
add esp, 8
mov esi, dword [0x58eb40]
test esi, esi
je 0x471b79
cmp dword [esi], 0
je 0x471b79
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x471b63
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esi + 0x20]
push 0
mov dword [esi + 0x10], 0
call eax
add esi, 0x24
cmp dword [esi], 0
jne 0x471b56
mov esi, dword [0x58ac44]
mov ecx, dword [0x58ac48]
cmp esi, ecx
jae 0x471baa
nop dword [eax]
mov eax, dword [esi]
test eax, eax
je 0x471ba3
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x58ac48]
add esi, 4
cmp esi, ecx
jb 0x471b90
mov ecx, 0x58eb14
call fcn.00470b90
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [ebp - 0x98]
jmp 0x471888