Function at 0x4569d4
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, [0x004ce778]
call fcn.0040d814
mov byte [0x004ce780], al
call fcn.004953b0
call fcn.0045c7d0
call qword [sym.imp.COMCTL32.dll_InitCommonControls]
xor r8d, r8d
mov ecx, 0xc8
mov edx, ecx
call fcn.0040dbfc
xor ebx, ebx
cmp al, bl
sete byte [0x004ce783]
xor ecx, ecx
call qword [sym.imp.ole32.dll_OleInitialize]
lea rcx, [rsp + 0x40]
call fcn.00402868
nop
lea rcx, [rsp + 0x50]
call fcn.00402868
nop
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.00402904
nop
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x60]
call fcn.00483560
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
lea rcx, [rsp + 0x40]
call fcn.00402eac
lea rcx, [rsp + 0x40]
call fcn.00402e58
lea rcx, [rsp + 0x20]
call fcn.00402868
nop
lea rcx, [rsp + 0x30]
call fcn.00402868
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.00483560
lea rcx, [rsp + 0x20]
call fcn.00402eac
lea rcx, [rsp + 0x20]
call fcn.00402e58
lea rcx, [rsp + 0x30]
call fcn.00402eac
lea rcx, [rsp + 0x30]
call fcn.00402e58
lea rdx, [0x0049f700]
mov rcx, qword [rsp + 0x30]
call fcn.00401d50
cmp al, bl
je 0x456b06
mov rdx, qword [rsp + 0x30]
add rdx, 4
lea rcx, [0x004ce7a0]
call fcn.00402a7c
cmp dword [rsp + 0x28], ebx
je 0x456b1d
lea rdx, [rsp + 0x20]
lea rcx, [0x004ce790]
call fcn.00402ae4
call fcn.004054ac
call fcn.004821f0
cmp al, bl
je 0x456b48
call fcn.0040afd8
cmp eax, ebx
jne 0x456b48
mov dl, 1
lea rcx, [0x00497c50]
call fcn.0040af40
mov byte [0x004ce781], al
call qword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 6
jb 0x456b75
mov byte [0x004ce78e], 1
mov dl, 1
lea rcx, str.SeRestorePrivilege
call fcn.0040af40
mov dl, 1
lea rcx, str.SeCreateSymbolicLinkPrivilege
call fcn.0040af40
lea rcx, [0x004ce7b0]
call fcn.0044a978
mov ecx, edi
call fcn.00456738
cmp eax, ebx
jne 0x456bb2
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 0x456c5e
mov edx, 0x48
mov rcx, qword [0x004ce770]
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 0x456c24
lea r8, [rsp + 0x78]
mov rdx, rdi
mov rcx, qword [0x004ce768]
call qword [sym.imp.USER32.dll_TranslateAcceleratorW]
cmp eax, ebx
jne 0x456c0d
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 0x456bde
call fcn.00439654
mov qword [0x004ce768], 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