Function at 0x140003e94
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov rax, qword [0x140025208]
mov rsi, rdx
mov ebp, dword [0x1400251f8]
xor edx, edx
mov rbx, rcx
mov qword [rsp + 0x50], r8
mov ecx, 1
mov r10, r8
movsxd r9, dword [rax + r8*4]
add ebp, ecx
mov rax, r8
mov edi, 0xef6
div r9
mov r9, qword [0x140025270]
mov al, bpl
shl al, 2
sub edi, esi
mov qword [rsp + 0x40], rdx
movsxd r14, dword [r9 + 0x3abc]
mov dword [0x1400251f8], ebp
add bpl, al
movsxd rax, dword [0x1400251cc]
mov r11, rax
mov qword [rsp + 0x70], rax
add eax, ecx
shl bpl, 3
mov dword [0x1400251cc], eax
lea rcx, [r8 + r8*2]
mov rax, qword [0x140025240]
movsxd r8, edi
mov qword [rsp + 0x58], r14
movzx eax, word [rax + rcx*2]
or eax, dword [0x140025260]
mov rcx, qword [0x140025258]
mov qword [rsp + 0x60], rax
mov rax, rcx
add rax, rax
mov r12b, byte [r9 + rax*8]
mov eax, 0x15a2dced
or r12b, cl
mov r9d, 1
mov ecx, dword [0x140025230]
imul ecx
mov dword [rsp + 0x48], r12d
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xbd5
sub ecx, eax
mov rax, qword [0x1400251e8]
movsxd r13, ecx
movsxd r15, dword [rax + rsi*4]
mov eax, 0x1b01
cdq
idiv edi
mov ecx, dword [r15 + r8*8]
and ecx, eax
lea eax, [rdi + rdi*2]
and dword [r13 + r8*4], ecx
add edi, r9d
mov edx, dword [r15 + 0xc9a8]
movsxd rcx, eax
or edx, r10d
and edx, dword [r11 + r8*4]
mov rax, qword [0x140025210]
mov dword [rsp + 0x108], edi
or edx, dword [r15 + rcx*8]
xor dword [0x140025260], edx
mov qword [rbx + rax*8], r10
add r10, r9
mov eax, dword [0x140025228]
shl eax, 2
movsxd rcx, eax
mov eax, edi
mov qword [rsp + 0x100], r10
and qword [rbx + rcx*8], r10
shl eax, 2
movsxd r8, eax
mov eax, 0x5ea
mov qword [rsp + 0x80], r8
mov rcx, qword [0x140025208]
cdq
idiv dword [rcx + r8*4]
mov rcx, qword [rsp + 0x40]
cdq
movzx r8d, r12b
idiv dword [0x1400251c8]
movsxd rax, ecx
sub ecx, r9d
mov dword [0x1400251c8], edx
xor edx, edx
div rsi
mov qword [rsp + 0x40], rcx
xor edx, edx
mov r11, rax
lea eax, [rdi + rdi*2]
movsxd rcx, eax
mov dword [rsp + 0xf0], eax
mov rax, qword [0x1400251b8]
mov qword [rsp + 0x68], rcx
movsxd rcx, dword [rax + rcx*4]
mov rax, qword [0x140025210]
div rcx
movzx ecx, word [0x14002522c]
mov r10, rax
xor r8w, cx
add cx, r9w
movsxd rax, edi
mov r9, qword [0x140025258]
mov word [0x14002522c], cx
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x88], rax
mov eax, dword [rcx + rax*4]
mov rcx, qword [0x1400251b0]
cdq
idiv dword [rcx + r9*4]
mov rcx, qword [rsp + 0x68]
xor edx, edx
movsxd r9, eax
mov eax, 0x1b3b
div qword [rbx + rcx*8]
movzx ecx, bpl
mov edx, r10d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rcx
mov rcx, r11
mov qword [rsp + 0x20], r9
movzx r9d, di
call fcn.140001a80
mov r8, qword [0x140025210]
mov r10d, 1
mov r9, qword [rsp + 0x50]
add bpl, r10b
mov word [0x1400251fc], ax
xor edx, edx
movzx ecx, bpl
mov dword [rsp + 0xf8], ebp
movzx eax, word [r9 + r8*2]
xor rax, qword [rbx + 0x4958]
or rax, rcx
movzx ecx, byte [0x1400251a4]
div rcx
mov byte [0x1400251a4], dl
movsxd rbp, dword [rbx + rsi*8]
add rsi, r10
mov r14, rbp
cmp rbp, qword [rsp + 0x58]
je 0x140004236
mov rax, qword [rsp + 0x40]
lea ecx, [r10 + 0x59]
cdqe
mov qword [rsp + 0x40], rax
movzx eax, r12b
mov r12, qword [rsp + 0x40]
sub ecx, eax
movsxd rax, ecx
mov qword [rsp + 0x78], rax
imul eax, edi, 0x281
mov rdi, qword [rsp + 0x78]
shl r14, 4
add r14, rbx
movsxd r10, eax
mov qword [rsp + 0x90], r10
xor edx, edx
lea rax, [r8 + r8*2]
movsxd rax, dword [r13 + rax*4]
xor rax, r12
div qword [rbx + rsi*8]
xor edx, edx
mov qword [rbx + rsi*8], rax
mov rcx, qword [0x140025210]
mov rax, qword [0x140025258]
inc rcx
mov qword [0x140025210], rcx
add rcx, rcx
mov rax, qword [r15 + rax*8]
or rax, qword [rbx + rcx*8]
mov rcx, qword [rsp + 0x80]
movzx ecx, word [r9 + rcx*2]
mov r9, rdi
sub rax, rcx
div qword [rsp + 0x88]
mov rax, rdx
xor edx, edx
div qword [r14]
mov rdx, r10
mov qword [r14], rax
mov rax, qword [rsp + 0x68]
movsxd rcx, dword [0x140025228]
xor rcx, qword [rbx + 0xaaf0]
mov r8b, byte [r13 + rax*4]
call fcn.140006158
mov r10d, 1
mov byte [rsp + 0xf8], al
add ebp, r10d
lea r14, [r14 + 0x10]
movsxd rax, ebp
cmp rax, qword [rsp + 0x58]
je 0x14000422a
mov r8, qword [0x140025210]
mov r10, qword [rsp + 0x90]
mov r9, qword [rsp + 0x50]
jmp 0x140004172
mov edi, dword [rsp + 0x108]
mov r12d, dword [rsp + 0x48]
sub rsi, r10
mov rax, rsi
shl rax, 5
movsxd rbp, dword [rax + rbx]
cmp ebp, edi
jge 0x140004373
mov r8, qword [rsp + 0x100]
lea rax, [rbp + 3]
mov r14, r8
lea rax, [rax + rax*2]
mov r11, rbp
lea rcx, [r15 + rax*8]
add r14, r14
shl r11, 5
add r11, r15
mov qword [rsp + 0x108], rcx
mov rax, qword [0x140025250]
xor edx, edx
add rax, r10
movzx r12d, r12b
mov qword [0x140025250], rax
add edi, r10d
movsxd rcx, dword [r13 + rsi*8]
add rsi, r10
div rcx
mov rcx, qword [r11]
imul rax, rdx, 0x9bd
mov edx, dword [rsp + 0xf0]
imul rcx, rax
add edx, 6
mov qword [r11], rcx
lea r11, [r11 + 0x20]
mov al, byte [rbx + 0x348]
mov rcx, qword [rsp + 0x50]
sub al, dil
and al, r8b
mov dword [rsp + 0xf0], edx
movzx eax, al
add edi, r10d
imul r12d, eax
movsxd rax, edi
movsxd r10, ebp
mov qword [rbx + rax*8], rsi
movzx ecx, word [rcx + rax*2]
sub rcx, r8
movzx r9d, r12b
xor rcx, r10
xor rcx, qword [rbx + r14*8]
xor rcx, rsi
mov qword [rbx + r14*8], rcx
lea rax, [r9 + 0x153a]
mov r8, qword [0x140025258]
inc r8
movsxd rcx, edx
mov qword [0x140025258], r8
xor edx, edx
add r8, r8
div qword [r15 + r8*8 + 0xb8]
mov r8, qword [rsp + 0x108]
or qword [r15 + rcx*8], rdx
xor edx, edx
movsxd rcx, dword [rsp + 0x60]
movzx eax, r12b
xor r10, qword [r8]
add r8, 0x18
or rax, r10
mov qword [rsp + 0x108], r8
mov r8, qword [rsp + 0x100]
mov r10d, 1
div rcx
add ebp, r10d
mov qword [rsp + 0x60], rdx
cmp ebp, edi
jl 0x140004278
xor edx, edx
movsxd rcx, edi
mov rax, rcx
div qword [rbx + rcx*8]
xor edx, edx
mov qword [rbx + rcx*8], rax
mov eax, edi
mov r8, qword [0x140025210]
shl eax, 2
add r8, r8
movsxd rcx, eax
mov eax, 0x98f
div qword [r15 + rcx*8]
mov rcx, qword [rsp + 0x70]
mov rax, rdx
xor edx, edx
div rsi
xor edx, edx
xor dword [r13 + r8*8], eax
sub qword [0x140025210], r10
movsxd rcx, dword [rcx + 0x5e50]
movzx eax, byte [rsp + 0xf8]
xor rax, qword [rsp + 0x58]
div rcx
movsxd rcx, dword [rsp + 0x60]
sub rax, rcx
mov rcx, qword [0x140025258]
mov qword [rbx + rcx*8], rax
lea eax, [rdi + 1]
cdqe
mov eax, dword [r15 + rax*8]
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret