Function at 0x745880
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 r12, qword [rsp + 0xf0]
mov rbp, rcx
mov rbx, rdx
lea rdx, [0x0079083c]
cmp dword [r12 + 4], 0x11
mov esi, r8d
mov edi, r9d
ja case.0x7458c6.136
mov eax, dword [r12 + 4]
movsxd rcx, dword [rdx + rax*4]
add rcx, rdx
jmp rcx
mov r8d, 8
nop word cs:[rax + rax]
xor esi, 1
mov r10, qword [rbp]
movzx r9d, sil
test dil, dil
je 0x7458f4
or r9d, 2
or r9d, r8d
lea r11, [0x00799300]
mov r14, qword [r11 + r9*8]
mov qword [r10 + 0x108], r14
mov r15d, dword [r12 + 4]
cmp r15d, 0xb
je 0x745b60
cmp r15d, 0x10
je 0x745ce0
mov rax, qword [rbp]
mov r13, qword [rbp + 8]
mov rdi, qword [rax + 0x108]
mov qword [r13 + 0x108], rdi
mov rcx, qword [rbp]
mov r11, qword [rbp + 0x10]
mov r9, qword [rcx + 0x108]
mov qword [r11 + 0x108], r9
mov r10, qword [rbp + 0x18]
mov rbp, qword [rbp]
mov rdx, qword [rbp + 0x108]
mov qword [r10 + 0x108], rdx
movzx r8d, byte [0x007ac198]
test r8b, r8b
jne 0x745985
lea rcx, [0x007ac198]
call sub.libstdc_6.dll___cxa_guard_acquire
test eax, eax
jne 0x745c70
mov r15, qword [0x007ac168]
mov eax, dword [r12 + 4]
xor edx, edx
mov r12, rax
mov r14, qword [0x007ac160]
div r15
mov r13, qword [r14 + rdx*8]
test r13, r13
je 0x745b50
mov rdi, qword [r13]
cmp dword [rdi + 8], r12d
je 0x745a05
mov rsi, rdx
mov rdi, qword [rdi]
test rdi, rdi
je 0x745b50
xor edx, edx
mov eax, dword [rdi + 8]
mov r11, rax
div r15
cmp rdx, rsi
je 0x745a00
jmp 0x745b50
mov rdi, qword [rdi]
test rdi, rdi
je 0x745b50
xor edx, edx
mov eax, dword [rdi + 8]
mov r11, rax
div r15
cmp rsi, rdx
jne 0x745b50
cmp r12d, r11d
jne 0x7459e0
mov r10, qword [rdi + 0x10]
mov qword [rbx], r10
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 4
jmp 0x7458e0
xor r8d, r8d
jmp 0x7458e0
mov r8d, 0xc
jmp 0x7458e0
mov r8d, 0x10
jmp 0x7458e0
mov r8d, 0x14
jmp 0x7458e0
mov r8d, 0x18
jmp 0x7458e0
mov r8d, 0x1c
jmp 0x7458e0
mov r8d, 0x20
jmp 0x7458e0
mov r8d, 0x24
jmp 0x7458e0
mov r8d, 0x28
jmp 0x7458e0
mov r8d, 0x2c
jmp 0x7458e0
mov r8d, 0x30
jmp 0x7458e0
mov r8d, 0x34
jmp 0x7458e0
mov r8d, 0x38
jmp 0x7458e0
mov r8d, 0x3c
jmp 0x7458e0
mov r13, qword [0x007add88]
test r13, r13
je 0x7460b6
mov r14, qword [r13]
test r14, r14
je 0x7460dd
lea r8, str.Unsupported_algorithm_selected__miner_was_only_compiled_with_XMR_support.
xor edx, edx
mov rcx, r14
call fcn.00430850
xor r8d, r8d
jmp 0x7458e0
mov qword [rbx], 0
jmp 0x745a0c
mov r9, qword [rsp + 0xf8]
lea r13, [rsp + 0x40]
mov rdx, qword [r9]
lea rcx, [r13 + 0x10]
mov r8, qword [r9 + 8]
mov qword [rsp + 0x40], rcx
mov rcx, r13
add r8, rdx
call fcn.00407a50
lea rdx, str.auto
mov rcx, r13
call fcn.0077d8b8
test eax, eax
jne 0x745c3b
lea r15, [rsp + 0x60]
mov edx, 4
mov rcx, r15
call fcn.00744940
mov rax, qword [rsp + 0x40]
mov r11, qword [rsp + 0x60]
lea r8, [r15 + 0x10]
mov r10, qword [rsp + 0x68]
mov r9, rax
lea rsi, [r13 + 0x10]
mov rdx, r10
cmp r11, r8
je 0x7461c1
mov r14, qword [rsp + 0x70]
cmp rax, rsi
je 0x746066
mov qword [rsp + 0x28], r10
movq xmm5, qword [rsp + 0x28]
mov qword [rsp + 0x28], r14
mov rdi, qword [rsp + 0x50]
movhps xmm5, qword [rsp + 0x28]
mov qword [rsp + 0x40], r11
movups xmmword [rsp + 0x48], xmm5
test rax, rax
je 0x746085
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x68], 0
add r15, 0x10
mov byte [rax], 0
mov rcx, qword [rsp + 0x60]
cmp rcx, r15
je 0x745c3b
call sub.libstdc_6.dll_operator_delete_void_
lea rdx, [0x007906db]
mov rcx, r13
call fcn.0077d8b8
test eax, eax
jne 0x745e60
mov rcx, qword [rsp + 0x40]
add r13, 0x10
cmp rcx, r13
je 0x745922
call sub.libstdc_6.dll_operator_delete_void_
jmp 0x745922
lea r8, [0x007992f0]
lea rcx, [0x007ac160]
lea rdx, [r8 - 0x10]
call fcn.0041ef30
lea rcx, [0x007ac198]
call sub.libstdc_6.dll___cxa_guard_release
lea rcx, [0x0040c690]
call fcn.0077d990
mov eax, dword [r12 + 4]
xor edx, edx
mov r15, qword [0x007ac168]
mov rcx, qword [0x007ac160]
mov r12, rax
div r15
mov r9, qword [rcx + rdx*8]
test r9, r9
je 0x745b50
mov rdi, qword [r9]
mov rsi, rdx
cmp dword [rdi + 8], r12d
jne 0x7459e0
jmp 0x745a05
mov rcx, qword [rsp + 0xf8]
lea rdx, [0x007906db]
call fcn.0077d8b8
test eax, eax
je 0x745922
mov rdi, qword [rsp + 0xf8]
lea r13, [rsp + 0x60]
mov rdx, qword [rdi]
mov rcx, r13
lea rsi, [r13 + 0x10]
mov r8, qword [rdi + 8]
mov qword [rsp + 0x60], rsi
add r8, rdx
call fcn.00407a50
lea rdx, str.auto
mov rcx, r13
call fcn.0077d8b8
test eax, eax
jne 0x745dd7
lea r14, [rsp + 0x40]
mov edx, 4
mov rcx, r14
call fcn.00744940
mov rax, qword [rsp + 0x60]
mov r10, qword [rsp + 0x40]
lea rcx, [r14 + 0x10]
mov r11, qword [rsp + 0x48]
mov r9, rax
mov r8, r11
cmp r10, rcx
je 0x74621e
mov rdx, qword [rsp + 0x50]
lea r9, [r13 + 0x10]
cmp rax, r9
je 0x7462bf
mov qword [rsp + 0x28], r8
movq xmm2, qword [rsp + 0x28]
mov qword [rsp + 0x28], rdx
mov r11, qword [rsp + 0x70]
movhps xmm2, qword [rsp + 0x28]
mov qword [rsp + 0x60], r10
movups xmmword [rsp + 0x68], xmm2
test rax, rax
je 0x7462de
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x50], r11
mov qword [rsp + 0x48], 0
add r14, 0x10
mov byte [rax], 0
mov rcx, qword [rsp + 0x40]
cmp rcx, r14
je 0x745dd7
call sub.libstdc_6.dll_operator_delete_void_
mov r14, qword [0x007add88]
test r14, r14
je 0x7460fb
mov rdi, qword [r14]
test rdi, rdi
je 0x746122
mov r9, qword [rsp + 0x60]
lea r8, str.enable_cryptonight_r_asm__s_cpus
xor edx, edx
mov rcx, rdi
call fcn.00430850
xor esi, esi
lea rdi, str.intel_avx
mov rdx, rdi
mov rcx, r13
call fcn.0077d8b8
mov rdx, qword [rbp + rsi*8]
test eax, eax
setne al
movzx r10d, al
add rsi, 1
add r10d, 1
mov dword [rdx + 0x118], r10d
cmp rsi, 4
jne 0x745e12
mov rcx, qword [rsp + 0x60]
add r13, 0x10
cmp rcx, r13
jne 0x745c64
jmp 0x745922
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 edi, dword [r12 + 0x18]
mov rax, qword [r12 + 0x10]
mov r15d, dword [r12 + 8]
test edi, edi
jne 0x745e9c
lea edi, [rax - 1]
and edi, 0xfffffff0
mov r14, qword [rbp]
lea r9, [rsp + 0x38]
mov r8d, 0x40
mov edx, 0x10000
mov rcx, qword [r14 + 0x110]
test rcx, rcx
je 0x746093
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 0x7461a8
call fcn.0077d8b8
test eax, eax
jne 0x745fd3
lea rdx, [0x0077b540]
mov r11, qword [rbp]
mov r9d, edi
mov r8d, r15d
mov rcx, qword [r11 + 0x110]
test rcx, rcx
je 0x745fd3
call fcn.00407d40
mov rcx, qword [rbp]
mov r9, qword [rcx + 0x110]
mov qword [rcx + 0x100], r9
mov rdx, qword [rbp]
mov r10, qword [rbp + 8]
mov r8, qword [rdx + 0x100]
lea rdx, str.intel_avx
mov qword [r10 + 0x100], r8
mov rax, qword [rbp]
mov r15, qword [rbp + 0x10]
mov rdi, qword [rax + 0x100]
mov qword [r15 + 0x100], rdi
mov r11, qword [rbp]
mov r14, qword [rbp + 0x18]
mov rcx, qword [r11 + 0x100]
mov qword [r14 + 0x100], rcx
mov rcx, rsi
call fcn.0077d8b8
mov r9, qword [rbp]
lea r10, [0x00403420]
mov r8d, 0x20
mov qword [r9 + 0x108], r10
mov rdx, qword [rbp]
lea r9, [rsp + 0x3c]
mov rcx, qword [rdx + 0x110]
mov edx, 0x10000
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8, qword [rbp]
mov r15, qword [r8 + 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 0x745fe6
call sub.libstdc_6.dll_operator_delete_void_
mov rcx, qword [rsp + 0xf8]
lea rdx, str.auto
call fcn.0077d8b8
test eax, eax
jne 0x746140
lea rdx, str.intel_avx
mov rcx, r13
call fcn.0077d8b8
test eax, eax
jne 0x74602c
lea rdx, str.amd_avx
mov rcx, r13
call fcn.0077d8b8
test eax, eax
je 0x746140
mov r14, qword [0x007add88]
test r14, r14
je 0x74627b
mov rdi, qword [r14]
test rdi, rdi
je 0x7462a2
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 0x745c52
mov qword [rsp + 0x28], r10
movq xmm4, qword [rsp + 0x28]
mov qword [rsp + 0x28], r14
movhps xmm4, qword [rsp + 0x28]
mov qword [rsp + 0x40], r11
movups xmmword [rsp + 0x48], xmm4
lea rax, [r15 + 0x10]
mov qword [rsp + 0x60], rax
jmp 0x745c1c
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x10000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [r14 + 0x110], rax
jmp 0x745ec6
mov ecx, 0x28
call sub.libstdc_6.dll_operator_new_unsigned_long_long_
pxor xmm0, xmm0
mov r13, 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 r14, rax
call fcn.00430940
mov qword [r13], r14
jmp 0x745b2d
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 0x745df3
lea rdx, str.intel_avx
mov rcx, r13
call fcn.0077d8b8
test eax, eax
je 0x745c52
lea rdx, str.amd_avx
mov rcx, r13
call fcn.0077d8b8
test eax, eax
je 0x745c52
mov rsi, qword [0x007add88]
test rsi, rsi
je 0x746337
mov rdi, qword [rsi]
test rdi, rdi
je 0x74635e
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 0x745c52
call fcn.0077d8b8
lea rdx, [0x0077b200]
test eax, eax
jne 0x745efb
jmp 0x745ef4
test r10, r10
je 0x74620a
cmp r10, 1
je 0x7462ec
cmp r10, 8
jae 0x746304
test r10b, 4
jne 0x7463c6
test r10, r10
je 0x746204
movzx r8d, byte [r11]
mov byte [rax], r8b
test r10b, 2
jne 0x74641e
mov r9, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x68]
mov r10, rdx
mov rax, r9
mov qword [rsp + 0x48], r10
mov byte [rax + r10], 0
mov rax, qword [rsp + 0x60]
jmp 0x745c1c
test r11, r11
je 0x746267
cmp r11, 1
je 0x74637b
cmp r11, 8
jae 0x746393
test r11b, 4
jne 0x7463e4
test r11, r11
je 0x746261
movzx edi, byte [r10]
mov byte [rax], dil
test r11b, 2
jne 0x746403
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
mov r11, r8
mov rax, r9
mov qword [rsp + 0x68], r11
mov byte [rax + r11], 0
mov rax, qword [rsp + 0x40]
jmp 0x745db8
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 0x746048
mov qword [rsp + 0x28], r11
movq xmm1, qword [rsp + 0x28]
mov qword [rsp + 0x28], rdx
movhps xmm1, qword [rsp + 0x28]
mov qword [rsp + 0x60], r10
movups xmmword [rsp + 0x68], xmm1
lea rax, [r14 + 0x10]
mov qword [rsp + 0x40], rax
jmp 0x745db8
movzx r8d, byte [rsp + 0x70]
mov byte [rax], r8b
mov r10, qword [rsp + 0x68]
mov rax, qword [rsp + 0x40]
jmp 0x74620a
mov r14, qword [r11]
lea rdi, [rax + 8]
mov qword [rax], r14
and rdi, 0xfffffffffffffff8
mov rsi, qword [r11 + r10 - 8]
sub r9, rdi
mov qword [rax + r10 - 8], rsi
mov rsi, r11
sub rsi, r9
add r9, r10
mov rcx, r9
shr rcx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x7461fa
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 0x74618a
movzx r15d, byte [rsp + 0x50]
mov byte [rax], r15b
mov r11, qword [rsp + 0x48]
mov rax, qword [rsp + 0x60]
jmp 0x746267
mov rcx, qword [r10]
lea rdi, [rax + 8]
mov rsi, r10
mov qword [rax], rcx
and rdi, 0xfffffffffffffff8
mov rcx, rax
mov rdx, qword [r10 + r11 - 8]
sub rcx, rdi
sub rsi, rcx
add rcx, r11
mov qword [rax + r11 - 8], rdx
shr rcx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x746257
mov r10d, dword [r11]
mov dword [rax], r10d
mov ecx, dword [r11 + rdx - 4]
mov dword [rax + rdx - 4], ecx
mov r9, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x68]
jmp 0x746204
mov r15d, dword [r10]
mov dword [rax], r15d
mov esi, dword [r10 + r11 - 4]
mov dword [rax + r11 - 4], esi
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
jmp 0x746261
movzx r10d, word [r10 + r11 - 2]
mov word [rax + r11 - 2], r10w
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
jmp 0x746261
movzx r11d, word [r11 + r10 - 2]
mov word [rax + r10 - 2], r11w
mov r9, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x68]
jmp 0x746204