Function at 0x14008f910
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
vmovups xmmword [rsp + 0x70], xmm6
vmovups xmmword [rsp + 0x80], xmm7
vmovups xmmword [rsp + 0x90], xmm8
vmovups xmmword [rsp + 0xa0], xmm9
vmovups xmmword [rsp + 0xb0], xmm10
mov rsi, rcx
mov ecx, 0x2001b0
mov r13d, r9d
mov rbp, rdx
mov edi, r8d
call sym.malloc
mov r8d, edi
mov rdx, rsi
lea r14, [rax + 0x200000]
mov rbx, rax
mov rcx, r14
lea r15, [rbx + 0x200040]
lea r12, [rbx + 0x200188]
call sym.hash_process
vmovdqu xmm7, xmmword [rbx + 0x200040]
lea r9, [rbx + 0x2000c8]
mov qword [rsp + 0x20], r9
vmovdqu xmmword [rbx + 0x2000c8], xmm7
vmovdqu xmm7, xmmword [r15 + 0x10]
vmovdqu xmmword [rbx + 0x2000d8], xmm7
vmovdqu xmm7, xmmword [r15 + 0x20]
vmovdqu xmmword [rbx + 0x2000e8], xmm7
vmovdqu xmm7, xmmword [r15 + 0x30]
vmovdqu xmmword [rbx + 0x2000f8], xmm7
vmovdqu xmm7, xmmword [r15 + 0x40]
vmovdqu xmmword [rbx + 0x200108], xmm7
vmovdqu xmm7, xmmword [r15 + 0x50]
vmovdqu xmmword [rbx + 0x200118], xmm7
vmovdqu xmm7, xmmword [r15 + 0x60]
vmovdqu xmmword [rbx + 0x200128], xmm7
vmovdqu xmm7, xmmword [r15 + 0x70]
vmovdqu xmmword [rbx + 0x200138], xmm7
vmovdqu xmm7, xmmword [rbx + 0x200000]
vmovdqu xmmword [rbx + 0x200188], xmm7
vmovdqu xmm7, xmmword [r14 + 0x10]
vmovdqu xmmword [r12 + 0x10], xmm7
call sym.oaes_alloc
cmp r13d, 1
mov r9, qword [rsp + 0x20]
mov qword [rbx + 0x2001a8], rax
mov rcx, rax
jne 0x14008fa47
cmp edi, 0x2a
jbe 0x1400901fc
cmp r13d, 1
je 0x1400901c5
jle 0x1400901da
mov rax, qword [rbx + 0x200060]
vmovdqu xmm7, xmmword [rbx + 0x200040]
mov qword [rsp + 0x48], 0
vpxor xmm0, xmm7, xmmword [rbx + 0x200050]
mov qword [rsp + 0x30], rax
mov rax, qword [rbx + 0x200068]
vmovdqu xmmword [rbx + 0x200168], xmm0
mov qword [rsp + 0x38], rax
mov r8d, 0x20
mov rdx, r12
mov qword [rsp + 0x28], r9
mov rdi, rbx
call sym.oaes_key_import_data
lea rsi, [rbx + 0x200148]
mov qword [rsp + 0x20], rbp
mov rbp, rbx
mov rbx, qword [rsp + 0x28]
nop word [rax + rax]
mov r12, rbx
nop dword [rax + rax]
mov rax, qword [rbp + 0x2001a8]
mov rdx, r12
mov rcx, r12
add r12, 0x10
mov rax, qword [rax]
mov r8, qword [rax + 0x18]
call sym.aesb_pseudo_round
cmp rsi, r12
jne 0x14008fac8
vmovdqu xmm2, xmmword [rbx]
sub rdi, 0xffffffffffffff80
vmovdqu xmmword [rdi - 0x80], xmm2
vmovdqu xmm3, xmmword [rbx + 0x10]
vmovdqu xmmword [rdi - 0x70], xmm3
vmovdqu xmm4, xmmword [rbx + 0x20]
vmovdqu xmmword [rdi - 0x60], xmm4
vmovdqu xmm5, xmmword [rbx + 0x30]
vmovdqu xmmword [rdi - 0x50], xmm5
vmovdqu xmm7, xmmword [rbx + 0x40]
vmovdqu xmmword [rdi - 0x40], xmm7
vmovdqu xmm6, xmmword [rbx + 0x50]
vmovdqu xmmword [rdi - 0x30], xmm6
vmovdqu xmm2, xmmword [rbx + 0x60]
vmovdqu xmmword [rdi - 0x20], xmm2
vmovdqu xmm3, xmmword [rbx + 0x70]
vmovdqu xmmword [rdi - 0x10], xmm3
cmp r14, rdi
jne 0x14008fac0
mov r9, rbx
mov rbx, rbp
mov rbp, qword [rsp + 0x20]
mov qword [rsp + 0x28], 0x40000
lea rax, [rbx + 0x200178]
mov qword [rsp + 0x50], r15
vxorps xmm9, xmm9, xmm9
vmovdqu xmm7, xmmword [rbx + 0x200020]
vpxor xmm0, xmm7, xmmword [rbx + 0x200000]
vmovdqu xmm6, xmmword [rbx + 0x200030]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x58], rbp
vmovsd xmm8, qword [0x1402be4d8]
vmovdqu xmmword [rbx + 0x200148], xmm0
vpxor xmm0, xmm6, xmmword [rbx + 0x200010]
vmovsd xmm7, qword [0x1402be4e0]
mov qword [rsp + 0x60], r9
vmovsd xmm6, qword [0x1402be4e8]
mov qword [rsp + 0x68], r14
vmovdqu xmmword [rbx + 0x200158], xmm0
jmp 0x14008fe2f
mov rdi, qword [rbx + 0x200178]
mov rbp, rdi
and ebp, 0x1ffff0
lea r15, [rbx + rbp]
mov r12, qword [r15]
mov r14, qword [r15 + 8]
cmp r13d, 1
jle 0x14008fcc6
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rax, rcx
xor r12, rdx
xor edx, edx
shl rax, 0x20
xor r12, rax
mov eax, dword [rbx + 0x200178]
lea ecx, [rax + rcx*2]
mov rax, qword [rbx + 0x200180]
or ecx, 0x80000001
div rcx
shl rdx, 0x20
mov eax, eax
add rax, rdx
mov r8, rax
mov qword [rsp + 0x30], rax
add r8, rdi
js 0x1400901a8
vcvtsi2sd xmm0, xmm9, r8
vaddsd xmm0, xmm0, xmm8
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x1400901e8
vsqrtsd xmm0, xmm0, xmm0
vaddsd xmm0, xmm0, xmm0
vsubsd xmm0, xmm0, xmm7
vcomisd xmm0, xmm6
jae 0x140090190
vcvttsd2si rdx, xmm0
mov r10, rdx
mov rcx, rdx
mov r9, rdx
mov r11, r8
shr r10, 1
and ecx, 1
shl r9, 0x20
lea rax, [r10 + rcx]
sub r11, r10
imul rax, r10
add rax, r9
movabs r9, 0x100000000
add r9, rax
cmp r9, r11
setb r9b
add rcx, rax
movzx r9d, r9b
cmp r8, rcx
sbb r9d, 0
movsxd r9, r9d
lea rax, [r9 + rdx]
mov qword [rsp + 0x38], rax
mov rax, rdi
mov r9, r12
mov edx, r12d
mov edi, edi
shr r9, 0x20
shr rax, 0x20
mov r8, rdi
mov rcx, rax
imul rdi, r9
imul rax, rdx
imul r8, rdx
xor edx, edx
imul rcx, r9
add rax, rdi
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 rdi, [rax + r8]
vmovq xmm4, rdi
vpinsrq xmm10, xmm4, r9, 1
cmp rdi, rcx
jb 0x140090160
cmp r13d, 1
jle 0x14008fdb3
mov rax, rbp
xor rax, 0x10
lea rdx, [rbx + rax]
xor qword [rdx], rdi
xor qword [rbx + rax + 8], r9
mov rax, rbp
xor rbp, 0x30
mov r8, qword [rdx]
add rbp, rbx
xor rax, 0x20
mov r9, qword [rbx + 0x200168]
mov rcx, qword [rdx + 8]
add r9, qword [rbp]
add rax, rbx
vpxor xmm10, xmm10, xmmword [rax]
mov qword [rdx], r9
mov r9, qword [rbx + 0x200170]
add r9, qword [rbp + 8]
mov qword [rdx + 8], r9
mov rdx, qword [rbx + 0x200148]
add rdx, qword [rax]
mov qword [rbp], rdx
mov rdx, qword [rbx + 0x200150]
add rdx, qword [rax + 8]
mov qword [rbp + 8], rdx
add r8, qword [rbx + 0x200158]
mov qword [rax], r8
add rcx, qword [rbx + 0x200160]
mov qword [rax + 8], rcx
vpaddq xmm10, xmm10, xmmword [rbx + 0x200148]
vmovdqu xmmword [rbx + 0x200148], xmm10
vmovq qword [r15], xmm10
mov rax, qword [rbx + 0x200150]
mov qword [r15 + 8], rax
xor rax, r14
xor qword [rbx + 0x200148], r12
mov qword [rbx + 0x200150], rax
cmp r13d, 1
je 0x14008ff40
sub qword [rsp + 0x28], 1
vmovq xmm5, qword [rbx + 0x200158]
vpinsrq xmm1, xmm5, qword [rbx + 0x200160], 1
vmovq xmm5, qword [rbx + 0x200178]
vpinsrq xmm0, xmm5, qword [rbx + 0x200180], 1
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [rbx + 0x200158], ymm0
je 0x14008ff87
vzeroupper
mov rdi, qword [rbx + 0x200148]
mov rdx, qword [rsp + 0x20]
mov r8, rsi
and edi, 0x1ffff0
lea rbp, [rbx + rdi]
mov rcx, rbp
call sym.aesb_single_round
cmp r13d, 1
jle 0x14008fec5
mov rdx, rdi
mov rax, rdi
xor rdi, 0x30
mov r9, qword [rbx + 0x200168]
add rdi, rbx
xor rdx, 0x10
xor rax, 0x20
add r9, qword [rdi]
add rdx, rbx
add rax, rbx
mov r8, qword [rdx]
mov rcx, qword [rdx + 8]
mov qword [rdx], r9
mov r9, qword [rbx + 0x200170]
add r9, qword [rdi + 8]
mov qword [rdx + 8], r9
mov rdx, qword [rbx + 0x200148]
add rdx, qword [rax]
mov qword [rdi], rdx
mov rdx, qword [rbx + 0x200150]
add rdx, qword [rax + 8]
mov qword [rdi + 8], rdx
add r8, qword [rbx + 0x200158]
mov qword [rax], r8
add rcx, qword [rbx + 0x200160]
mov qword [rax + 8], rcx
mov rax, qword [rbx + 0x200178]
xor rax, qword [rbx + 0x200158]
mov qword [rbp], rax
mov rax, qword [rbx + 0x200180]
xor rax, qword [rbx + 0x200160]
mov qword [rbp + 8], rax
cmp r13d, 1
jne 0x14008fbd0
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 [rbp + 0xb], dl
mov rdi, qword [rbx + 0x200178]
mov rbp, rdi
and ebp, 0x1ffff0
lea r15, [rbx + rbp]
mov r12, qword [r15]
mov r14, qword [r15 + 8]
jmp 0x14008fcc6
mov rax, qword [rsp + 0x48]
xor qword [r15 + 8], rax
sub qword [rsp + 0x28], 1
vmovq xmm1, qword [rbx + 0x200158]
vmovq xmm2, qword [rbx + 0x200178]
vpinsrq xmm1, xmm1, qword [rbx + 0x200160], 1
vpinsrq xmm0, xmm2, qword [rbx + 0x200180], 1
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [rbx + 0x200158], ymm0
jne 0x14008fe2c
mov r15, qword [rsp + 0x50]
vmovdqu xmm7, xmmword [rbx + 0x200040]
lea rdx, [rbx + 0x200020]
mov r8d, 0x20
mov r9, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
vmovdqu xmmword [rbx + 0x2000c8], xmm7
vmovdqu xmm6, xmmword [r15 + 0x10]
mov r14, qword [rsp + 0x68]
mov qword [rsp + 0x20], r9
vmovdqu xmmword [r9 + 0x10], xmm6
vmovdqu xmm7, xmmword [r15 + 0x20]
vmovdqu xmmword [r9 + 0x20], xmm7
vmovdqu xmm6, xmmword [r15 + 0x30]
vmovdqu xmmword [r9 + 0x30], xmm6
vmovdqu xmm7, xmmword [r15 + 0x40]
vmovdqu xmmword [r9 + 0x40], xmm7
vmovdqu xmm6, xmmword [r15 + 0x50]
vmovdqu xmmword [r9 + 0x50], xmm6
vmovdqu xmm7, xmmword [r15 + 0x60]
vmovdqu xmmword [r9 + 0x60], xmm7
vmovdqu xmm6, xmmword [r15 + 0x70]
vmovdqu xmmword [r9 + 0x70], xmm6
mov rcx, qword [rbx + 0x2001a8]
vzeroupper
xor r12d, r12d
call sym.oaes_key_import_data
mov r13, qword [rsp + 0x20]
nop dword [rax + rax]
mov rdi, r13
nop dword [rax + rax]
mov rax, qword [rdi + r12 - 0x2000c8]
xor qword [rdi], rax
mov rdx, rdi
mov rcx, rdi
mov rax, qword [rdi + r12 - 0x2000c0]
xor qword [rdi + 8], rax
add rdi, 0x10
mov rax, qword [rbx + 0x2001a8]
mov rax, qword [rax]
mov r8, qword [rax + 0x18]
call sym.aesb_pseudo_round
cmp rsi, rdi
jne 0x140090038
sub r12, 0xffffffffffffff80
cmp r12, 0x200000
jne 0x140090030
vmovdqu xmm7, xmmword [rbx + 0x2000c8]
mov rcx, r14
vmovdqu xmmword [rbx + 0x200040], xmm7
vmovdqu xmm6, xmmword [r13 + 0x10]
vmovdqu xmmword [r15 + 0x10], xmm6
vmovdqu xmm7, xmmword [r13 + 0x20]
vmovdqu xmmword [r15 + 0x20], xmm7
vmovdqu xmm6, xmmword [r13 + 0x30]
vmovdqu xmmword [r15 + 0x30], xmm6
vmovdqu xmm7, xmmword [r13 + 0x40]
vmovdqu xmmword [r15 + 0x40], xmm7
vmovdqu xmm6, xmmword [r13 + 0x50]
vmovdqu xmmword [r15 + 0x50], xmm6
vmovdqu xmm7, xmmword [r13 + 0x60]
vmovdqu xmmword [r15 + 0x60], xmm7
vmovdqu xmm6, xmmword [r13 + 0x70]
vmovdqu xmmword [r15 + 0x70], xmm6
call sym.hash_permutation
mov r8, rbp
mov edx, 0xc8
mov rcx, r14
movzx eax, byte [rbx + 0x200000]
lea r9, sym.do_fast_blake_hash
and eax, 2
call qword [r9 + rax*8]
lea rcx, [rbx + 0x2001a8]
call sym.oaes_free
nop
vmovups xmm6, xmmword [rsp + 0x70]
mov rcx, rbx
vmovups xmm7, xmmword [rsp + 0x80]
vmovups xmm8, xmmword [rsp + 0x90]
vmovups xmm9, xmmword [rsp + 0xa0]
vmovups xmm10, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.free
mov qword [rsp + 0x40], r9
mov r8d, 0x57
lea rdx, [0x1402be478]
lea rcx, [0x1402be49f]
call qword [sym.imp.msvcrt.dll__assert]
mov r9, qword [rsp + 0x40]
jmp 0x14008fd2f
vsubsd xmm0, xmm0, xmm6
vcvttsd2si rdx, xmm0
btc rdx, 0x3f
jmp 0x14008fc74
mov rax, r8
mov rdx, r8
shr rax, 1
and edx, 1
or rax, rdx
vcvtsi2sd xmm0, xmm9, rax
vaddsd xmm0, xmm0, xmm0
jmp 0x14008fc46
mov rax, qword [rsi + 0x23]
xor rax, qword [rbx + 0x2000c0]
mov qword [rsp + 0x48], rax
jmp 0x14008fa90
mov qword [rsp + 0x48], 0
jmp 0x14008fa90
mov qword [rsp + 0x38], r8
call dbg.sqrt
mov r8, qword [rsp + 0x38]
jmp 0x14008fc5d
mov ecx, 2
call qword [dbg.__acrt_iob_func]
lea rdx, [0x1402be440]
mov rcx, rax
call sym.fprintf.constprop.0_3
mov ecx, 1
call sym._exit
nop
nop word cs:[rax + rax]
nop dword [rax]