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

Disassembly:
push rbx
push rdi
sub rsp, 0x298
mov rax, qword [0x140015150]
xor rax, rsp
mov qword [rsp + 0x260], rax
xor eax, eax
mov rdi, rcx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x2c], rax
mov dword [rsp + 0x34], eax
xor ecx, ecx
mov eax, 1
mov dword [rsp + 0x24], r9d
mov qword [rsp + 0x38], r8
cpuid
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x2c], ebx
mov dword [rsp + 0x30], ecx
bt edx, 0x19
jae 0x1400017bb
mov qword [rsp + 0x290], rsi
lea rcx, [rsp + 0x52]
xor esi, esi
xor edx, edx
mov r8d, 0x208
mov word [rsp + 0x50], si
call fcn.140002ac0
lea rdx, [rsp + 0x50]
mov r8d, 0x104
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rsp + 0x50]
or rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], si
jne 0x1400014b6
dec eax
movsxd rcx, eax
js 0x140001501
cmp word [rsp + rcx*2 + 0x50], 0x5c
je 0x1400014d7
dec eax
dec rcx
jns 0x1400014c6
jmp 0x140001501
inc eax
lea rdx, str.PotPlayer64.dll
movsxd rcx, eax
add rcx, rcx
sub rcx, rdx
lea rcx, [rsp + rcx + 0x50]
nop
movzx eax, word [rdx]
lea rdx, [rdx + 2]
mov word [rcx + rdx - 2], ax
test ax, ax
jne 0x1400014f0
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
lea rcx, [rsp + 0x20]
call fcn.140001020
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x20]
call fcn.140001040
test al, al
je 0x14000176c
mov qword [rsp + 0x2b8], rbp
mov qword [rsp + 0x288], r12
mov qword [rsp + 0x280], r13
mov ecx, 0x10
mov qword [rsp + 0x278], r14
mov qword [rsp + 0x270], r15
call fcn.140002314
mov rdi, rax
test rax, rax
je 0x14000157d
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 0x140001580
mov rdi, rsi
mov rcx, qword [rdi]
test rcx, rcx
je 0x14000159a
lea rdx, str.PreprocessCmdLineExW
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r13, rax
jmp 0x14000159d
mov r13, rsi
mov rcx, qword [rdi]
test r13, r13
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x1400015c0
lea rdx, str.UninitPotPlayer
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
jmp 0x1400015c3
mov rbp, rsi
mov rcx, qword [rdi]
test rbp, rbp
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x1400015e6
lea rdx, str.CreatePotPlayerExW
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r14, rax
jmp 0x1400015e9
mov r14, rsi
mov rcx, qword [rdi]
test r14, r14
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x14000160c
lea rdx, str.DestroyPotPlayer
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
jmp 0x14000160f
mov r12, rsi
mov rcx, qword [rdi]
test r12, r12
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x140001632
lea rdx, str.RunPotPlayerEx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r15, rax
jmp 0x140001635
mov r15, rsi
mov rcx, qword [rdi]
test r15, r15
setne al
and byte [rdi + 8], al
test rcx, rcx
je 0x140001658
lea rdx, str.SetPotPlayRegKeyW
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
jmp 0x14000165b
mov rbx, rsi
test rbx, rbx
setne al
xor ecx, ecx
and byte [rdi + 8], al
je 0x140001710
lea rdx, str.PotPlayerMini64
call rbx
mov r8d, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov r9d, 1
call r13
test eax, eax
je 0x1400016f6
xor edx, edx
xor ecx, ecx
mov r8d, 0x4003
call r14
mov r14, rax
test rax, rax
je 0x1400016dc
call r15
mov rcx, r14
mov ebx, eax
call r12
call rbp
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, ebx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400016d2
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rdi
call fcn.1400023bc
jmp 0x140001742
call rbp
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400016ec
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rdi
call fcn.1400023bc
jmp 0x140001742
call rbp
mov rcx, qword [rdi]
test rcx, rcx
je 0x140001706
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rdi
call fcn.1400023bc
jmp 0x140001742
lea r8, str.Error
lea rdx, str.Cannot_find_or_init_PotPlayer64.dll
xor r9d, r9d
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rcx, qword [rdi]
test rcx, rcx
je 0x140001735
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rdi
call fcn.1400023bc
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 0x1400017a5
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov rdx, qword [str.PotPlayer64.dll_____._n_n1.______._n2._______._n3._______._n4._IE_________________Kakao_corp.__._n______._n]
mov ecx, 0x3ff
and ax, cx
xor r9d, r9d
xor ecx, ecx
lea r8, str.Error
cmp ax, 0x12
je 0x14000179a
lea rdx, str.PotPlayer64.dll_is_modified_or_hacked...
call qword [sym.imp.USER32.dll_MessageBoxW]
mov esi, 0xfffffffd
lea rcx, [rsp + 0x20]
call fcn.140001030
mov eax, esi
mov rsi, qword [rsp + 0x290]
jmp 0x1400017d8
lea r8, str.Error
lea rdx, str.PotPlayer_need_SSE2_instruction
xor r9d, r9d
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
or rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.140002510
add rsp, 0x298
pop rdi
pop rbx
ret