Function at 0x1400b9960
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x110]
sub rsp, 0x210
mov rax, qword [0x1401770a0]
xor rax, rsp
mov qword [rbp + 0x100], rax
mov r13d, 4
lea r15, [rsp + 0x10]
mov r14d, r13d
lea r12, [rcx + 0x30770]
mov r10, rcx
movzx edx, byte [r12]
xor ebx, ebx
mov r9d, edx
mov eax, edx
and eax, 1
shr r9d, 1
dec r9d
or eax, 2
mov ecx, r9d
lea r8d, [rbx + 1]
shl eax, cl
mov r11d, r14d
sub r11d, eax
test r9d, r9d
je 0x1400b9a21
mov edi, edx
mov esi, eax
mov eax, r8d
mov edx, r11d
sub rax, rdi
shr r11d, 1
add rax, rsi
and edx, 1
add r8d, r8d
or r8d, edx
movzx ecx, word [r10 + rax*2 + 0x343de]
mov eax, edx
neg eax
shr rcx, 4
sar rax, 4
and eax, 0x7f
xor rcx, rax
add ebx, dword [r10 + rcx*4 + 0x3276c]
sub r9d, 1
jne 0x1400b99e0
mov dword [r15], ebx
inc r14d
add r15, r13
inc r12
cmp r14d, 0x80
jb 0x1400b99b0
lea rsi, [r10 + 0x3361c]
lea rbx, [r10 + 0x3321c]
lea rdi, [r10 + 0x341e0]
nop
mov eax, dword [r10 + 0x33e60]
xor r11d, r11d
test eax, eax
je 0x1400b9ab1
nop
xor r9d, r9d
mov eax, r11d
or eax, 0x40
nop dword [rax]
mov edx, eax
mov ecx, eax
and edx, 1
shr rcx, 1
neg edx
shr eax, 1
sar rdx, 4
and edx, 0x7f
movzx r8d, word [rdi + rcx*2]
shr r8, 4
xor r8, rdx
add r9d, dword [r10 + r8*4 + 0x3276c]
cmp eax, 1
jne 0x1400b9a70
mov dword [rbx + r11*4], r9d
inc r11d
mov eax, dword [r10 + 0x33e60]
cmp r11d, eax
jb 0x1400b9a60
mov edx, 0xe
cmp eax, edx
jbe 0x1400b9ae0
nop word [rax + rax]
mov eax, edx
lea rcx, [rbx + rax*4]
mov eax, edx
shr eax, 1
inc edx
shl eax, 4
sub eax, 0x50
add dword [rcx], eax
cmp edx, dword [r10 + 0x33e60]
jb 0x1400b9ac0
nop dword [rax]
mov eax, dword [rbx]
mov r8d, 6
mov dword [rsi], eax
mov eax, dword [rbx + 4]
mov dword [rsi + 4], eax
mov eax, dword [rbx + 8]
mov dword [rsi + 8], eax
mov eax, dword [rbx + 0xc]
mov dword [rsi + 0xc], eax
nop dword [rax]
lea eax, [r8 - 2]
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 - 1]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
mov eax, r8d
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 1]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 2]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 3]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 4]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 5]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 6]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 7]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 8]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 9]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0xa]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0xb]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0xc]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0xd]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0xe]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0xf]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x10]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x11]
add ecx, dword [rsp + rdx]
mov dword [rsi + rdx], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x12]
add ecx, dword [rsp + rdx]
mov dword [rsi + rdx], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x13]
add ecx, dword [rsp + rdx]
mov dword [rsi + rdx], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x14]
add ecx, dword [rsp + rdx]
mov dword [rsi + rdx], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x15]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x16]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x17]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x18]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea eax, [r8 + 0x19]
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x1a]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x1b]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 + 0x1c]
add ecx, dword [rsp + rdx]
add r8d, 0x1f
mov dword [rdx + rsi], ecx
lea rdx, [rax*4]
movzx eax, byte [rax + r10 + 0x3076c]
mov ecx, dword [rbx + rax*4]
lea eax, [r8 - 2]
add ecx, dword [rsp + rdx]
mov dword [rdx + rsi], ecx
cmp eax, 0x80
jb 0x1400b9b00
sub rdi, 0xffffffffffffff80
add rbx, 0x100
add rsi, 0x200
sub r13, 1
jne 0x1400b9a50
mov dword [r10 + 0x3d5d8], r13d
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.1400f8730
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret