Function at 0x140092200
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x70]
vmovups xmmword [rbp], xmm6
vmovups xmmword [rbp + 0x10], xmm7
vmovups xmmword [rbp + 0x20], xmm8
vmovups xmmword [rbp + 0x30], xmm9
vmovups xmmword [rbp + 0x40], xmm10
mov eax, 0x401c0
mov r8d, r8d
mov rsi, rcx
mov qword [rbp + 0xa8], rdx
mov r12, r8
mov dword [rbp + 0xb8], r9d
call fcn.1402a1600
sub rsp, rax
mov rdx, rcx
lea rbx, [rsp + 0x3f]
and rbx, 0xffffffffffffffe0
lea r14, [rbx + 0x40000]
lea rdi, [rbx + 0x40040]
mov rcx, r14
lea r13, [rbx + 0x40188]
call sym.hash_process
vmovdqu xmm7, xmmword [rbx + 0x40040]
lea r9, [rbx + 0x400c8]
mov qword [rbp - 8], r9
vmovdqu xmmword [rbx + 0x400c8], xmm7
vmovdqu xmm7, xmmword [rdi + 0x10]
vmovdqu xmmword [rbx + 0x400d8], xmm7
vmovdqu xmm7, xmmword [rdi + 0x20]
vmovdqu xmmword [rbx + 0x400e8], xmm7
vmovdqu xmm7, xmmword [rdi + 0x30]
vmovdqu xmmword [rbx + 0x400f8], xmm7
vmovdqu xmm7, xmmword [rdi + 0x40]
vmovdqu xmmword [rbx + 0x40108], xmm7
vmovdqu xmm7, xmmword [rdi + 0x50]
vmovdqu xmmword [rbx + 0x40118], xmm7
vmovdqu xmm7, xmmword [rdi + 0x60]
vmovdqu xmmword [rbx + 0x40128], xmm7
vmovdqu xmm7, xmmword [rdi + 0x70]
vmovdqu xmmword [rbx + 0x40138], xmm7
vmovdqu xmm7, xmmword [rbx + 0x40000]
vmovdqu xmmword [rbx + 0x40188], xmm7
vmovdqu xmm7, xmmword [r14 + 0x10]
vmovdqu xmmword [r13 + 0x10], xmm7
call sym.oaes_alloc
mov r11d, dword [rbp + 0xb8]
mov r9, qword [rbp - 8]
mov qword [rbx + 0x401a8], rax
mov rcx, rax
cmp r11d, 1
jne 0x14009233a
cmp r12d, 0x2a
jbe 0x140092ac0
cmp r11d, 1
je 0x140092a85
jle 0x140092a99
mov rax, qword [rbx + 0x40060]
vmovdqu xmm7, xmmword [rbx + 0x40040]
mov qword [rbp - 0x38], 0
vpxor xmm0, xmm7, xmmword [rbx + 0x40050]
mov qword [rbp - 0x18], rax
mov rax, qword [rbx + 0x40068]
vmovdqu xmmword [rbx + 0x40168], xmm0
mov qword [rbp - 0x20], rax
mov rdx, r13
mov r8d, 0x20
mov qword [rbp - 0x10], r9
mov rsi, rbx
mov dword [rbp + 0xb8], r11d
lea r15, [rbx + 0x40148]
call sym.oaes_key_import_data
mov qword [rbp - 8], rdi
mov r13d, dword [rbp + 0xb8]
mov rdi, rbx
mov rbx, qword [rbp - 0x10]
nop dword [rax]
mov r12, rbx
nop dword [rax + rax]
mov rax, qword [rdi + 0x401a8]
mov rdx, r12
mov rcx, r12
add r12, 0x10
mov rax, qword [rax]
mov r8, qword [rax + 0x18]
call sym.aesb_pseudo_round
cmp r15, r12
jne 0x1400923c0
vmovdqu xmm2, xmmword [rbx]
sub rsi, 0xffffffffffffff80
vmovdqu xmmword [rsi - 0x80], xmm2
vmovdqu xmm3, xmmword [rbx + 0x10]
vmovdqu xmmword [rsi - 0x70], xmm3
vmovdqu xmm4, xmmword [rbx + 0x20]
vmovdqu xmmword [rsi - 0x60], xmm4
vmovdqu xmm5, xmmword [rbx + 0x30]
vmovdqu xmmword [rsi - 0x50], xmm5
vmovdqu xmm7, xmmword [rbx + 0x40]
vmovdqu xmmword [rsi - 0x40], xmm7
vmovdqu xmm6, xmmword [rbx + 0x50]
vmovdqu xmmword [rsi - 0x30], xmm6
vmovdqu xmm2, xmmword [rbx + 0x60]
vmovdqu xmmword [rsi - 0x20], xmm2
vmovdqu xmm3, xmmword [rbx + 0x70]
vmovdqu xmmword [rsi - 0x10], xmm3
cmp r14, rsi
jne 0x1400923b8
mov r9, rbx
mov rbx, rdi
mov rdi, qword [rbp - 8]
mov qword [rbp - 0x48], r14
vmovdqu xmm7, xmmword [rbx + 0x40020]
vpxor xmm0, xmm7, xmmword [rbx + 0x40000]
lea rax, [rbx + 0x40178]
mov qword [rbp - 0x10], 0x10000
vmovdqu xmm6, xmmword [rbx + 0x40030]
mov qword [rbp - 8], rax
vxorps xmm9, xmm9, xmm9
mov r14d, r13d
vmovdqu xmmword [rbx + 0x40148], xmm0
vpxor xmm0, xmm6, xmmword [rbx + 0x40010]
vmovsd xmm8, qword [0x1402be898]
mov qword [rbp - 0x40], rdi
vmovsd xmm7, qword [0x1402be8a0]
mov qword [rbp - 0x50], r9
vmovsd xmm6, qword [0x1402be8a8]
vmovdqu xmmword [rbx + 0x40158], xmm0
jmp 0x14009271f
mov rsi, qword [rbx + 0x40178]
mov rdi, rsi
and edi, 0x1fff0
lea r13, [rbx + rdi]
mov r12, qword [r13]
mov r11, qword [r13 + 8]
cmp r14d, 1
jle 0x1400925b8
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x18]
mov rax, rcx
xor r12, rdx
xor edx, edx
shl rax, 0x20
xor r12, rax
mov eax, dword [rbx + 0x40178]
lea ecx, [rax + rcx*2]
mov rax, qword [rbx + 0x40180]
or ecx, 0x80000001
div rcx
shl rdx, 0x20
mov eax, eax
add rax, rdx
mov r8, rax
mov qword [rbp - 0x18], rax
add r8, rsi
js 0x140092a68
vcvtsi2sd xmm0, xmm9, r8
vaddsd xmm0, xmm0, xmm8
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x140092aa6
vsqrtsd xmm0, xmm0, xmm0
vaddsd xmm0, xmm0, xmm0
vsubsd xmm0, xmm0, xmm7
vcomisd xmm0, xmm6
jae 0x140092a50
vcvttsd2si rdx, xmm0
mov r10, rdx
mov rcx, rdx
mov r9, rdx
shr r10, 1
and ecx, 1
shl r9, 0x20
lea rax, [r10 + rcx]
imul rax, r10
add rax, r9
movabs r9, 0x100000000
add r9, rax
mov qword [rbp - 0x20], r9
mov r9, r8
sub r9, r10
cmp qword [rbp - 0x20], r9
setb r9b
add rcx, rax
movzx r9d, r9b
cmp r8, rcx
sbb r9d, 0
movsxd r9, r9d
lea rax, [r9 + rdx]
mov qword [rbp - 0x20], rax
mov rax, rsi
mov r9, r12
mov edx, r12d
mov esi, esi
shr r9, 0x20
shr rax, 0x20
mov r8, rsi
mov rcx, rax
imul rsi, r9
imul rax, rdx
imul r8, rdx
xor edx, edx
imul rcx, r9
add rax, rsi
mov r9, rax
setb dl
shl r9, 0x20
add r9, r8
setb r8b
shr rax, 0x20
add rax, rcx
shl rdx, 0x20
movzx r8d, r8b
add rax, rdx
lea rsi, [rax + r8]
vmovq xmm4, rsi
vpinsrq xmm10, xmm4, r9, 1
cmp rsi, rcx
jb 0x140092a20
cmp r14d, 1
jle 0x1400926a3
mov rax, rdi
xor rax, 0x10
lea rdx, [rbx + rax]
xor qword [rdx], rsi
xor qword [rbx + rax + 8], r9
mov rax, rdi
xor rdi, 0x30
mov r8, qword [rdx]
add rdi, rbx
xor rax, 0x20
mov r9, qword [rbx + 0x40168]
mov rcx, qword [rdx + 8]
add r9, qword [rdi]
add rax, rbx
vpxor xmm10, xmm10, xmmword [rax]
mov qword [rdx], r9
mov r9, qword [rbx + 0x40170]
add r9, qword [rdi + 8]
mov qword [rdx + 8], r9
mov rdx, qword [rbx + 0x40148]
add rdx, qword [rax]
mov qword [rdi], rdx
mov rdx, qword [rbx + 0x40150]
add rdx, qword [rax + 8]
mov qword [rdi + 8], rdx
add r8, qword [rbx + 0x40158]
mov qword [rax], r8
add rcx, qword [rbx + 0x40160]
mov qword [rax + 8], rcx
vpaddq xmm10, xmm10, xmmword [rbx + 0x40148]
vmovdqu xmmword [rbx + 0x40148], xmm10
vmovq qword [r13], xmm10
mov rax, qword [rbx + 0x40150]
mov qword [r13 + 8], rax
xor rax, r11
xor qword [rbx + 0x40148], r12
mov qword [rbx + 0x40150], rax
cmp r14d, 1
je 0x140092830
sub qword [rbp - 0x10], 1
vmovq xmm5, qword [rbx + 0x40158]
vpinsrq xmm1, xmm5, qword [rbx + 0x40160], 1
vmovq xmm5, qword [rbx + 0x40178]
vpinsrq xmm0, xmm5, qword [rbx + 0x40180], 1
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [rbx + 0x40158], ymm0
je 0x140092875
vzeroupper
mov rsi, qword [rbx + 0x40148]
mov rdx, qword [rbp - 8]
mov r8, r15
and esi, 0x1fff0
lea rdi, [rbx + rsi]
mov rcx, rdi
call sym.aesb_single_round
cmp r14d, 1
jle 0x1400927b4
mov rdx, rsi
mov rax, rsi
xor rsi, 0x30
mov r9, qword [rbx + 0x40168]
add rsi, rbx
xor rdx, 0x10
xor rax, 0x20
add r9, qword [rsi]
add rdx, rbx
add rax, rbx
mov r8, qword [rdx]
mov rcx, qword [rdx + 8]
mov qword [rdx], r9
mov r9, qword [rbx + 0x40170]
add r9, qword [rsi + 8]
mov qword [rdx + 8], r9
mov rdx, qword [rbx + 0x40148]
add rdx, qword [rax]
mov qword [rsi], rdx
mov rdx, qword [rbx + 0x40150]
add rdx, qword [rax + 8]
mov qword [rsi + 8], rdx
add r8, qword [rbx + 0x40158]
mov qword [rax], r8
add rcx, qword [rbx + 0x40160]
mov qword [rax + 8], rcx
mov rax, qword [rbx + 0x40178]
xor rax, qword [rbx + 0x40158]
mov qword [rdi], rax
mov rax, qword [rbx + 0x40180]
xor rax, qword [rbx + 0x40160]
mov qword [rdi + 8], rax
cmp r14d, 1
jne 0x1400924c0
shr rax, 0x18
mov ecx, eax
mov edx, eax
shr cl, 3
and edx, 1
and ecx, 6
or ecx, edx
mov edx, 0x75310
add ecx, ecx
shr edx, cl
and edx, 0x30
xor edx, eax
mov byte [rdi + 0xb], dl
mov rsi, qword [rbx + 0x40178]
mov rdi, rsi
and edi, 0x1fff0
lea r13, [rbx + rdi]
mov r12, qword [r13]
mov r11, qword [r13 + 8]
jmp 0x1400925b8
mov rax, qword [rbp - 0x38]
xor qword [r13 + 8], rax
sub qword [rbp - 0x10], 1
vmovq xmm1, qword [rbx + 0x40158]
vmovq xmm2, qword [rbx + 0x40178]
vpinsrq xmm1, xmm1, qword [rbx + 0x40160], 1
vpinsrq xmm0, xmm2, qword [rbx + 0x40180], 1
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [rbx + 0x40158], ymm0
jne 0x14009271c
mov rdi, qword [rbp - 0x40]
vmovdqu xmm7, xmmword [rbx + 0x40040]
lea rdx, [rbx + 0x40020]
mov r8d, 0x20
mov r9, qword [rbp - 0x50]
mov r14, qword [rbp - 0x48]
vmovdqu xmmword [rbx + 0x400c8], xmm7
vmovdqu xmm6, xmmword [rdi + 0x10]
mov qword [rbp - 8], r9
vmovdqu xmmword [r9 + 0x10], xmm6
vmovdqu xmm7, xmmword [rdi + 0x20]
vmovdqu xmmword [r9 + 0x20], xmm7
vmovdqu xmm6, xmmword [rdi + 0x30]
vmovdqu xmmword [r9 + 0x30], xmm6
vmovdqu xmm7, xmmword [rdi + 0x40]
vmovdqu xmmword [r9 + 0x40], xmm7
vmovdqu xmm6, xmmword [rdi + 0x50]
vmovdqu xmmword [r9 + 0x50], xmm6
vmovdqu xmm7, xmmword [rdi + 0x60]
vmovdqu xmmword [r9 + 0x60], xmm7
vmovdqu xmm6, xmmword [rdi + 0x70]
vmovdqu xmmword [r9 + 0x70], xmm6
mov rcx, qword [rbx + 0x401a8]
vzeroupper
xor r12d, r12d
call sym.oaes_key_import_data
mov r13, qword [rbp - 8]
nop dword [rax]
mov rsi, r13
nop dword [rax + rax]
mov rax, qword [rsi + r12 - 0x400c8]
xor qword [rsi], rax
mov rdx, rsi
mov rcx, rsi
mov rax, qword [rsi + r12 - 0x400c0]
xor qword [rsi + 8], rax
add rsi, 0x10
mov rax, qword [rbx + 0x401a8]
mov rax, qword [rax]
mov r8, qword [rax + 0x18]
call sym.aesb_pseudo_round
cmp r15, rsi
jne 0x140092910
sub r12, 0xffffffffffffff80
cmp r12, 0x40000
jne 0x140092908
vmovdqu xmm7, xmmword [rbx + 0x400c8]
mov rcx, r14
vmovdqu xmmword [rbx + 0x40040], xmm7
vmovdqu xmm6, xmmword [r13 + 0x10]
vmovdqu xmmword [rdi + 0x10], xmm6
vmovdqu xmm7, xmmword [r13 + 0x20]
vmovdqu xmmword [rdi + 0x20], xmm7
vmovdqu xmm6, xmmword [r13 + 0x30]
vmovdqu xmmword [rdi + 0x30], xmm6
vmovdqu xmm7, xmmword [r13 + 0x40]
vmovdqu xmmword [rdi + 0x40], xmm7
vmovdqu xmm6, xmmword [r13 + 0x50]
vmovdqu xmmword [rdi + 0x50], xmm6
vmovdqu xmm7, xmmword [r13 + 0x60]
vmovdqu xmmword [rdi + 0x60], xmm7
vmovdqu xmm6, xmmword [r13 + 0x70]
vmovdqu xmmword [rdi + 0x70], xmm6
call sym.hash_permutation
movzx eax, byte [rbx + 0x40000]
mov edx, 0xc8
mov rcx, r14
lea r9, sym.do_turtle_lite_blake_hash
mov r8, qword [rbp + 0xa8]
and eax, 2
call qword [r9 + rax*8]
lea rcx, [rbx + 0x401a8]
call sym.oaes_free
nop
vmovups xmm6, xmmword [rbp]
vmovups xmm7, xmmword [rbp + 0x10]
vmovups xmm8, xmmword [rbp + 0x20]
vmovups xmm9, xmmword [rbp + 0x30]
vmovups xmm10, xmmword [rbp + 0x40]
lea rsp, [rbp + 0x58]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rbp - 0x30], r9
mov r8d, 0x57
lea rdx, str.algo_flex_cryptonote_crypto_int_util.h
lea rcx, str.ac___product_hi
mov qword [rbp - 0x28], r11
call qword [sym.imp.msvcrt.dll__assert]
mov r9, qword [rbp - 0x30]
mov r11, qword [rbp - 0x28]
jmp 0x140092621
vsubsd xmm0, xmm0, xmm6
vcvttsd2si rdx, xmm0
btc rdx, 0x3f
jmp 0x140092562
mov rax, r8
mov rdx, r8
shr rax, 1
and edx, 1
or rax, rdx
vcvtsi2sd xmm0, xmm9, rax
vaddsd xmm0, xmm0, xmm0
jmp 0x140092534
mov rax, qword [rsi + 0x23]
xor rax, qword [rbx + 0x400c0]
mov qword [rbp - 0x38], rax
jmp 0x140092380
mov qword [rbp - 0x38], 0
jmp 0x140092380
mov qword [rbp - 0x28], r8
mov qword [rbp - 0x20], r11
call dbg.sqrt
mov r8, qword [rbp - 0x28]
mov r11, qword [rbp - 0x20]
jmp 0x14009254b
mov ecx, 2
call qword [dbg.__acrt_iob_func]
lea rdx, str.Cryptonight_variant_1_needs_at_least_43_bytes_of_data
mov rcx, rax
call sym.fprintf.constprop.0_7
mov ecx, 1
call sym._exit
nop
nop word cs:[rax + rax]