Function at 0x747130
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, [0x007908cc]
cmp dword [rbp + 4], 0x11
mov ebx, r8d
mov esi, r9d
ja case.0x747172.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 0x7471a4
or r8d, 2
or r8d, edi
lea r10, [0x00798ec0]
mov r11, qword [r10 + r8*8]
mov qword [r9 + 0x108], r11
mov r15d, dword [rbp + 4]
cmp r15d, 0xb
je 0x7473c0
cmp r15d, 0x10
je 0x747560
mov rbx, qword [r13 + 8]
mov r13, qword [r13]
mov rcx, qword [r13 + 0x108]
mov qword [rbx + 0x108], rcx
movzx r9d, byte [0x007ac118]
test r9b, r9b
jne 0x747208
lea rcx, [0x007ac118]
call sub.libstdc_6.dll___cxa_guard_acquire
test eax, eax
jne 0x7474d0
mov eax, dword [rbp + 4]
mov r8, qword [0x007ac0e8]
xor edx, edx
mov rbp, rax
mov rdi, qword [0x007ac0e0]
div r8
mov r10, qword [rdi + rdx*8]
test r10, r10
je 0x747261
mov r14, qword [r10]
mov r11, rdx
cmp dword [r14 + 8], ebp
jne 0x747259
jmp 0x7473b0
mov eax, dword [r14 + 8]
xor edx, edx
mov rbx, rax
div r8
cmp r11, rdx
jne 0x747261
cmp ebp, ebx
je 0x7473b0
mov r14, qword [r14]
test r14, r14
jne 0x747240
mov qword [r12], 0
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edi, 4
jmp 0x747190
xor edi, edi
jmp 0x747190
mov edi, 0xc
jmp 0x747190
mov edi, 0x10
jmp 0x747190
mov edi, 0x14
jmp 0x747190
mov edi, 0x18
jmp 0x747190
mov edi, 0x1c
jmp 0x747190
mov edi, 0x20
jmp 0x747190
mov edi, 0x24
jmp 0x747190
mov edi, 0x28
jmp 0x747190
mov edi, 0x2c
jmp 0x747190
mov edi, 0x30
jmp 0x747190
mov edi, 0x34
jmp 0x747190
mov edi, 0x38
jmp 0x747190
mov edi, 0x3c
jmp 0x747190
mov r14, qword [0x007add88]
test r14, r14
je 0x747933
mov rdi, qword [r14]
test rdi, rdi
je 0x74795a
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 0x747190
mov r13, qword [r14 + 0x10]
mov qword [r12], r13
jmp 0x747269
mov r8, qword [rsp + 0xf8]
lea rbx, [rsp + 0x40]
mov rdx, qword [r8]
lea r9, [rbx + 0x10]
mov rcx, rbx
mov qword [rsp + 0x40], r9
mov r8, qword [r8 + 8]
add r8, rdx
call fcn.00407a50
lea rdx, str.auto
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
jne 0x747498
lea r14, [rsp + 0x60]
mov edx, 2
mov rcx, r14
call fcn.00744940
mov rax, qword [rsp + 0x40]
mov r11, qword [rsp + 0x60]
lea r10, [r14 + 0x10]
mov rdx, qword [rsp + 0x68]
mov r9, rax
mov qword [rsp + 0x28], rdx
cmp r11, r10
je 0x747a50
mov r15, qword [rsp + 0x70]
lea rdx, [rbx + 0x10]
cmp rax, rdx
je 0x7478e0
movq xmm5, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x28], r15
movhps xmm5, qword [rsp + 0x28]
movups xmmword [rsp + 0x48], xmm5
test rax, rax
je 0x7478fa
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x68], 0
add r14, 0x10
mov byte [rax], 0
mov rcx, qword [rsp + 0x60]
cmp rcx, r14
je 0x747498
call sub.libstdc_6.dll_operator_delete_void_
lea rdx, [0x007906db]
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
jne 0x7476f0
mov rcx, qword [rsp + 0x40]
add rbx, 0x10
cmp rcx, rbx
je 0x7471d1
call sub.libstdc_6.dll_operator_delete_void_
jmp 0x7471d1
lea r8, [0x00798ec0]
lea rcx, [0x007ac0e0]
lea rdx, [r8 - 0x10]
call fcn.0041ef30
lea rcx, [0x007ac118]
call sub.libstdc_6.dll___cxa_guard_release
lea rcx, [0x0040c6b0]
call fcn.0077d990
mov r8, qword [0x007ac0e8]
mov eax, dword [rbp + 4]
xor edx, edx
mov r15, qword [0x007ac0e0]
mov rbp, rax
div r8
mov rsi, qword [r15 + rdx*8]
test rsi, rsi
je 0x747261
mov r14, qword [rsi]
cmp dword [r14 + 8], ebp
je 0x7473b0
mov r11, rdx
mov r14, qword [r14]
test r14, r14
je 0x747261
xor edx, edx
mov eax, dword [r14 + 8]
mov rbx, rax
div r8
cmp rdx, r11
je 0x747251
jmp 0x747261
mov rcx, qword [rsp + 0xf8]
lea rdx, [0x007906db]
call fcn.0077d8b8
test eax, eax
je 0x7471d1
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 0x747658
lea r14, [rsp + 0x40]
mov edx, 2
mov rcx, r14
call fcn.00744940
mov r10, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x40]
lea rcx, [r14 + 0x10]
mov rdx, qword [rsp + 0x48]
mov r9, r10
mov r8, rdx
cmp rsi, rcx
je 0x747ad6
mov rdi, qword [rsp + 0x50]
lea rdx, [rbx + 0x10]
cmp r10, rdx
je 0x747b74
mov qword [rsp + 0x28], r8
movq xmm2, qword [rsp + 0x28]
mov qword [rsp + 0x28], rdi
mov r9, qword [rsp + 0x70]
movhps xmm2, qword [rsp + 0x28]
mov qword [rsp + 0x60], rsi
movups xmmword [rsp + 0x68], xmm2
test r10, r10
je 0x747b93
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x48], 0
add r14, 0x10
mov byte [r10], 0
mov rcx, qword [rsp + 0x40]
cmp rcx, r14
je 0x747658
call sub.libstdc_6.dll_operator_delete_void_
mov r14, qword [0x007add88]
test r14, r14
je 0x747977
mov rdi, qword [r14]
test rdi, rdi
je 0x74799e
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 rcx, rbx
lea rdx, str.intel_avx
test eax, eax
setne r10b
mov rax, qword [r13]
movzx r15d, r10b
add r15d, 1
mov dword [rax + 0x118], r15d
call fcn.0077d8b8
mov rdi, qword [r13 + 8]
test eax, eax
setne sil
movzx ecx, sil
add rbx, 0x10
add ecx, 1
mov dword [rdi + 0x118], ecx
mov rcx, qword [rsp + 0x60]
cmp rcx, rbx
jne 0x7474c1
jmp 0x7471d1
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
lea rsi, [rsp + 0x60]
lea r14, [rsi + 0x10]
add r8, rdx
mov rcx, rsi
mov qword [rsp + 0x60], r14
call fcn.00407a50
mov r14d, dword [rbp + 0x18]
mov rax, qword [rbp + 0x10]
mov r15d, dword [rbp + 8]
test r14d, r14d
jne 0x74772c
lea r14d, [rax - 1]
and r14d, 0xfffffff0
mov rdi, qword [r13]
lea r9, [rsp + 0x38]
mov r8d, 0x40
mov edx, 0x10000
mov rcx, qword [rdi + 0x110]
test rcx, rcx
je 0x747910
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 0x747a30
call fcn.0077d8b8
test eax, eax
jne 0x74783f
lea rdx, [0x0077b540]
mov r10, qword [r13]
mov r8d, r15d
mov r9d, r14d
mov rcx, qword [r10 + 0x110]
test rcx, rcx
je 0x74783f
call fcn.00407d40
mov rcx, qword [r13]
mov r9, qword [rcx + 0x110]
mov qword [rcx + 0x100], r9
mov rdx, qword [r13]
mov r11, qword [r13 + 8]
mov rcx, rsi
mov r8, qword [rdx + 0x100]
lea rdx, str.intel_avx
mov qword [r11 + 0x100], r8
call fcn.0077d8b8
mov r15, qword [r13]
test eax, eax
jne 0x747ac3
lea r14, [0x006ec4f0]
mov qword [r15 + 0x108], r14
mov rdi, qword [r13]
lea r9, [rsp + 0x3c]
mov r8d, 0x20
mov edx, 0x10000
mov rcx, qword [rdi + 0x110]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r10, qword [r13]
mov r15, qword [r10 + 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 0x747852
call sub.libstdc_6.dll_operator_delete_void_
mov rcx, qword [rsp + 0xf8]
lea rdx, str.auto
call fcn.0077d8b8
test eax, eax
jne 0x7479c0
lea rdx, str.intel_avx
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
jne 0x747898
lea rdx, str.amd_avx
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
je 0x7479c0
mov r14, qword [0x007add88]
test r14, r14
je 0x747b30
mov rdi, qword [r14]
test rdi, rdi
je 0x747b57
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 0x7474af
movq xmm4, qword [rsp + 0x28]
mov qword [rsp + 0x28], r15
movhps xmm4, qword [rsp + 0x28]
mov qword [rsp + 0x40], r11
movups xmmword [rsp + 0x48], xmm4
lea rax, [r14 + 0x10]
mov qword [rsp + 0x60], rax
jmp 0x747479
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x10000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rdi + 0x110], rax
jmp 0x747756
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 0x74738c
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 0x747674
lea rdx, str.intel_avx
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
je 0x7474af
lea rdx, str.amd_avx
mov rcx, rbx
call fcn.0077d8b8
test eax, eax
je 0x7474af
mov rsi, qword [0x007add88]
test rsi, rsi
je 0x747bf8
mov rdi, qword [rsi]
test rdi, rdi
je 0x747c1f
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 0x7474af
call fcn.0077d8b8
lea rdx, [0x0077b800]
test eax, eax
jne 0x74778b
jmp 0x747784
test rdx, rdx
je 0x747ab0
cmp rdx, 1
je 0x747ba1
cmp qword [rsp + 0x28], 8
jae 0x747bb9
test byte [rsp + 0x28], 4
jne 0x747c84
cmp qword [rsp + 0x28], 0
je 0x747a9f
movzx r15d, byte [r11]
mov byte [rax], r15b
test byte [rsp + 0x28], 2
jne 0x747cb1
mov r11, qword [rsp + 0x68]
mov r9, qword [rsp + 0x40]
mov qword [rsp + 0x28], r11
mov rdx, qword [rsp + 0x28]
mov rax, r9
nop word [rax + rax]
mov qword [rsp + 0x48], rdx
mov byte [rax + rdx], 0
mov rax, qword [rsp + 0x60]
jmp 0x747479
lea rax, [0x004033e0]
mov qword [r15 + 0x108], rax
jmp 0x7477fb
test rdx, rdx
je 0x747b1c
cmp rdx, 1
je 0x747c3c
cmp rdx, 8
jae 0x747c54
test dl, 4
jne 0x747cdb
test rdx, rdx
je 0x747b16
movzx eax, byte [rsi]
mov byte [r10], al
test dl, 2
jne 0x747cfa
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
mov rdx, r8
mov r10, r9
mov qword [rsp + 0x68], rdx
mov byte [r10 + rdx], 0
mov r10, qword [rsp + 0x40]
jmp 0x747638
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 0x7478b4
mov qword [rsp + 0x28], r8
movq xmm1, qword [rsp + 0x28]
mov qword [rsp + 0x28], rdi
movhps xmm1, qword [rsp + 0x28]
mov qword [rsp + 0x60], rsi
movups xmmword [rsp + 0x68], xmm1
lea r10, [r14 + 0x10]
mov qword [rsp + 0x40], r10
jmp 0x747638
movzx r8d, byte [rsp + 0x70]
mov byte [rax], r8b
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x40]
jmp 0x747ab0
mov rdi, qword [r11]
mov rsi, r11
mov qword [rax], rdi
lea rdi, [rax + 8]
mov r8, qword [rsp + 0x28]
mov r15, qword [rsp + 0x28]
and rdi, 0xfffffffffffffff8
sub r9, rdi
sub rsi, r9
mov r10, qword [r11 + r8 - 8]
mov qword [rax + r15 - 8], r10
add r9, qword [rsp + 0x28]
mov rcx, r9
shr rcx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x747a90
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 0x747a0a
movzx r11d, byte [rsp + 0x50]
mov byte [r10], r11b
mov rdx, qword [rsp + 0x48]
mov r10, qword [rsp + 0x60]
jmp 0x747b1c
mov rcx, qword [rsi]
mov qword [r10], rcx
mov rcx, r10
mov rdi, qword [rsi + rdx - 8]
mov qword [r10 + rdx - 8], rdi
lea rdi, [r10 + 8]
and rdi, 0xfffffffffffffff8
sub rcx, rdi
sub rsi, rcx
add rcx, rdx
shr rcx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x747b0c
mov ecx, dword [r11]
mov dword [rax], ecx
mov rdi, qword [rsp + 0x28]
mov r8d, dword [r11 + rdi - 4]
mov r11, qword [rsp + 0x28]
mov dword [rax + r11 - 4], r8d
mov r10, qword [rsp + 0x68]
mov r9, qword [rsp + 0x40]
mov qword [rsp + 0x28], r10
jmp 0x747a9f
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x28]
movzx esi, word [r11 + rdx - 2]
mov word [r9 + rax - 2], si
mov rcx, qword [rsp + 0x68]
mov r9, qword [rsp + 0x40]
mov qword [rsp + 0x28], rcx
jmp 0x747a9f
mov r11d, dword [rsi]
mov dword [r10], r11d
mov r15d, dword [rsi + rdx - 4]
mov dword [r10 + rdx - 4], r15d
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
jmp 0x747b16
movzx esi, word [rsi + rdx - 2]
mov word [r10 + rdx - 2], si
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
jmp 0x747b16