Function at 0x140003030
Capabilities:
Link many functions at runtime
Terminate process

Disassembly:
push rbx
push rdi
sub rsp, 0x298
mov rax, qword [0x1400180e0]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov rdi, rcx
mov qword [rsp + 0x40], rcx
xor ecx, ecx
mov dword [rsp + 0x24], r9d
mov eax, 1
mov qword [rsp + 0x38], r8
cpuid
bt edx, 0x1a
jae 0x140003385
xor edx, edx
mov qword [rsp + 0x290], rsi
mov r8d, 0x20a
lea rcx, [rsp + 0x50]
call fcn.140004840
mov r8d, 0x104
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rsp + 0x50]
or rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400030b0
sub eax, 1
movsxd rcx, eax
js 0x1400030f1
cmp word [rsp + rcx*2 + 0x50], 0x5c
je 0x1400030d4
dec eax
sub rcx, 1
jns 0x1400030c2
jmp 0x1400030f1
movups xmm0, xmmword [str.PotPlayer64.dll]
inc eax
movups xmm1, xmmword [0x14000e570]
movsxd rcx, eax
movups xmmword [rsp + rcx*2 + 0x50], xmm0
movups xmmword [rsp + rcx*2 + 0x60], xmm1
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
jmp 0x14000311a
mov qword [rsp + 0x2b8], rbp
mov ecx, 0x10
mov qword [rsp + 0x288], r12
mov qword [rsp + 0x280], r13
mov qword [rsp + 0x278], r14
mov qword [rsp + 0x270], r15
call fcn.140003a08
xor esi, esi
mov rdi, rax
test rax, rax
je 0x14000316f
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
mov qword [rdi], rax
setne al
mov byte [rdi + 8], al
jmp 0x140003172
mov rdi, rsi
mov rcx, qword [rdi]
test rcx, rcx
je 0x14000318c
lea rdx, str.PreprocessCmdLineExW
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r13, rax
jmp 0x14000318f
mov r13, rsi
mov rcx, qword [rdi]
test r13, r13
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x1400031b2
lea rdx, str.UninitPotPlayer
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
jmp 0x1400031b5
mov rbp, rsi
mov rcx, qword [rdi]
test rbp, rbp
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x1400031d8
lea rdx, str.CreatePotPlayerExW
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r14, rax
jmp 0x1400031db
mov r14, rsi
mov rcx, qword [rdi]
test r14, r14
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x1400031fe
lea rdx, str.DestroyPotPlayer
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
jmp 0x140003201
mov r12, rsi
mov rcx, qword [rdi]
test r12, r12
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x140003224
lea rdx, str.RunPotPlayerEx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r15, rax
jmp 0x140003227
mov r15, rsi
mov rcx, qword [rdi]
test r15, r15
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x14000324a
lea rdx, str.SetPotPlayRegKeyW
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
jmp 0x14000324d
mov rbx, rsi
test rbx, rbx
setne al
and byte [rdi + 8], al
je 0x1400032d3
lea rdx, str.PotPlayerMini64
xor ecx, ecx
call rbx
mov r8d, dword [rsp + 0x24]
mov r9d, 1
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
call r13
test eax, eax
je 0x1400032b4
xor edx, edx
xor ecx, ecx
mov r8d, 0x4003
call r14
mov r14, rax
test rax, rax
je 0x1400032b4
call r15
mov rcx, r14
mov ebx, eax
call r12
call rbp
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x1400032b6
call rbp
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400032c4
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edx, 0x10
mov rcx, rdi
call fcn.140003a44
jmp 0x14000330c
xor r9d, r9d
lea r8, str.Error
lea rdx, str.Cannot_find_or_init_PotPlayer64.dll
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400032fa
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edx, 0x10
mov rcx, rdi
call fcn.140003a44
mov esi, 0xfffffffe
mov r15, qword [rsp + 0x270]
mov r14, qword [rsp + 0x278]
mov r13, qword [rsp + 0x280]
mov r12, qword [rsp + 0x288]
mov rbp, qword [rsp + 0x2b8]
jmp 0x14000336f
lea rcx, [rsp + 0x20]
call fcn.140004680
mov eax, esi
mov rsi, qword [rsp + 0x290]
jmp 0x1400033a2
xor r9d, r9d
lea r8, str.Error
lea rdx, str.PotPlayer_need_SSE2_instruction
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
or rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.140003d80
add rsp, 0x298
pop rdi
pop rbx
ret