Function at 0x140045650
Capabilities:
Accept command line arguments

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x30
mov r14d, r9d
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400458bd
lea rdx, str.SetDefaultDllDirectories
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400458bd
mov ecx, 0x800
call qword [case.0x14005f7f8.0]
cmp eax, 1
jne 0x1400458bd
movzx eax, byte [0x1400fd080]
cmp al, 6
ja 0x1400456cc
mov edx, 6
lea rcx, str._tWinMain_enter
call fcn.140034b80
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [rsp + 0x20], 0x2f
test rax, rax
mov rbx, rax
je 0x14004585c
cmp word [rax], 0
je 0x14004585c
lea rax, [rsp + 0x20]
movzx edx, word [rax]
test dx, dx
je 0x140045710
cmp word [rbx], dx
je 0x14004571b
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
test rax, rax
jne 0x1400456f5
mov rcx, rbx
call qword [sym.imp.USER32.dll_CharNextW]
jmp 0x1400456da
mov rcx, rbx
call qword [sym.imp.USER32.dll_CharNextW]
xor ebp, ebp
test rax, rax
mov rbx, rax
je 0x14004585e
lea rdx, str.UnregServer
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x1400457f0
xor r9d, r9d
xor r8d, r8d
lea edx, [rax + 0x65]
lea rcx, [0x140101060]
call fcn.140023870
lea rcx, [0x140101060]
call fcn.1400326e0
nop
mov rax, qword [0x140106e20]
test rax, rax
je 0x140045782
call qword [case.0x14005f7f8.0]
test eax, eax
js 0x1400457f0
xor ecx, ecx
mov rdi, qword [0x1400fd3e0]
mov rax, qword [0x1400fd3e8]
cmp rdi, rax
jae 0x1400457e1
mov rsi, qword [rdi]
test rsi, rsi
je 0x1400457d4
mov rax, qword [rsi + 0x30]
call qword [case.0x14005f7f8.0]
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsi]
call fcn.14002f700
test eax, eax
js 0x1400457f0
xor ecx, ecx
mov rax, qword [rsi + 8]
call qword [case.0x14005f7f8.0]
mov ecx, eax
test eax, eax
js 0x1400457f0
mov rax, qword [0x1400fd3e8]
add rdi, 8
cmp rdi, rax
jb 0x140045797
test ecx, ecx
js 0x1400457f0
xor edx, edx
mov rcx, qword [0x1400fd3d8]
call fcn.14002fe80
nop
lea rdx, str.Service
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x140045810
call fcn.140032050
mov ebp, 1
nop
cmp word [rbx], 0
je 0x14004585e
lea rax, [rsp + 0x20]
nop dword [rax + rax]
movzx edx, word [rax]
test dx, dx
je 0x14004583b
cmp word [rbx], dx
je 0x14004584e
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
test rax, rax
jne 0x140045820
mov rcx, rbx
call qword [sym.imp.USER32.dll_CharNextW]
mov rbx, rax
test rax, rax
je 0x14004585e
jmp 0x140045810
mov rcx, rbx
call qword [sym.imp.USER32.dll_CharNextW]
jmp 0x140045726
xor ebp, ebp
cmp byte [0x140106e38], 0
jne 0x1400458b4
mov dword [rsp + 0x24], 0
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea r8, [rsp + 0x24]
mov rdx, rax
lea rcx, [0x140101060]
call fcn.140031220
cmp al, 1
jne 0x14004589c
mov edx, r14d
lea rcx, [0x140101060]
call fcn.1400323c0
cmp dword [0x1401012ec], 0
jne 0x1400458b4
cmp byte [0x1401010c2], 0
je 0x1400458b4
call qword [sym.imp.ole32.dll_CoUninitialize]
test ebp, ebp
je 0x1400458bd
call fcn.140030980
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret