Function at 0x747db0
Capabilities:
Allocate or change rwx memory

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rbp, qword [rsp + 0xf0]
mov r13, rcx
mov r12, rdx
lea rdx, [0x00790914]
cmp dword [rbp + 4], 0x11
mov ebx, r8d
mov esi, r9d
ja case.0x747df2.136
mov eax, dword [rbp + 4]
movsxd rcx, dword [rdx + rax*4]
add rcx, rdx
jmp rcx
mov edi, 8
nop
nop word cs:[rax + rax]
xor ebx, 1
mov r9, qword [r13]
movzx r8d, bl
test sil, sil
je 0x747e24
or r8d, 2
or r8d, edi
lea r10, [0x00798ca0]
mov r11, qword [r10 + r8*8]
mov qword [r9 + 0x108], r11
mov r15d, dword [rbp + 4]
cmp r15d, 0xb
je 0x748060
cmp r15d, 0x10
je 0x7481b0
movzx ebx, byte [0x007ac0d8]
test bl, bl
jne 0x747e70
lea rcx, [0x007ac0d8]
call sub.libstdc_6.dll___cxa_guard_acquire
test eax, eax
jne 0x748170
mov eax, dword [rbp + 4]
mov rbp, qword [0x007ac0a8]
xor edx, edx
mov r10, rax
mov r9, qword [0x007ac0a0]
div rbp
mov rcx, qword [r9 + rdx*8]
test rcx, rcx
je 0x748050
mov r11, qword [rcx]
cmp dword [r11 + 8], r10d
je 0x747ef6
mov r8, rdx
mov r11, qword [r11]
test r11, r11
je 0x748050
xor edx, edx
mov eax, dword [r11 + 8]
mov r13, rax
div rbp
cmp rdx, r8
je 0x747ef1
jmp 0x748050
mov r11, qword [r11]
test r11, r11
je 0x748050
xor edx, edx
mov eax, dword [r11 + 8]
mov r13, rax
div rbp
cmp r8, rdx
jne 0x748050
cmp r13d, r10d
jne 0x747ed0
mov r15, qword [r11 + 0x10]
mov qword [r12], r15
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edi, 4
jmp 0x747e10
xor edi, edi
jmp 0x747e10
mov edi, 0xc
jmp 0x747e10
mov edi, 0x10
jmp 0x747e10
mov edi, 0x14
jmp 0x747e10
mov edi, 0x18
jmp 0x747e10
mov edi, 0x1c
jmp 0x747e10
mov edi, 0x20
jmp 0x747e10
mov edi, 0x24
jmp 0x747e10
mov edi, 0x28
jmp 0x747e10
mov edi, 0x2c
jmp 0x747e10
mov edi, 0x30
jmp 0x747e10
mov edi, 0x34
jmp 0x747e10
mov edi, 0x38
jmp 0x747e10
mov edi, 0x3c
jmp 0x747e10
mov r14, qword [0x007add88]
test r14, r14
je 0x748540
mov rdi, qword [r14]
test rdi, rdi
je 0x748567
mov rcx, rdi
lea r8, str.Unsupported_algorithm_selected__miner_was_only_compiled_with_XMR_support.
xor edx, edx
xor edi, edi
call fcn.00430850
jmp 0x747e10
mov qword [r12], 0
jmp 0x747efe
lea rbx, [rsp + 0x40]
mov rsi, qword [rsp + 0xf8]
mov rcx, rbx
lea rdx, [rbx + 0x10]
mov qword [rsp + 0x40], rdx
mov r8, qword [rsi + 8]
mov rdx, qword [rsi]
add r8, rdx
call fcn.00407a50
lea rdx, str.auto
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
jne 0x748138
lea r15, [rsp + 0x60]
mov edx, 1
mov rcx, r15
call fcn.00744940
mov rax, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x60]
lea rcx, [r15 + 0x10]
mov r14, qword [rsp + 0x68]
mov r8, rax
lea r9, [rbx + 0x10]
mov qword [rsp + 0x28], r14
cmp rsi, rcx
je 0x748670
mov rdi, qword [rsp + 0x70]
cmp rax, r9
je 0x7484e0
movq xmm5, qword [rsp + 0x28]
mov r8, qword [rsp + 0x50]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x28], rdi
movhps xmm5, qword [rsp + 0x28]
movups xmmword [rsp + 0x48], xmm5
test rax, rax
je 0x7484fa
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x68], 0
add r15, 0x10
mov byte [rax], 0
mov rcx, qword [rsp + 0x60]
cmp rcx, r15
je 0x748138
call sub.libstdc_6.dll_operator_delete_void_
lea rdx, [0x007906db]
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
jne 0x748320
mov rcx, qword [rsp + 0x40]
add rbx, 0x10
cmp rcx, rbx
je 0x747e51
call sub.libstdc_6.dll_operator_delete_void_
jmp 0x747e51
lea r8, [0x00798c90]
lea rcx, [0x007ac0a0]
lea rdx, [r8 - 0x10]
call fcn.0041ef30
lea rcx, [0x007ac0d8]
call sub.libstdc_6.dll___cxa_guard_release
lea rcx, [0x0040c6c0]
call fcn.0077d990
jmp 0x747e70
mov rcx, qword [rsp + 0xf8]
lea rdx, [0x007906db]
call fcn.0077d8b8
test eax, eax
je 0x747e51
mov rax, qword [rsp + 0xf8]
lea rbx, [rsp + 0x60]
mov rdx, qword [rax]
mov rcx, rbx
lea rsi, [rbx + 0x10]
mov r8, qword [rax + 8]
mov qword [rsp + 0x60], rsi
add r8, rdx
call fcn.00407a50
lea rdx, str.auto
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
jne 0x7482a8
lea r14, [rsp + 0x40]
mov edx, 1
mov rcx, r14
call fcn.00744940
mov r11, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x40]
lea rcx, [r14 + 0x10]
mov r15, qword [rsp + 0x48]
mov r9, r11
mov r8, r15
cmp rdi, rcx
je 0x7486e4
mov rdx, qword [rsp + 0x50]
lea r9, [rbx + 0x10]
cmp r11, r9
je 0x748784
mov qword [rsp + 0x28], r15
movq xmm2, qword [rsp + 0x28]
mov qword [rsp + 0x28], rdx
mov r10, qword [rsp + 0x70]
movhps xmm2, qword [rsp + 0x28]
mov qword [rsp + 0x60], rdi
movups xmmword [rsp + 0x68], xmm2
test r11, r11
je 0x7487a3
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x48], 0
add r14, 0x10
mov byte [r11], 0
mov rcx, qword [rsp + 0x40]
cmp rcx, r14
je 0x7482a8
call sub.libstdc_6.dll_operator_delete_void_
mov r14, qword [0x007add88]
test r14, r14
je 0x748590
mov rdi, qword [r14]
test rdi, rdi
je 0x7485b7
mov r9, qword [rsp + 0x60]
lea r8, str.enable_cryptonight_r_asm__s_cpus
xor edx, edx
mov rcx, rdi
call fcn.00430850
lea rdx, str.intel_avx
mov rcx, rbx
call fcn.0077d8b8
mov r13, qword [r13]
test eax, eax
setne r11b
movzx r10d, r11b
add rbx, 0x10
add r10d, 1
mov dword [r13 + 0x118], r10d
mov rcx, qword [rsp + 0x60]
cmp rcx, rbx
jne 0x748161
jmp 0x747e51
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
lea rsi, [rsp + 0x60]
lea r15, [rsi + 0x10]
add r8, rdx
mov rcx, rsi
mov qword [rsp + 0x60], r15
call fcn.00407a50
mov r14d, dword [rbp + 0x18]
mov rax, qword [rbp + 0x10]
mov r15d, dword [rbp + 8]
test r14d, r14d
jne 0x74835c
lea r14d, [rax - 1]
and r14d, 0xfffffff0
mov rdi, qword [r13]
lea r9, [rsp + 0x3c]
mov r8d, 0x40
mov edx, 0x10000
mov rcx, qword [rdi + 0x110]
test rcx, rcx
je 0x748510
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
lea rdx, str.intel_avx
mov rcx, rsi
call fcn.0077d8b8
lea rdx, str.amd_avx
mov rcx, rsi
test eax, eax
je 0x748650
call fcn.0077d8b8
test eax, eax
jne 0x74844d
lea rdx, [0x0077b540]
mov r10, qword [r13]
mov r8d, r15d
mov r9d, r14d
mov rcx, qword [r10 + 0x110]
test rcx, rcx
je 0x74844d
call fcn.00407d40
mov r9, qword [r13]
mov rcx, rsi
mov rdx, qword [r9 + 0x110]
mov qword [r9 + 0x100], rdx
lea rdx, str.intel_avx
call fcn.0077d8b8
mov rcx, qword [r13]
lea r9, [rsp + 0x38]
lea r8, [0x006ec470]
mov edx, 0x10000
mov qword [rcx + 0x108], r8
mov r11, qword [r13]
mov r8d, 0x20
mov rcx, qword [r11 + 0x110]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r13, qword [r13]
mov r15, qword [r13 + 0x110]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8d, 0x10000
mov rdx, r15
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov rcx, qword [rsp + 0x60]
add rsi, 0x10
cmp rcx, rsi
je 0x748460
call sub.libstdc_6.dll_operator_delete_void_
mov rcx, qword [rsp + 0xf8]
lea rdx, str.auto
call fcn.0077d8b8
test eax, eax
jne 0x7485e0
lea rdx, str.intel_avx
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
jne 0x7484a6
lea rdx, str.amd_avx
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
je 0x7485e0
mov r14, qword [0x007add88]
test r14, r14
je 0x748740
mov rdi, qword [r14]
test rdi, rdi
je 0x748767
mov r9, qword [rsp + 0x40]
lea r8, str.Switch_to_assembler_version_for__s_cpus
mov edx, 3
mov rcx, rdi
call fcn.00430740
jmp 0x74814f
movq xmm4, qword [rsp + 0x28]
mov qword [rsp + 0x28], rdi
movhps xmm4, qword [rsp + 0x28]
mov qword [rsp + 0x40], rsi
movups xmmword [rsp + 0x48], xmm4
lea rax, [r15 + 0x10]
mov qword [rsp + 0x60], rax
jmp 0x748119
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x10000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rdi + 0x110], rax
jmp 0x748386
mov ecx, 0x28
call sub.libstdc_6.dll_operator_new_unsigned_long_long_
pxor xmm0, xmm0
mov r14, rax
movups xmmword [rax], xmm0
mov qword [rax + 0x20], 0
mov qword [0x007add88], rax
movups xmmword [rax + 0x10], xmm0
mov ecx, 0x18
call sub.libstdc_6.dll_operator_new_unsigned_long_long_
mov rcx, rax
mov rdi, rax
call fcn.00430940
mov qword [r14], rdi
jmp 0x74802c
mov ecx, 0x28
call sub.libstdc_6.dll_operator_new_unsigned_long_long_
pxor xmm3, xmm3
mov r14, rax
movups xmmword [rax], xmm3
mov qword [rax + 0x20], 0
mov qword [0x007add88], rax
movups xmmword [rax + 0x10], xmm3
mov ecx, 0x18
call sub.libstdc_6.dll_operator_new_unsigned_long_long_
mov rcx, rax
mov rdi, rax
call fcn.00430940
mov qword [r14], rdi
jmp 0x7482c4
lea rdx, str.intel_avx
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
je 0x74814f
lea rdx, str.amd_avx
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
je 0x74814f
mov rsi, qword [0x007add88]
test rsi, rsi
je 0x748809
mov rdi, qword [rsi]
test rdi, rdi
je 0x748830
mov r9, qword [rsp + 0x40]
lea r8, str.Assembler__s_unknown__fallback_to_non_asm_version_of_cryptonight_v8
mov edx, 1
mov rcx, rdi
call fcn.00430740
jmp 0x74814f
call fcn.0077d8b8
lea rdx, [0x0077b200]
test eax, eax
jne 0x7483bb
jmp 0x7483b4
test r14, r14
je 0x7486d0
cmp r14, 1
je 0x7487b1
cmp qword [rsp + 0x28], 8
jae 0x7487c9
test byte [rsp + 0x28], 4
jne 0x74889a
cmp qword [rsp + 0x28], 0
je 0x7486bd
movzx ecx, byte [rsi]
mov byte [rax], cl
test byte [rsp + 0x28], 2
jne 0x7488e7
mov rsi, qword [rsp + 0x68]
mov r8, qword [rsp + 0x40]
mov qword [rsp + 0x28], rsi
mov r14, qword [rsp + 0x28]
mov rax, r8
nop
nop word cs:[rax + rax]
mov qword [rsp + 0x48], r14
mov byte [rax + r14], 0
mov rax, qword [rsp + 0x60]
jmp 0x748119
test r15, r15
je 0x74872c
cmp r15, 1
je 0x74884d
cmp r15, 8
jae 0x748864
test r15b, 4
jne 0x7488c8
test r15, r15
je 0x748726
movzx eax, byte [rdi]
mov byte [r11], al
test r15b, 2
jne 0x748911
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
mov r15, r8
mov r11, r9
mov qword [rsp + 0x68], r15
mov byte [r11 + r15], 0
mov r11, qword [rsp + 0x40]
jmp 0x748288
mov ecx, 0x28
call sub.libstdc_6.dll_operator_new_unsigned_long_long_
pxor xmm1, xmm1
mov r14, rax
movups xmmword [rax], xmm1
mov qword [rax + 0x20], 0
mov qword [0x007add88], rax
movups xmmword [rax + 0x10], xmm1
mov ecx, 0x18
call sub.libstdc_6.dll_operator_new_unsigned_long_long_
mov rcx, rax
mov rdi, rax
call fcn.00430940
mov qword [r14], rdi
jmp 0x7484c2
mov qword [rsp + 0x28], r15
movq xmm1, qword [rsp + 0x28]
mov qword [rsp + 0x28], rdx
movhps xmm1, qword [rsp + 0x28]
mov qword [rsp + 0x60], rdi
movups xmmword [rsp + 0x68], xmm1
lea r11, [r14 + 0x10]
mov qword [rsp + 0x40], r11
jmp 0x748288
movzx r11d, byte [rsp + 0x70]
mov byte [rax], r11b
mov r14, qword [rsp + 0x68]
mov rax, qword [rsp + 0x40]
jmp 0x7486d0
mov r11, qword [rsi]
lea r9, [rax + 8]
mov qword [rax], r11
and r9, 0xfffffffffffffff8
mov r10, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x28]
sub r8, r9
mov rdx, qword [rsi + r10 - 8]
sub rsi, r8
mov qword [rax + rcx - 8], rdx
mov rdi, qword [rsp + 0x28]
lea rcx, [r8 + rdi]
mov rdi, r9
shr rcx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x7486ae
mov ecx, 0x28
call sub.libstdc_6.dll_operator_new_unsigned_long_long_
pxor xmm0, xmm0
mov rsi, rax
movups xmmword [rax], xmm0
mov qword [rax + 0x20], 0
mov qword [0x007add88], rax
movups xmmword [rax + 0x10], xmm0
mov ecx, 0x18
call sub.libstdc_6.dll_operator_new_unsigned_long_long_
mov rcx, rax
mov rdi, rax
call fcn.00430940
mov qword [rsi], rdi
jmp 0x74862a
movzx eax, byte [rsp + 0x50]
mov byte [r11], al
mov r15, qword [rsp + 0x48]
mov r11, qword [rsp + 0x60]
jmp 0x74872c
lea r10, [r11 + 8]
mov rcx, qword [rdi]
mov rsi, rdi
and r10, 0xfffffffffffffff8
sub r9, r10
mov qword [r11], rcx
mov rdx, qword [rdi + r15 - 8]
mov rdi, r10
sub rsi, r9
add r9, r15
mov rcx, r9
mov qword [r11 + r15 - 8], rdx
shr rcx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x74871c
mov r14d, dword [rsi]
mov dword [rax], r14d
mov r11, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x28]
mov r10d, dword [rsi + r11 - 4]
mov dword [rax + rdx - 4], r10d
mov rsi, qword [rsp + 0x68]
mov r8, qword [rsp + 0x40]
mov qword [rsp + 0x28], rsi
jmp 0x7486bd
mov r15d, dword [rdi]
mov dword [r11], r15d
mov esi, dword [rdi + r8 - 4]
mov dword [r11 + r8 - 4], esi
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
jmp 0x748726
mov rdi, qword [rsp + 0x28]
mov rax, qword [rsp + 0x28]
movzx r9d, word [rsi + rdi - 2]
mov word [r8 + rax - 2], r9w
mov r14, qword [rsp + 0x68]
mov r8, qword [rsp + 0x40]
mov qword [rsp + 0x28], r14
jmp 0x7486bd
movzx edi, word [rdi + r15 - 2]
mov word [r11 + r15 - 2], di
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
jmp 0x748726