Function at 0x140041e10
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x20
xor r15d, r15d
mov rdi, r9
mov rsi, rdx
mov r14, rcx
mov ebx, r15d
test r9, r9
jne 0x140041e48
lea r13d, [r9 + 1]
mov byte [rbp + 0x40], bl
lea rdi, [rbp + 0x40]
jmp 0x140041e4d
movzx r13d, word [rbp + 0x60]
movsx r11d, r8w
lea r9, [rcx + 0x1008]
mov r10d, 2
nop
lea eax, [r10 - 2]
cdq
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 - 1]
cdq
shl ecx, 0x18
xor dword [r9 - 8], ecx
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
mov eax, r10d
cdq
shl ecx, 0x10
xor ecx, dword [r9 - 8]
idiv r11d
mov dword [r9 - 8], ecx
movsxd rax, edx
movzx r8d, byte [rax + rsi]
lea eax, [r10 + 1]
cdq
shl r8d, 8
idiv r11d
xor r8d, ecx
movsxd rax, edx
mov dword [r9 - 8], r8d
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 2]
cdq
xor ecx, r8d
idiv r11d
mov dword [r9 - 8], ecx
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 3]
cdq
shl ecx, 0x18
xor dword [r9 - 4], ecx
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 4]
cdq
shl ecx, 0x10
xor ecx, dword [r9 - 4]
idiv r11d
mov dword [r9 - 4], ecx
movsxd rax, edx
movzx r8d, byte [rax + rsi]
lea eax, [r10 + 5]
cdq
shl r8d, 8
idiv r11d
xor r8d, ecx
movsxd rax, edx
mov dword [r9 - 4], r8d
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 6]
cdq
xor ecx, r8d
idiv r11d
mov dword [r9 - 4], ecx
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 7]
cdq
shl ecx, 0x18
xor dword [r9], ecx
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 8]
cdq
shl ecx, 0x10
xor ecx, dword [r9]
idiv r11d
mov dword [r9], ecx
movsxd rax, edx
movzx r8d, byte [rax + rsi]
shl r8d, 8
xor r8d, ecx
lea eax, [r10 + 9]
cdq
mov dword [r9], r8d
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0xa]
cdq
xor ecx, r8d
idiv r11d
mov dword [r9], ecx
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0xb]
cdq
shl ecx, 0x18
xor dword [r9 + 4], ecx
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0xc]
cdq
shl ecx, 0x10
xor ecx, dword [r9 + 4]
idiv r11d
mov dword [r9 + 4], ecx
movsxd rax, edx
movzx r8d, byte [rax + rsi]
lea eax, [r10 + 0xd]
cdq
shl r8d, 8
idiv r11d
xor r8d, ecx
movsxd rax, edx
mov dword [r9 + 4], r8d
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0xe]
cdq
xor ecx, r8d
idiv r11d
mov dword [r9 + 4], ecx
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0xf]
cdq
shl ecx, 0x18
xor dword [r9 + 8], ecx
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x10]
cdq
shl ecx, 0x10
xor ecx, dword [r9 + 8]
idiv r11d
mov dword [r9 + 8], ecx
movsxd rax, edx
movzx r8d, byte [rax + rsi]
lea eax, [r10 + 0x11]
cdq
shl r8d, 8
idiv r11d
xor r8d, ecx
movsxd rax, edx
mov dword [r9 + 8], r8d
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x12]
cdq
xor ecx, r8d
idiv r11d
mov dword [r9 + 8], ecx
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x13]
shl ecx, 0x18
cdq
xor dword [r9 + 0xc], ecx
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
shl ecx, 0x10
lea eax, [r10 + 0x14]
xor ecx, dword [r9 + 0xc]
cdq
idiv r11d
mov dword [r9 + 0xc], ecx
movsxd rax, edx
movzx r8d, byte [rax + rsi]
lea eax, [r10 + 0x15]
cdq
shl r8d, 8
idiv r11d
xor r8d, ecx
movsxd rax, edx
mov dword [r9 + 0xc], r8d
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x16]
cdq
xor ecx, r8d
idiv r11d
mov dword [r9 + 0xc], ecx
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x17]
cdq
shl ecx, 0x18
xor dword [r9 + 0x10], ecx
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x18]
cdq
shl ecx, 0x10
xor ecx, dword [r9 + 0x10]
idiv r11d
mov dword [r9 + 0x10], ecx
movsxd rax, edx
movzx r8d, byte [rax + rsi]
lea eax, [r10 + 0x19]
cdq
shl r8d, 8
idiv r11d
xor r8d, ecx
movsxd rax, edx
mov dword [r9 + 0x10], r8d
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x1a]
cdq
xor ecx, r8d
idiv r11d
mov dword [r9 + 0x10], ecx
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x1b]
cdq
shl ecx, 0x18
xor dword [r9 + 0x14], ecx
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x1c]
cdq
shl ecx, 0x10
xor ecx, dword [r9 + 0x14]
idiv r11d
mov dword [r9 + 0x14], ecx
movsxd rax, edx
movzx r8d, byte [rax + rsi]
lea eax, [r10 + 0x1d]
cdq
shl r8d, 8
idiv r11d
xor r8d, ecx
movsxd rax, edx
mov dword [r9 + 0x14], r8d
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x1e]
xor ecx, r8d
cdq
idiv r11d
mov dword [r9 + 0x14], ecx
movsxd rax, edx
lea r9, [r9 + 0x24]
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x1f]
cdq
shl ecx, 0x18
xor dword [r9 - 0xc], ecx
idiv r11d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
lea eax, [r10 + 0x20]
cdq
shl ecx, 0x10
xor ecx, dword [r9 - 0xc]
idiv r11d
mov dword [r9 - 0xc], ecx
movsxd rax, edx
movzx r8d, byte [rax + rsi]
lea eax, [r10 + 0x21]
cdq
shl r8d, 8
xor r8d, ecx
add r10d, 0x24
idiv r11d
mov dword [r9 - 0xc], r8d
movsxd rax, edx
movzx ecx, byte [rax + rsi]
xor ecx, r8d
mov dword [r9 - 0xc], ecx
cmp r10d, 0x4a
jl 0x140041e60
mov r10d, r15d
movsx esi, r13w
mov r11d, r15d
mov r12, r15
mov eax, ebx
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rax + rdi]
lea eax, [rbx + 1]
cdq
shl r8d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 2]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 3]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 4]
cdq
xor r8d, ecx
idiv esi
xor r11d, r8d
movsxd rax, edx
mov dword [rbp + 0x48], r11d
movzx r9d, byte [rax + rdi]
lea eax, [rbx + 5]
cdq
shl r9d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 6]
cdq
xor r9d, ecx
idiv esi
shl r9d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 7]
xor r9d, ecx
cdq
idiv esi
shl r9d, 8
mov ecx, r11d
movsxd rax, edx
add ebx, 8
movzx r8d, byte [rax + rdi]
xor r9d, r8d
lea r8, [rbp + 0x48]
xor r10d, r9d
mov r9, r14
mov edx, r10d
mov dword [rbp + 0x4c], r10d
call fcn.140041980
mov r11d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x4c]
mov dword [r14 + r12*4 + 0x1000], r11d
mov dword [r14 + r12*4 + 0x1004], r10d
add r12, 2
cmp r12, 0x12
jl 0x1400421e2
mov r12, r15
mov eax, ebx
mov r9, r14
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rax + rdi]
lea eax, [rbx + 1]
cdq
shl r8d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 2]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 3]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 4]
cdq
xor r8d, ecx
idiv esi
xor r11d, r8d
movsxd rax, edx
mov dword [rbp + 0x48], r11d
movzx r8d, byte [rax + rdi]
lea eax, [rbx + 5]
cdq
shl r8d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 6]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 7]
xor r8d, ecx
cdq
idiv esi
shl r8d, 8
add ebx, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
xor r8d, ecx
mov ecx, r11d
xor r10d, r8d
lea r8, [rbp + 0x48]
mov edx, r10d
mov dword [rbp + 0x4c], r10d
call fcn.140041980
mov r11d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x4c]
mov dword [r14 + r12*4], r11d
mov dword [r14 + r12*4 + 4], r10d
add r12, 2
cmp r12, 0x100
jl 0x1400422c2
mov r12, r15
nop dword [rax]
mov eax, ebx
mov r9, r14
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rax + rdi]
lea eax, [rbx + 1]
cdq
shl r8d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 2]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 3]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 4]
cdq
xor r8d, ecx
idiv esi
xor r11d, r8d
movsxd rax, edx
mov dword [rbp + 0x48], r11d
movzx r8d, byte [rax + rdi]
lea eax, [rbx + 5]
cdq
shl r8d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 6]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 7]
xor r8d, ecx
cdq
idiv esi
shl r8d, 8
add ebx, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
xor r8d, ecx
mov ecx, r11d
xor r10d, r8d
lea r8, [rbp + 0x48]
mov edx, r10d
mov dword [rbp + 0x4c], r10d
call fcn.140041980
mov r11d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x4c]
mov dword [r14 + r12*4 + 0x400], r11d
mov dword [r14 + r12*4 + 0x404], r10d
add r12, 2
cmp r12, 0x100
jl 0x1400423a0
mov r12, r15
mov eax, ebx
mov r9, r14
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rax + rdi]
lea eax, [rbx + 1]
cdq
shl r8d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 2]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 3]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 4]
cdq
xor r8d, ecx
idiv esi
xor r11d, r8d
movsxd rax, edx
mov dword [rbp + 0x48], r11d
movzx r8d, byte [rax + rdi]
lea eax, [rbx + 5]
cdq
shl r8d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 6]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 7]
xor r8d, ecx
cdq
idiv esi
shl r8d, 8
add ebx, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
xor r8d, ecx
mov ecx, r11d
xor r10d, r8d
lea r8, [rbp + 0x48]
mov edx, r10d
mov dword [rbp + 0x4c], r10d
call fcn.140041980
mov r11d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x4c]
mov dword [r14 + r12*4 + 0x800], r11d
mov dword [r14 + r12*4 + 0x804], r10d
add r12, 2
cmp r12, 0x100
jl 0x140042482
mov eax, ebx
mov r9, r14
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rax + rdi]
lea eax, [rbx + 1]
cdq
shl r8d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 2]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 3]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 4]
cdq
xor r8d, ecx
idiv esi
xor r11d, r8d
movsxd rax, edx
mov dword [rbp + 0x48], r11d
movzx r8d, byte [rax + rdi]
lea eax, [rbx + 5]
cdq
shl r8d, 8
idiv esi
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 6]
cdq
xor r8d, ecx
idiv esi
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
lea eax, [rbx + 7]
xor r8d, ecx
cdq
idiv esi
shl r8d, 8
add ebx, 8
movsxd rax, edx
movzx ecx, byte [rax + rdi]
xor r8d, ecx
mov ecx, r11d
xor r10d, r8d
lea r8, [rbp + 0x48]
mov edx, r10d
mov dword [rbp + 0x4c], r10d
call fcn.140041980
mov r11d, dword [rbp + 0x48]
mov r10d, dword [rbp + 0x4c]
mov dword [r14 + r15*4 + 0xc00], r11d
mov dword [r14 + r15*4 + 0xc04], r10d
add r15, 2
cmp r15, 0x100
jl 0x140042561
mov rbx, qword [rsp + 0x70]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret