Function at 0x1400b6a70
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r13
push r14
sub rsp, 0x30
mov r13d, r8d
lea rdi, [rcx + 0x28]
mov r14, rdx
mov rbp, rcx
shr r13d, 2
mov esi, r8d
lea eax, [r13 + 6]
mov dword [rcx + 0x20], eax
mov rcx, rdi
lea edx, [rax*4 + 4]
call fcn.1400b79a0
cmp byte [0x14048a91f], 0
mov rbx, qword [rbp + 0x130]
jne 0x1400b6ac4
call fcn.1400b7ee0
cmp byte [0x14048ab54], 0
mov qword [rsp + 0x68], r12
mov rcx, rbx
mov r12, rsi
je 0x1400b6cbd
mov r8, rsi
mov rdx, r14
movaps xmmword [rsp + 0x20], xmm6
movdqu xmm6, xmmword [rsi + r14 - 0x10]
call fcn.1400be580
shr r12, 2
lea r8, [rbx + r12*4]
lea r9, [0x14038a3a4]
aeskeygenassist xmm5, xmm6, 0
pextrd eax, xmm5, 3
xor eax, dword [rbx]
xor eax, 1
mov dword [r8], eax
mov ecx, dword [rbx + 4]
xor ecx, eax
lea eax, [r13 + 1]
mov dword [rbx + rax*4], ecx
mov edx, dword [rbx + 8]
mov r10d, eax
lea eax, [r13 + 2]
xor edx, ecx
add r13d, 3
mov dword [rbx + rax*4], edx
mov r11d, eax
mov eax, dword [rbx + 0xc]
xor eax, edx
mov dword [rbx + r13*4], eax
mov rax, qword [rdi + 0x108]
mov rcx, qword [rdi + 0x100]
lea rdx, [rax + rcx*4]
lea rax, [rbx + r12*4 + 0x10]
cmp rax, rdx
je 0x1400b6c1e
cmp esi, 0x18
jne 0x1400b6b7f
mov eax, dword [rbx + 0x24]
mov ecx, dword [rbx + 0x14]
xor eax, dword [rbx + 0x10]
xor ecx, eax
mov dword [rbx + 0x28], eax
mov dword [rbx + 0x2c], ecx
pinsrd xmm6, ecx, 3
jmp 0x1400b6bc4
cmp esi, 0x20
jne 0x1400b6bbd
pinsrd xmm6, dword [rbx + 0x2c], 3
mov ecx, dword [rbx + 0x14]
aeskeygenassist xmm0, xmm6, 0
pextrd eax, xmm0, 2
xor eax, dword [rbx + 0x10]
xor ecx, eax
mov dword [rbx + 0x30], eax
mov eax, dword [rbx + 0x18]
xor eax, ecx
mov dword [rbx + 0x34], ecx
mov ecx, dword [rbx + 0x1c]
xor ecx, eax
mov dword [rbx + 0x38], eax
mov dword [rbx + 0x3c], ecx
pinsrd xmm6, ecx, 3
jmp 0x1400b6bc4
pinsrd xmm6, dword [rbx + 0x1c], 3
mov rbx, r8
aeskeygenassist xmm0, xmm6, 0
lea r8, [r8 + r12*4]
pextrd ecx, xmm0, 3
xor ecx, dword [r9]
add r9, 4
xor ecx, dword [rbx]
mov dword [r8], ecx
mov eax, dword [rbx + 4]
xor eax, ecx
mov dword [rbx + r10*4], eax
mov ecx, dword [rbx + 8]
xor ecx, eax
mov dword [rbx + r11*4], ecx
mov eax, dword [rbx + 0xc]
xor eax, ecx
mov dword [rbx + r13*4], eax
mov rax, qword [rdi + 0x108]
mov rcx, qword [rdi + 0x100]
lea rdx, [rax + rcx*4]
lea rax, [rbx + r12*4 + 0x10]
cmp rax, rdx
jne 0x1400b6b61
mov rax, qword [rbp + 8]
lea rcx, [rbp + 8]
call qword [rax + 0x38]
movaps xmm6, xmmword [rsp + 0x20]
test al, al
jne 0x1400b75a0
mov eax, dword [rbp + 0x20]
mov r8, qword [rbp + 0x130]
mov r11d, 4
shl eax, 2
movdqa xmm1, xmmword [r8]
movdqa xmm0, xmmword [r8 + rax*4]
movdqa xmmword [r8], xmm0
movdqa xmmword [r8 + rax*4], xmm1
mov eax, dword [rbp + 0x20]
lea edx, [rax*4 - 4]
movsxd rax, edx
cmp edx, r11d
jbe 0x1400b6ca8
lea rax, [r8 + rax*4]
lea rcx, [r8 + 0x10]
nop dword [rax]
aesimc xmm0, xmmword [rax]
aesimc xmm1, xmmword [rcx]
add r11d, 4
add edx, 0xfffffffc
sub rax, 0x10
add rcx, 0x10
movdqa xmmword [rcx - 0x10], xmm0
movdqa xmmword [rax + 0x10], xmm1
cmp r11d, edx
jb 0x1400b6c80
mov eax, r11d
aesimc xmm0, xmmword [r8 + rax*4]
movdqa xmmword [r8 + rax*4], xmm0
jmp 0x1400b75a0
shr r12, 2
mov r9, rsi
mov r8, r14
mov rdx, r12
mov qword [rsp + 0x70], r15
call fcn.1400b7a40
lea r9, [0x140000000]
lea r11d, [r13 - 1]
mov edx, dword [rbx + r11*4]
lea r10, [0x14033128c]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
movzx r8d, byte [rcx + r9 + 0x3312b0]
shr eax, 8
movzx ecx, al
xor r8d, 1
movzx eax, byte [rcx + r9 + 0x3312b0]
shl r8d, 8
xor r8d, eax
movzx eax, dl
shr edx, 0x18
movzx eax, byte [rax + r9 + 0x3312b0]
shl r8d, 8
xor r8d, eax
movzx eax, dl
movzx eax, byte [rax + r9 + 0x3312b0]
shl r8d, 8
lea r9, [rbx + r12*4]
xor r8d, eax
lea eax, [r13 + 1]
xor r8d, dword [rbx]
mov r14d, eax
mov dword [r9], r8d
mov ecx, dword [rbx + 4]
xor ecx, r8d
mov dword [rbx + rax*4], ecx
mov edx, dword [rbx + 8]
lea eax, [r13 + 2]
xor edx, ecx
mov r15d, eax
add r13d, 3
mov dword [rbx + rax*4], edx
mov eax, dword [rbx + 0xc]
xor eax, edx
mov dword [rbx + r13*4], eax
mov rax, qword [rdi + 0x108]
mov rcx, qword [rdi + 0x100]
lea rdx, [rax + rcx*4]
lea rax, [rbx + r12*4 + 0x10]
cmp rax, rdx
je 0x1400b6edb
lea rbp, [0x140000000]
nop dword [rax]
cmp esi, 0x18
jne 0x1400b6db8
mov ecx, dword [rbx + 0x24]
mov eax, dword [rbx + 0x14]
xor ecx, dword [rbx + 0x10]
xor eax, ecx
mov dword [rbx + 0x28], ecx
mov dword [rbx + 0x2c], eax
jmp 0x1400b6e32
cmp esi, 0x20
jne 0x1400b6e32
mov edx, dword [rbx + 0x2c]
mov eax, edx
shr eax, 0x18
movzx ecx, al
mov eax, edx
movzx r8d, byte [rcx + rbp + 0x3312b0]
shr eax, 0x10
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rbp + 0x3312b0]
xor r8d, eax
mov eax, edx
shr eax, 8
shl r8d, 8
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x3312b0]
mov ecx, dword [rbx + 0x18]
xor r8d, eax
movzx eax, dl
movzx eax, byte [rax + rbp + 0x3312b0]
shl r8d, 8
xor r8d, eax
mov eax, dword [rbx + 0x14]
xor r8d, dword [rbx + 0x10]
xor eax, r8d
mov dword [rbx + 0x30], r8d
xor ecx, eax
mov dword [rbx + 0x34], eax
mov eax, dword [rbx + 0x1c]
xor eax, ecx
mov dword [rbx + 0x38], ecx
mov dword [rbx + 0x3c], eax
mov edx, dword [r9 + r11*4]
mov rbx, r9
lea r9, [r9 + r12*4]
mov eax, edx
add r10, 4
shr eax, 0x10
movzx ecx, al
mov eax, edx
movzx r8d, byte [rcx + rbp + 0x3312b0]
shr eax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rbp + 0x3312b0]
xor r8d, eax
movzx eax, dl
shr edx, 0x18
movzx eax, byte [rax + rbp + 0x3312b0]
shl r8d, 8
xor r8d, eax
movzx eax, dl
movzx eax, byte [rax + rbp + 0x3312b0]
shl r8d, 8
xor r8d, eax
xor r8d, dword [rbx]
xor r8d, dword [r10 - 4]
mov dword [r9], r8d
mov eax, dword [rbx + 4]
xor eax, r8d
mov dword [rbx + r14*4], eax
mov ecx, dword [rbx + 8]
xor ecx, eax
mov dword [rbx + r15*4], ecx
mov eax, dword [rbx + 0xc]
xor eax, ecx
mov dword [rbx + r13*4], eax
mov rax, qword [rdi + 0x108]
mov rcx, qword [rdi + 0x100]
lea rdx, [rax + rcx*4]
lea rax, [rbx + r12*4 + 0x10]
cmp rax, rdx
jne 0x1400b6da0
mov rbp, qword [rsp + 0x60]
mov rax, qword [rbp + 8]
mov rbx, qword [rbp + 0x130]
lea rcx, [rbp + 8]
call qword [rax + 0x38]
mov r15, qword [rsp + 0x70]
test al, al
je 0x1400b6f56
movzx eax, byte [0x14048a91d]
test al, al
jne 0x1400b6f06
call fcn.1400b6820
xor ecx, ecx
nop dword [rax + rax]
mov eax, dword [rbx + rcx*4]
inc rcx
bswap eax
mov dword [rbx + rcx*4 - 4], eax
cmp rcx, 4
jb 0x1400b6f10
mov eax, dword [rbp + 0x20]
mov r11d, 4
shl eax, 2
lea rcx, [rbx + rax*4]
mov rdx, rcx
sub rdx, rcx
nop dword [rax + rax]
mov eax, dword [rdx + rcx]
add rcx, 4
dec r11
bswap eax
mov dword [rcx - 4], eax
jne 0x1400b6f40
jmp 0x1400b7560
movzx eax, byte [0x14048a91e]
test al, al
jne 0x1400b6f66
call fcn.1400b68c0
mov eax, dword [rbp + 0x20]
mov r11d, 4
lea r13, [0x140000000]
lea edi, [rax*4 - 4]
movsxd rax, edi
cmp edi, r11d
jbe 0x1400b7316
lea rsi, [rbx + rax*4 + 8]
lea r12, [rbx + 0x18]
nop word [rax + rax]
mov r8d, dword [r12 - 8]
mov r9d, dword [rsi - 8]
mov eax, r8d
shr eax, 0x18
movzx ecx, al
mov eax, r8d
shr r8d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r10d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r10d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r8b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [r12 - 8]
xor r10d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
mov eax, r9d
xor r10d, dword [r13 + rcx*8 + 0x4898a3]
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r8d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r8d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r9b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [rsi - 8]
xor r8d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
xor r8d, dword [r13 + rcx*8 + 0x4898a3]
mov dword [r12 - 8], r8d
mov r9d, dword [rsi - 4]
mov dword [rsi - 8], r10d
mov r8d, dword [r12 - 4]
mov eax, r8d
shr eax, 0x18
movzx ecx, al
mov eax, r8d
shr r8d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r10d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r10d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r8b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [r12 - 4]
xor r10d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
mov eax, r9d
xor r10d, dword [r13 + rcx*8 + 0x4898a3]
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r8d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r8d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r9b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [rsi - 4]
xor r8d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
xor r8d, dword [r13 + rcx*8 + 0x4898a3]
mov dword [r12 - 4], r8d
mov dword [rsi - 4], r10d
mov r8d, dword [r12]
mov eax, r8d
shr eax, 0x18
movzx ecx, al
movzx edx, byte [rcx + r13 + 0x3312b0]
mov r10d, dword [r13 + rdx*8 + 0x4898a4]
mov r9d, dword [rsi]
mov eax, r8d
shr eax, 0x10
shr r8d, 8
add r11d, 4
movzx ecx, al
add edi, 0xfffffffc
sub rsi, 0x10
movzx eax, byte [rcx + r13 + 0x3312b0]
add r12, 0x10
xor r10d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r8b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [r12 - 0x10]
xor r10d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
mov eax, r9d
xor r10d, dword [r13 + rcx*8 + 0x4898a3]
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r8d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r8d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r9b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [rsi + 0x10]
xor r8d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
xor r8d, dword [r13 + rcx*8 + 0x4898a3]
mov dword [r12 - 0x10], r8d
mov r9d, dword [rsi + 0x14]
mov dword [rsi + 0x10], r10d
mov r8d, dword [r12 - 0xc]
mov eax, r8d
shr eax, 0x18
movzx ecx, al
mov eax, r8d
shr r8d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r10d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r10d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r8b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [r12 - 0xc]
xor r10d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
mov eax, r9d
xor r10d, dword [r13 + rcx*8 + 0x4898a3]
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r8d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r8d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r9b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [rsi + 0x14]
xor r8d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
xor r8d, dword [r13 + rcx*8 + 0x4898a3]
mov dword [r12 - 0xc], r8d
mov dword [rsi + 0x14], r10d
cmp r11d, edi
jb 0x1400b6fa0
mov r10d, r11d
mov r9d, dword [rbx + r10*4]
mov eax, r9d
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r8d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r8d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r9b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [rbx + r10*4]
xor r8d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
lea eax, [r11 + 1]
xor r8d, dword [r13 + rcx*8 + 0x4898a3]
mov r9d, dword [rbx + rax*4]
mov dword [rbx + r10*4], r8d
mov r10d, eax
mov eax, r9d
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r8d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r8d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r9b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [rbx + r10*4]
xor r8d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
lea eax, [r11 + 2]
xor r8d, dword [r13 + rcx*8 + 0x4898a3]
mov r9d, dword [rbx + rax*4]
mov dword [rbx + r10*4], r8d
mov r10d, eax
mov eax, r9d
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r8d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r8d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r9b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [rbx + r10*4]
xor r8d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
lea eax, [r11 + 3]
xor r8d, dword [r13 + rcx*8 + 0x4898a3]
mov r9d, dword [rbx + rax*4]
mov dword [rbx + r10*4], r8d
mov r10d, eax
mov eax, r9d
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 8
movzx edx, byte [rcx + r13 + 0x3312b0]
shr eax, 0x10
mov r8d, dword [r13 + rdx*8 + 0x4898a4]
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x3312b0]
xor r8d, dword [r13 + rax*8 + 0x4898a1]
movzx eax, r9b
movzx ecx, byte [rax + r13 + 0x3312b0]
movzx eax, byte [rbx + r10*4]
xor r8d, dword [r13 + rcx*8 + 0x4898a2]
movzx ecx, byte [rax + r13 + 0x3312b0]
xor r8d, dword [r13 + rcx*8 + 0x4898a3]
mov dword [rbx + r10*4], r8d
mov eax, dword [rbp + 0x20]
mov edx, dword [rbx]
shl eax, 2
bswap edx
mov ecx, dword [rbx + rax*4]
bswap ecx
mov dword [rbx], ecx
mov eax, dword [rbp + 0x20]
shl eax, 2
mov dword [rbx + rax*4], edx
mov eax, dword [rbp + 0x20]
mov edx, dword [rbx + 4]
lea eax, [rax*4 + 1]
bswap edx
mov eax, dword [rbx + rax*4]
bswap eax
mov dword [rbx + 4], eax
mov eax, dword [rbp + 0x20]
lea eax, [rax*4 + 1]
mov dword [rbx + rax*4], edx
mov eax, dword [rbp + 0x20]
mov edx, dword [rbx + 8]
lea eax, [rax*4 + 2]
bswap edx
mov eax, dword [rbx + rax*4]
bswap eax
mov dword [rbx + 8], eax
mov eax, dword [rbp + 0x20]
lea eax, [rax*4 + 2]
mov dword [rbx + rax*4], edx
mov eax, dword [rbp + 0x20]
mov edx, dword [rbx + 0xc]
lea eax, [rax*4 + 3]
bswap edx
mov eax, dword [rbx + rax*4]
bswap eax
mov dword [rbx + 0xc], eax
mov eax, dword [rbp + 0x20]
lea eax, [rax*4 + 3]
mov dword [rbx + rax*4], edx
cmp byte [0x14048a91f], 0
jne 0x1400b756e
call fcn.1400b7ee0
cmp byte [0x14048ab54], 0
je 0x1400b75a0
mov ecx, dword [rbp + 0x20]
add rbx, 0x10
dec ecx
shl ecx, 4
shr rcx, 2
test rcx, rcx
je 0x1400b75a0
nop dword [rax]
mov eax, dword [rbx]
add rbx, 4
dec rcx
bswap eax
mov dword [rbx - 4], eax
jne 0x1400b7590
mov r12, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r14
pop r13
pop rdi
pop rsi
pop rbp
ret