Function at 0x45b688
Capabilities:
Accept command line arguments
Check os version

Disassembly:
push rbx
push rdi
sub rsp, 0xb8
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov edi, ecx
lea rcx, [0x004d6788]
call fcn.0040d8b8
mov byte [0x004d6790], al
call fcn.0049b260
call fcn.004614a8
call qword [sym.imp.COMCTL32.dll_InitCommonControls]
xor r8d, r8d
mov ecx, 0xc8
mov edx, ecx
call fcn.0040dcac
xor ebx, ebx
cmp al, bl
sete byte [0x004d6794]
xor ecx, ecx
call qword [sym.imp.ole32.dll_OleInitialize]
lea rcx, [rsp + 0x40]
call fcn.004028ec
nop
lea rcx, [rsp + 0x50]
call fcn.004028ec
nop
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.00402988
nop
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x60]
call fcn.00488f64
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
lea rcx, [rsp + 0x40]
call fcn.00402f30
lea rcx, [rsp + 0x40]
call fcn.00402edc
lea rcx, [rsp + 0x20]
call fcn.004028ec
nop
lea rcx, [rsp + 0x30]
call fcn.004028ec
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.00488f64
lea rcx, [rsp + 0x20]
call fcn.00402f30
lea rcx, [rsp + 0x20]
call fcn.00402edc
lea rcx, [rsp + 0x30]
call fcn.00402f30
lea rcx, [rsp + 0x30]
call fcn.00402edc
lea rdx, [0x004a5d80]
mov rcx, qword [rsp + 0x30]
call fcn.00401dd4
cmp al, bl
je 0x45b7ba
mov rdx, qword [rsp + 0x30]
add rdx, 4
lea rcx, [0x004d67b0]
call fcn.00402b00
cmp dword [rsp + 0x28], ebx
je 0x45b7d1
lea rdx, [rsp + 0x20]
lea rcx, [0x004d67a0]
call fcn.00402b68
call fcn.004054dc
call fcn.00487bfc
cmp al, bl
je 0x45b7fc
call fcn.0040b014
cmp eax, ebx
jne 0x45b7fc
mov dl, 1
lea rcx, [0x0049dc60]
call fcn.0040af7c
mov byte [0x004d6792], al
call qword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 6
jb 0x45b829
mov byte [0x004d679e], 1
mov dl, 1
lea rcx, str.SeRestorePrivilege
call fcn.0040af7c
mov dl, 1
lea rcx, str.SeCreateSymbolicLinkPrivilege
call fcn.0040af7c
lea rcx, [0x004d67c0]
call fcn.0044af48
mov ecx, edi
call fcn.0045b3ec
cmp eax, ebx
jne 0x45b866
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x20]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x50]
call sub.msvcrt.dll_free
nop
jmp 0x45b912
mov edx, 0x48
mov rcx, qword [0x004d6780]
call qword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov rdi, rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_GetMessageW]
cmp eax, ebx
je 0x45b8d8
lea r8, [rsp + 0x78]
mov rdx, rdi
mov rcx, qword [0x004d6778]
call qword [sym.imp.USER32.dll_TranslateAcceleratorW]
cmp eax, ebx
jne 0x45b8c1
lea rcx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_DispatchMessageW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x78]
call qword [sym.imp.USER32.dll_GetMessageW]
cmp eax, ebx
jne 0x45b892
call fcn.00439b24
mov qword [0x004d6778], rbx
call qword [sym.imp.ole32.dll_OleUninitialize]
mov ebx, dword [rsp + 0x88]
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x20]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x50]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x40]
call sub.msvcrt.dll_free
mov eax, ebx
add rsp, 0xb8
pop rdi
pop rbx
ret