Function at 0x1401c50b0
Capabilities:
Allocate or change rwx memory
Check for time delay via queryperformancecounter
Execute shellcode via indirect call

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x2c8]
sub rsp, 0x3a0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
mov rax, qword [0x140546618]
xor rax, rsp
mov qword [rbp + 0x210], rax
mov rcx, qword [0x1407e6a20]
test rcx, rcx
jne 0x1401c5142
mov ecx, 0x110
call fcn.14036fce4
mov qword [rbp - 0x80], rax
mov rcx, rax
call fcn.140088470
mov rcx, rax
mov qword [0x1407e6a20], rax
mov rax, qword [rcx]
mov rdx, qword [rax + 0x88]
lea rax, [fcn.1400883b0]
cmp rdx, rax
jne 0x1401c5c31
mov rax, qword [rcx + 0x58]
xor r15d, r15d
mov esi, r15d
mov r13d, 2
cmp rax, r13
cmova esi, r13d
test rcx, rcx
jne 0x1401c5198
mov ecx, 0x110
call fcn.14036fce4
mov qword [rbp - 0x80], rax
mov rcx, rax
call fcn.140088470
mov rcx, rax
mov qword [0x1407e6a20], rax
mov rdi, qword [rcx + 0xb0]
mov rbx, r15
mov edx, 3
mov rcx, rdi
call fcn.140359fb0
lea ecx, [rax + 2]
cmp ecx, 1
jbe 0x1401c51e3
test rbx, rbx
jne 0x1401c51ce
xor r8d, r8d
mov edx, eax
mov rcx, rdi
call fcn.140359d80
mov rbx, rax
jmp 0x1401c51d7
cmp dword [rbx + 0x30], eax
jne 0x1401c51e3
mov rbx, qword [rbx + 0x38]
test rbx, rbx
je 0x1401c51e3
cmp dword [rbx + 0x10], esi
jne 0x1401c51a2
jmp 0x1401c51e6
mov rbx, r15
mov r9d, 1
lea r8, [rbp - 0x20]
mov rdx, rbx
mov rcx, rdi
call fcn.140359c20
mov rax, qword [rbp - 0x20]
mov ecx, dword [rax + 0x10]
mov r14d, ecx
cmp ecx, esi
cmovb r14d, esi
mov dword [rsp + 0x40], r14d
cmovae ecx, esi
mov esi, ecx
call fcn.1400eccf0
mov edx, 0x200000
xor ecx, ecx
call fcn.14018f0d0
mov ecx, 0x28
call fcn.14036fce4
mov r12, rax
mov qword [rbp - 0x80], rax
mov qword [rax], 0x1000000
mov dword [rax + 8], r15d
mov qword [rax + 0x10], 0x1000000
xor eax, eax
mov dword [r12 + 0x18], eax
mov qword [r12 + 0x20], r15
mov rcx, r12
call fcn.1400eced0
test al, al
jne 0x1401c5275
mov edx, 0x40
mov rcx, qword [r12]
call fcn.14039ed1c
mov qword [r12 + 0x20], rax
mov rbx, qword [0x1407e6a20]
test rbx, rbx
jne 0x1401c52a2
mov ecx, 0x110
call fcn.14036fce4
mov qword [rsp + 0x58], rax
mov rcx, rax
call fcn.140088470
mov rbx, rax
mov qword [0x1407e6a20], rax
mov rdi, rbx
test rbx, rbx
jne 0x1401c52cb
mov ecx, 0x110
call fcn.14036fce4
mov qword [rsp + 0x58], rax
mov rcx, rax
call fcn.140088470
mov rdi, rax
mov qword [0x1407e6a20], rax
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0xb8]
mov rbx, rax
shr rbx, 0x16
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0xa8]
cmp rbx, rax
jbe 0x1401c52f9
mov edx, 0x800000
jmp 0x1401c537e
mov rbx, qword [0x1407e6a20]
test rbx, rbx
jne 0x1401c5326
mov ecx, 0x110
call fcn.14036fce4
mov qword [rsp + 0x58], rax
mov rcx, rax
call fcn.140088470
mov rbx, rax
mov qword [0x1407e6a20], rax
mov rdi, rbx
test rbx, rbx
jne 0x1401c534f
mov ecx, 0x110
call fcn.14036fce4
mov qword [rsp + 0x58], rax
mov rcx, rax
call fcn.140088470
mov rdi, rax
mov qword [0x1407e6a20], rax
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0xb8]
mov rbx, rax
shr rbx, 0x16
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0xa8]
mov edx, 0x200000
mov ecx, 0x400000
cmp rbx, rax
cmovae edx, ecx
mov qword [rsp + 0x38], rdx
cmp dword [0x1407e16c0], 0
jbe 0x1401c53ce
movzx eax, byte [r12 + 0x18]
and al, 1
lea r8, [0x140502844]
lea rcx, [0x140502850]
cmovne rcx, r8
mov rax, rdx
shr rax, 0x14
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8d, esi
lea rdx, str.Running_GhostRider_benchmark_on_logical_CPUs__u_and__u__max_scratchpad_size__zu_MB__huge_pages__s_
mov ecx, 6
call fcn.140027890
mov rsi, qword [r12 + 0x20]
mov rdi, r15
nop word [rax + rax]
mov edx, 0x1000
mov ecx, 0x1c0
call fcn.14039ed1c
mov rbx, rax
mov qword [rax + 0xe0], rsi
mov edx, 0x4000
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rbx + 0x118], rax
mov dword [rbx + 0x120], r15d
mov qword [rbx + 0x128], 0xffffffffffffffff
mov qword [rbp + rdi*8 + 0x80], rbx
inc rdi
add rsi, 0x200000
cmp rdi, 8
jb 0x1401c53e0
mov rax, qword [0x1407e6a20]
test rax, rax
jne 0x1401c546c
mov ecx, 0x110
call fcn.14036fce4
mov qword [rsp + 0x58], rax
mov rcx, rax
call fcn.140088470
nop
mov qword [0x1407e6a20], rax
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x20]
lea r8, [method.xmrig::HwlocCpuInfo.virtual_32]
cmp rdx, r8
jne 0x1401c5c4c
mov r8, qword [rcx + 0x18]
lea rcx, [method.xmrig::HwlocCpuInfo.virtual_24]
cmp r8, rcx
jne 0x1401c5c3f
movzx eax, byte [rax + 0x94]
and al, 1
lea rcx, [0x1404b8108]
lea r9, [0x1404b7c88]
test al, al
cmovne r9, rcx
mov qword [rsp + 0x68], r9
cmp dword [0x1407e16c0], 0
jbe 0x1401c54ef
lea r8, str.Algorithm
lea rdx, str._24s___N___Hashrate
mov ecx, 6
call fcn.140027890
cmp dword [0x1407e16c0], 0
jbe 0x1401c54ef
lea rdx, str.___________________________________________
call fcn.140027890
lea rax, [rbp + 0x60]
mov qword [rbp + 0x20], rax
lea rax, [rbp + 0x6c]
mov qword [rbp + 0x28], rax
movaps xmm0, xmmword [rbp + 0x20]
movdqa xmmword [rbp + 0x40], xmm0
lea rax, [0x1404b8200]
mov qword [rsp + 0x78], rax
mov rcx, rax
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rsp + 0x50], rax
xor esi, esi
mov qword [rsp + 0x60], 6
movsd xmm8, qword [0x140504d38]
movsd xmm13, qword [0x140504d60]
movsd xmm10, qword [0x140504d10]
nop dword [rax]
mov dword [rbp + 0x60], 1
mov dword [rbp + 0x64], r13d
mov dword [rbp + 0x68], 4
lea r12, [rbp + 0x60]
mov rdx, qword [rsp + 0x38]
nop dword [rax + rax]
lea r14, [0x140000000]
movsxd r13, dword [r12]
mov r14, qword [rax + r14 + 0x4b81a0]
imul r14, r13
cmp r14, rdx
ja 0x1401c575a
mov eax, dword [rcx]
mov dword [rsp + 0x70], eax
mov r8d, 1
mov edx, dword [r9 + r13*4]
lea rcx, [rsp + 0x70]
call fcn.1400f7700
mov r15, rax
lea rcx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x18]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm7, xmm7
cvtsi2sd xmm7, qword [rbp - 0x18]
mulsd xmm7, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp - 0x70]
divsd xmm7, xmm0
movaps xmm9, xmm13
xor ebx, ebx
xor edi, edi
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm6, xmm6
cvtsi2sd xmm6, qword [rbp - 0x68]
mulsd xmm6, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp - 0x60]
divsd xmm6, xmm0
cmp ebx, 0xa
jb 0x1401c5626
movaps xmm0, xmm6
subsd xmm0, xmm7
comisd xmm0, xmm10
jae 0x1401c568b
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 0x80]
lea r8, [rbp + 0x110]
mov edx, 0x50
lea rcx, [rbp + 0xc0]
call r15
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rbp - 0x58]
mulsd xmm1, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp - 0x50]
divsd xmm1, xmm0
subsd xmm1, xmm6
minsd xmm1, xmm9
movaps xmm9, xmm1
inc ebx
jmp 0x1401c55e4
xorps xmm0, xmm0
test r13d, r13d
js 0x1401c569a
cvtsi2sd xmm0, r13
jmp 0x1401c56b2
mov rcx, r13
shr rcx, 1
mov rax, r13
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
mulsd xmm0, xmm8
divsd xmm0, xmm9
mov rax, qword [rsp + 0x50]
cmp dword [0x1407e16c0], edi
lea rdi, [0x140000000]
jbe 0x1401c56f2
movsd qword [rsp + 0x20], xmm0
mov r9, r13
mov r8, qword [rax + rdi + 0x4b81d0]
lea rdx, str._24s___llux1___.2f_h_s
mov ecx, 6
call fcn.140027890
comisd xmm0, xmmword [rsi + rdi + 0x54d330]
jbe 0x1401c5719
movsd qword [rsi + rdi + 0x54d330], xmm0
mov dword [rsi + rdi + 0x54d338], r13d
mov dword [rsi + rdi + 0x54d33c], 1
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x68]
cmp r14, 0x800000
jae 0x1401c5761
comisd xmm0, xmmword [rsi + rdi + 0x54d390]
jbe 0x1401c5761
movsd qword [rsi + rdi + 0x54d390], xmm0
mov dword [rsi + rdi + 0x54d398], r13d
mov dword [rsi + rdi + 0x54d39c], 1
jmp 0x1401c5761
lea rdi, [0x140000000]
add r12, 4
lea r8, [rbp + 0x6c]
cmp r12, r8
jne 0x1401c5570
add rax, 8
mov qword [rsp + 0x50], rax
add rcx, 4
mov qword [rsp + 0x48], rcx
add rsi, 0x10
sub qword [rsp + 0x60], 1
mov r13d, 2
jne 0x1401c5550
call fcn.14035b5c0
mov rbx, rax
mov edx, dword [rsp + 0x40]
mov rcx, rax
call fcn.14035ce40
mov ecx, 0x290
call fcn.14036fce4
mov qword [rsp + 0x58], rax
xor r8d, r8d
mov rdx, rbx
mov rcx, rax
call fcn.1401c4c70
mov rbx, rax
lea rax, [rbp + 0x70]
mov qword [rbp + 0x30], rax
lea rax, [rbp + 0x7c]
mov qword [rbp + 0x38], rax
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rbp + 0x50], xmm0
xor r12d, r12d
mov r13d, r12d
mov esi, r12d
mov qword [rsp + 0x48], r12
mov qword [rbp - 0x78], 6
movsd xmm10, qword [0x140504d18]
movsd xmm11, qword [0x140504d40]
movsd xmm12, qword [0x140504ce0]
nop dword [rax + rax]
mov dword [rbp + 0x70], 1
mov dword [rbp + 0x74], 2
mov dword [rbp + 0x78], 4
lea r15, [rbp + 0x70]
mov rax, qword [rsp + 0x38]
nop
movsxd rcx, dword [r15]
mov qword [rsp + 0x50], rcx
mov r14, qword [rdi + r13 + 0x4b81a0]
imul r14, rcx
add r14, r14
cmp r14, rax
ja 0x1401c5ae2
mov rax, qword [rsp + 0x78]
mov eax, dword [rax]
mov dword [rsp + 0x40], eax
mov r8d, 1
mov rax, qword [rsp + 0x68]
mov edx, dword [rax + rcx*4]
lea rcx, [rsp + 0x40]
call fcn.1400f7700
mov qword [rsp + 0x60], rax
lea rcx, [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x48]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm7, xmm7
cvtsi2sd xmm7, qword [rbp - 0x48]
mulsd xmm7, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp - 0x40]
divsd xmm7, xmm0
movaps xmm9, xmm13
mov edi, r12d
lea rsi, vtable.xmrig::ghostrider::HelperThread::Task_class__lambda_7719f5c5ec6f442a60b888cc8a44fb21__.0
lea rcx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm6, xmm6
cvtsi2sd xmm6, qword [rbp - 0x38]
mulsd xmm6, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp - 0x30]
divsd xmm6, xmm0
cmp edi, 0xa
jb 0x1401c590b
movaps xmm0, xmm6
subsd xmm0, xmm7
comisd xmm0, xmm10
jae 0x1401c5a15
lea rax, [rsp + 0x60]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0xc0]
mov qword [rbp - 8], rax
lea rax, [rbp + 0x110]
mov qword [rbp], rax
lea rax, [rbp + 0x80]
mov qword [rbp + 8], rax
lea rax, [rsp + 0x50]
mov qword [rbp + 0x10], rax
mov rcx, rbx
call sub.KERNEL32.dll_EnterCriticalSection
mov ecx, dword [rbx + 0x270]
shl rcx, 7
mov eax, dword [rbx + 0x270]
inc eax
mov dword [rbx + 0x270], eax
mov qword [rcx + rbx + 0x70], rsi
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [rcx + rbx + 0x78], xmm0
movups xmm1, xmmword [rbp]
movups xmmword [rcx + rbx + 0x88], xmm1
movsd xmm0, qword [rbp + 0x10]
movsd qword [rcx + rbx + 0x98], xmm0
lea rcx, [rbx + 0x28]
call sub.KERNEL32.dll_WakeConditionVariable
mov rcx, rbx
call sub.KERNEL32.dll_LeaveCriticalSection
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x80]
lea r8, [rbp + 0x110]
mov edx, 0x50
lea rcx, [rbp + 0xc0]
call qword [rsp + 0x60]
mov eax, dword [rbx + 0x270]
test eax, eax
je 0x1401c59d0
pause
mov eax, dword [rbx + 0x270]
test eax, eax
jne 0x1401c59c4
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rbp - 0x28]
mulsd xmm1, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x58]
divsd xmm1, xmm0
subsd xmm1, xmm6
minsd xmm1, xmm9
movaps xmm9, xmm1
inc edi
jmp 0x1401c58c5
mov r9, qword [rsp + 0x50]
xorps xmm0, xmm0
test r9, r9
js 0x1401c5a29
cvtsi2sd xmm0, r9
jmp 0x1401c5a41
mov rcx, r9
shr rcx, 1
mov rax, r9
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
mulsd xmm0, xmm11
divsd xmm0, xmm9
mulsd xmm0, xmm12
cmp dword [0x1407e16c0], r12d
mov rsi, qword [rsp + 0x48]
lea rdi, [0x140000000]
jbe 0x1401c5a89
movsd qword [rsp + 0x20], xmm0
mov r8, qword [rdi + r13 + 0x4b81d0]
lea rdx, str._24s___llux2___.2f_h_s
mov ecx, 6
call fcn.140027890
mov r9, qword [rsp + 0x50]
mov eax, 2
comisd xmm0, xmmword [rsi + rdi + 0x54d330]
jbe 0x1401c5ab1
movsd qword [rsi + rdi + 0x54d330], xmm0
mov dword [rsi + rdi + 0x54d338], r9d
mov dword [rsi + rdi + 0x54d33c], eax
cmp r14, 0x800000
jae 0x1401c5add
comisd xmm0, xmmword [rsi + rdi + 0x54d390]
jbe 0x1401c5add
movsd qword [rsi + rdi + 0x54d390], xmm0
mov dword [rsi + rdi + 0x54d398], r9d
mov dword [rsi + rdi + 0x54d39c], eax
mov rax, qword [rsp + 0x38]
add r15, 4
lea rcx, [rbp + 0x7c]
cmp r15, rcx
jne 0x1401c5840
add r13, 8
add qword [rsp + 0x78], 4
add rsi, 0x10
mov qword [rsp + 0x48], rsi
sub qword [rbp - 0x78], 1
jne 0x1401c5820
test rbx, rbx
je 0x1401c5b1e
mov rcx, rbx
call fcn.1401c5c60
cmp qword [rbp + 0x80], r12
je 0x1401c5b46
nop word [rax + rax]
mov rcx, qword [rbp + r12*8 + 0x80]
call fcn.14039ed00
inc r12
cmp r12, 8
jb 0x1401c5b30
mov rbx, qword [rbp - 0x80]
mov r9, qword [rbx + 0x20]
test r9, r9
je 0x1401c5bc4
mov ecx, dword [rbx + 0x18]
mov eax, ecx
shr eax, 3
and al, 1
je 0x1401c5b9a
lea rcx, [0x1407e5a90]
call fcn.14036d348
test eax, eax
jne 0x1401c5c56
mov rcx, qword [0x1407e6ce0]
mov rax, qword [rcx]
mov edx, dword [rbx + 8]
call qword [rax + 0x18]
nop
lea rcx, [0x1407e5a90]
call fcn.14036d36c
test eax, eax
jne 0x1401c5c29
jmp 0x1401c5bc4
movzx eax, cl
and al, 1
jne 0x1401c5bb2
shr ecx, 1
and cl, 1
jne 0x1401c5bb2
mov rcx, r9
call fcn.14039ed00
jmp 0x1401c5bc4
xor edx, edx
mov r8d, 0x8000
mov rcx, r9
call qword [sym.imp.KERNEL32.dll_VirtualFree]
nop
mov edx, 0x28
mov rcx, rbx
call fcn.14036fd20
mov rcx, qword [rbp + 0x210]
xor rcx, rsp
call fcn.14036fcc0
lea r11, [rsp + 0x3a0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, eax
call fcn.14036cfe0
nop
call rdx
mov rcx, qword [0x1407e6a20]
jmp 0x1401c5160
xor edx, edx
mov rcx, rax
call r8
jmp 0x1401c54a0
mov rcx, rax
call rdx
jmp 0x1401c54a0
mov ecx, eax
call fcn.14036cfe0
int3