Function at 0x140012e00
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x1010]
mov eax, 0x1110
call fcn.140038d50
sub rsp, rax
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x1150], rbx
mov rax, qword [0x14007bec0]
xor rax, rsp
mov qword [rbp + 0x1000], rax
mov rax, rdx
mov rbx, rcx
cmp qword [rcx + 8], 0
je 0x140012e9d
cmp qword [rcx + 0x10], 0
je 0x140012e9d
cmp qword [rcx + 0x18], 0
je 0x140012e9d
cmp qword [rcx + 0x20], 0
je 0x140012e9d
cmp qword [rcx + 0x28], 0
je 0x140012e9d
cmp qword [rcx + 0x30], 0
je 0x140012e9d
cmp qword [rcx + 0x38], 0
je 0x140012e9d
cmp qword [rcx + 0x40], 0
je 0x140012e9d
cmp qword [rcx + 0x48], 0
je 0x140012e9d
cmp qword [rcx + 0x50], 0
je 0x140012e9d
cmp qword [rcx + 0x58], 0
je 0x140012e9d
cmp qword [rcx + 0x68], 0
jne 0x1400138ee
mov qword [rsp + 0x78], 7
xor r14d, r14d
mov qword [rsp + 0x70], r14
mov word [rsp + 0x60], r14w
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.1400214d0
mov qword [rbp - 0x38], 7
mov qword [rbp - 0x40], r14
mov word [rbp - 0x50], r14w
lea r8d, [r14 + 0xd]
lea rdx, str.DongleX64.dll
lea rcx, [rbp - 0x50]
call fcn.140002b60
nop
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x38]
call fcn.140020d10
nop
cmp qword [rbp - 0x38], 8
jb 0x140012f0b
mov rcx, qword [rbp - 0x50]
call fcn.140033ccc
mov qword [rbp - 0x38], 7
mov qword [rbp - 0x40], r14
mov word [rbp - 0x50], r14w
lea rcx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rcx, qword [rsp + 0x38]
xor edx, edx
lea r8d, [rdx + 8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [rbx], rax
test rax, rax
jne 0x140013542
mov r15d, 0x5c
mov word [rsp + 0x20], r15w
or r8, 0xffffffffffffffff
mov rcx, qword [rsp + 0x70]
cmp rcx, 1
jb 0x140012ff3
dec rcx
cmp rcx, r8
cmova rcx, r8
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rax, qword [rsp + 0x60]
lea rsi, [rax + rcx*2]
cmp word [rsi], r15w
jne 0x140012fbd
mov ecx, 1
lea rdx, [rsp + 0x20]
mov rdi, rsi
movzx eax, word [rdx]
cmp word [rdi], ax
jne 0x140012fad
add rdi, 2
add rdx, 2
dec rcx
je 0x140012fd6
jmp 0x140012f96
mov ecx, 1
cmp word [rdi], ax
cmovb ecx, r8d
test ecx, ecx
je 0x140012fd6
lea rcx, [rsp + 0x60]
call fcn.140002b50
cmp rsi, rax
je 0x140012fef
sub rsi, 2
or r8, 0xffffffffffffffff
jmp 0x140012f83
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rax, qword [rsp + 0x60]
sub rsi, rax
sar rsi, 1
jmp 0x140012ff6
or r8, 0xffffffffffffffff
mov rsi, r8
mov r9, rsi
xor r8d, r8d
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x60]
call fcn.140003250
nop
mov qword [rbp - 0x38], 7
mov qword [rbp - 0x40], r14
mov word [rbp - 0x50], r14w
mov r8d, 0xd
lea rdx, str.DongleX64.dll
lea rcx, [rbp - 0x50]
call fcn.140002b60
nop
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x28]
call fcn.140020d10
mov rdi, rax
lea rax, [rsp + 0x38]
cmp rax, rdi
je 0x1400130bc
cmp qword [rsp + 0x50], 8
jb 0x140013063
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
cmp qword [rdi + 0x18], 8
jae 0x140013097
mov r8, qword [rdi + 0x10]
inc r8
add r8, r8
mov rdx, rdi
lea rcx, [rsp + 0x38]
call fcn.140033fc0
jmp 0x1400130a2
mov rax, qword [rdi]
mov qword [rsp + 0x38], rax
mov qword [rdi], r14
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x48], rax
mov rax, qword [rdi + 0x18]
mov qword [rsp + 0x50], rax
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], r14
cmp qword [rbp - 0x10], 8
jb 0x1400130cc
mov rcx, qword [rbp - 0x28]
call fcn.140033ccc
mov qword [rbp - 0x10], 7
mov qword [rbp - 0x18], r14
mov word [rbp - 0x28], r14w
cmp qword [rbp - 0x38], 8
jb 0x1400130ed
mov rcx, qword [rbp - 0x50]
call fcn.140033ccc
lea rcx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rcx, qword [rsp + 0x38]
xor edx, edx
lea r8d, [rdx + 8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [rbx], rax
test rax, rax
jne 0x140013532
lea rcx, str.ilocker.exe
call fcn.14000d290
mov edi, eax
cmp eax, 0xffffffff
jne 0x14001319c
lea rcx, str.PiClient.exe
call fcn.14000d290
mov edi, eax
cmp eax, 0xffffffff
jne 0x14001319c
cmp qword [rbp - 0x60], 8
jb 0x14001314c
mov rcx, qword [rbp - 0x78]
call fcn.140033ccc
mov qword [rbp - 0x60], 7
mov qword [rbp - 0x68], r14
mov word [rbp - 0x78], r14w
cmp qword [rsp + 0x50], 8
jb 0x14001316f
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
cmp qword [rsp + 0x78], 8
jb 0x140013195
mov rcx, qword [rsp + 0x60]
call fcn.140033ccc
xor eax, eax
jmp 0x1400138f3
mov qword [rsp + 0x28], r14
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea r8, [rsp + 0x28]
mov edx, 0x20
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov rcx, qword [rsp + 0x28]
call fcn.140013920
mov word [rbp], r14w
xor edx, edx
mov r8d, 0x7fe
lea rcx, [rbp + 2]
call fcn.140037b90
mov r8d, edi
xor edx, edx
mov ecx, 0x410
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rdi, rax
test rax, rax
jne 0x14001323e
cmp qword [rbp - 0x60], 8
jb 0x140013202
mov rcx, qword [rbp - 0x78]
call fcn.140033ccc
mov qword [rbp - 0x60], 7
mov qword [rbp - 0x68], r14
mov word [rbp - 0x78], r14w
cmp qword [rsp + 0x50], 8
jb 0x140013225
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
mov r9d, 0x400
lea r8, [rbp]
xor edx, edx
mov rcx, rax
call qword [sym.imp.PSAPI.DLL_GetModuleFileNameExW]
test eax, eax
jne 0x140013260
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
or rsi, 0xffffffffffffffff
mov rcx, rsi
lea rdi, [rbp]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rbp]
lea rcx, [rsp + 0x60]
call fcn.140002b60
mov word [rsp + 0x20], r15w
mov rcx, qword [rsp + 0x70]
cmp rcx, 1
jb 0x140013330
dec rcx
cmp rcx, rsi
mov r8, rsi
cmova rcx, rsi
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rax, qword [rsp + 0x60]
lea rsi, [rax + rcx*2]
nop dword [rax]
cmp word [rsi], 0x5c
jne 0x1400132fa
mov ecx, 1
lea rdx, [rsp + 0x20]
mov rdi, rsi
movzx eax, word [rdx]
cmp word [rdi], ax
jne 0x1400132ea
add rdi, 2
add rdx, 2
dec rcx
je 0x140013313
jmp 0x1400132d3
mov ecx, 1
cmp word [rdi], ax
cmovb ecx, r8d
test ecx, ecx
je 0x140013313
lea rcx, [rsp + 0x60]
call fcn.140002b50
cmp rsi, rax
je 0x14001332c
sub rsi, 2
or r8, 0xffffffffffffffff
jmp 0x1400132c0
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rax, qword [rsp + 0x60]
sub rsi, rax
sar rsi, 1
jmp 0x140013330
or rsi, 0xffffffffffffffff
mov r9, rsi
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rsp + 0x60]
call fcn.140003250
mov rdi, rax
lea rax, [rbp - 0x78]
cmp rax, rdi
je 0x1400133b2
cmp qword [rbp - 0x60], 8
jb 0x140013360
mov rcx, qword [rbp - 0x78]
call fcn.140033ccc
mov qword [rbp - 0x60], 7
mov qword [rbp - 0x68], r14
mov word [rbp - 0x78], r14w
cmp qword [rdi + 0x18], 8
jae 0x140013390
mov r8, qword [rdi + 0x10]
inc r8
add r8, r8
mov rdx, rdi
lea rcx, [rbp - 0x78]
call fcn.140033fc0
jmp 0x14001339a
mov rax, qword [rdi]
mov qword [rbp - 0x78], rax
mov qword [rdi], r14
mov rax, qword [rdi + 0x10]
mov qword [rbp - 0x68], rax
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x60], rax
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], r14
cmp qword [rbp - 0x10], 8
jb 0x1400133c2
mov rcx, qword [rbp - 0x28]
call fcn.140033ccc
mov qword [rbp - 0x38], 7
mov qword [rbp - 0x40], r14
mov word [rbp - 0x50], r14w
mov r8d, 0xd
lea rdx, str.DongleX64.dll
lea rcx, [rbp - 0x50]
call fcn.140002b60
nop
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x28]
call fcn.140020d10
mov rdi, rax
lea rax, [rsp + 0x38]
cmp rax, rdi
je 0x140013473
cmp qword [rsp + 0x50], 8
jb 0x14001341a
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
cmp qword [rdi + 0x18], 8
jae 0x14001344e
mov r8, qword [rdi + 0x10]
inc r8
add r8, r8
mov rdx, rdi
lea rcx, [rsp + 0x38]
call fcn.140033fc0
jmp 0x140013459
mov rax, qword [rdi]
mov qword [rsp + 0x38], rax
mov qword [rdi], r14
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x48], rax
mov rax, qword [rdi + 0x18]
mov qword [rsp + 0x50], rax
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], r14
cmp qword [rbp - 0x10], 8
jb 0x140013483
mov rcx, qword [rbp - 0x28]
call fcn.140033ccc
mov qword [rbp - 0x10], 7
mov qword [rbp - 0x18], r14
mov word [rbp - 0x28], r14w
cmp qword [rbp - 0x38], 8
jb 0x1400134a4
mov rcx, qword [rbp - 0x50]
call fcn.140033ccc
lea rcx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rcx, qword [rsp + 0x38]
xor edx, edx
lea r8d, [rdx + 8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [rbx], rax
test rax, rax
jne 0x140013532
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, [0x140069578]
lea rcx, [rbp + 0x800]
call fcn.140005670
nop
cmp qword [rbp - 0x60], 8
jb 0x1400134f6
mov rcx, qword [rbp - 0x78]
call fcn.140033ccc
mov qword [rbp - 0x60], 7
mov qword [rbp - 0x68], r14
mov word [rbp - 0x78], r14w
cmp qword [rsp + 0x50], 8
jb 0x140013519
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
cmp qword [rbp - 0x60], 8
jb 0x140013542
mov rcx, qword [rbp - 0x78]
call fcn.140033ccc
lea rdx, str.Dongle_ChangePIN
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x40], rax
test rax, rax
jne 0x140013586
cmp qword [rsp + 0x50], 8
jb 0x14001356d
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_Enum
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 8], rax
test rax, rax
jne 0x1400135ca
cmp qword [rsp + 0x50], 8
jb 0x1400135b1
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_Open
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x10], rax
test rax, rax
jne 0x14001360e
cmp qword [rsp + 0x50], 8
jb 0x1400135f5
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_LEDControl
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x18], rax
test rax, rax
jne 0x140013652
cmp qword [rsp + 0x50], 8
jb 0x140013639
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_Close
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x20], rax
test rax, rax
jne 0x140013696
cmp qword [rsp + 0x50], 8
jb 0x14001367d
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_GenUniqueKey
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x28], rax
test rax, rax
jne 0x1400136da
cmp qword [rsp + 0x50], 8
jb 0x1400136c1
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_GetUTCTime
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x30], rax
test rax, rax
jne 0x14001371e
cmp qword [rsp + 0x50], 8
jb 0x140013705
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_CreateFile
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x38], rax
test rax, rax
jne 0x140013762
cmp qword [rsp + 0x50], 8
jb 0x140013749
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_DeleteFile
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x48], rax
test rax, rax
jne 0x1400137a6
cmp qword [rsp + 0x50], 8
jb 0x14001378d
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_ReadFile
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x50], rax
test rax, rax
jne 0x1400137ea
cmp qword [rsp + 0x50], 8
jb 0x1400137d1
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_ResetUserPIN
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x58], rax
test rax, rax
jne 0x14001382e
cmp qword [rsp + 0x50], 8
jb 0x140013815
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_VerifyPIN
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x60], rax
test rax, rax
jne 0x140013872
cmp qword [rsp + 0x50], 8
jb 0x140013859
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
lea rdx, str.Dongle_WriteFile
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x68], rax
test rax, rax
jne 0x1400138b6
cmp qword [rsp + 0x50], 8
jb 0x14001389d
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
jmp 0x140013183
cmp qword [rsp + 0x50], 8
jb 0x1400138c8
mov rcx, qword [rsp + 0x38]
call fcn.140033ccc
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
cmp qword [rsp + 0x78], 8
jb 0x1400138ee
mov rcx, qword [rsp + 0x60]
call fcn.140033ccc
mov eax, 1
mov rcx, qword [rbp + 0x1000]
xor rcx, rsp
call fcn.140033cf0
mov rbx, qword [rsp + 0x1150]
add rsp, 0x1110
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret