Function at 0x140004404
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov byte [rsp + 0x18], r8b
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x140025210]
xor edx, edx
mov rbx, qword [rsp + 0x138]
mov ebp, 1
mov r14, qword [rsp + 0x110]
sub rax, rbp
movzx r11d, word [0x14002522c]
mov rsi, r9
mov qword [0x140025210], rax
sub rsi, rbp
mov qword [rsp + 0x68], r11
movsxd rcx, dword [rbx + rax*4]
mov rax, qword [0x140025250]
div rcx
mov rcx, qword [r14]
mov rax, qword [0x140025270]
mov qword [rsp + 0x88], rdx
xor edx, edx
mov qword [rsp + 0xf8], rsi
movsxd r15, dword [rax + rcx*4]
lea rax, [rcx + 1]
mov qword [r14], rax
sub qword [0x1400251c0], rbp
movsxd rax, dword [0x1400251a0]
add qword [r14], rbp
mov r8, qword [0x140025210]
div r9
mov r9, qword [r14]
mov rax, qword [0x140025270]
mov r10, rdx
movsxd rdi, dword [rbx + r8*4]
xor edx, edx
mov qword [rsp + 0x78], rdi
movsxd rcx, dword [rax + r9*4]
mov rax, qword [rsp + 0x100]
div rcx
mov rcx, qword [0x1400251e8]
mov qword [rsp + 0x90], rax
imul rax, qword [r14 + r8*8 + 0xe0], 0x16e
movsxd rdx, dword [rcx + r9*4]
mov rcx, qword [0x1400251d8]
imul rdx, qword [0x140025218]
mov qword [rsp + 0x98], rax
movzx eax, word [0x1400251e0]
mov qword [rsp + 0x60], rax
movsxd rax, dword [rcx + r9*4]
mov qword [rsp + 0x110], rax
mov rax, qword [0x140025220]
mov r13, rax
mov qword [rsp + 0x80], rax
sub rax, rbp
mov qword [0x140025220], rax
mov rax, qword [0x1400251f0]
movsxd r8, dword [rax + r8*4]
movzx eax, word [0x140025234]
mov r12d, eax
mov dword [rsp + 0x130], eax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x70], r8
cmp r12, qword [r11 + rax*8]
jb 0x140004683
lea r13, [r10 + 5]
add r13, rdx
movzx eax, word [r15]
sub r13, rbp
mov rcx, qword [rsp + 0x108]
xor qword [rcx + rax*8], r12
mov rcx, qword [r14 + 8]
movzx eax, word [r15 + 0x3578]
movsxd rbx, dword [0x1400251c8]
mov r8, qword [r8 + r12*8]
mov rdx, qword [r11 + rcx*8]
or r8, rax
mov rax, qword [rsp + 0x128]
movzx ebp, byte [r13]
movsxd rsi, dword [0x1400251f8]
mov rdi, qword [rax + rcx*8]
mov rax, qword [r14]
mov rcx, qword [rsp + 0x60]
mov r11, qword [rcx + rax*8 + 0x10]
mov rcx, qword [0x140025210]
mov rax, qword [0x1400251b8]
imul r11, qword [rsp + 0x100]
mov r9d, dword [rax + rcx*4]
mov ecx, ebp
add r9d, dword [0x1400251ac]
mov rax, qword [rsp + 0x118]
movsxd r10, r9d
mov r9d, 0x1d93
mov al, byte [r12 + rax]
mov byte [rsp + 0x58], al
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], rbx
mov ebx, dword [rsp + 0x130]
mov byte [rsp + 0x38], bl
mov qword [rsp + 0x30], 0xbe3
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rsi
call section..text
mov r11, qword [rsp + 0x68]
mov ebp, 1
mov r8, qword [rsp + 0x70]
add ebx, ebp
mov word [0x140025234], ax
mov rax, qword [r14 + 8]
movsxd r12, ebx
mov dword [rsp + 0x130], ebx
cmp r12, qword [r11 + rax*8]
jae 0x140004572
mov rcx, qword [0x1400251d8]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xf8]
mov r13, qword [rsp + 0x80]
mov r8, qword [r14 + 8]
mov rax, qword [0x140025258]
mov r10, qword [rsp + 0x88]
movsxd r12, r10d
imul ecx, dword [rcx + rax*4], 0x9dd
mov rax, qword [rsp + 0x120]
movsxd rdx, ecx
sub rdx, qword [rax + 0xb788]
xor rdx, qword [rax + 0x2bf8]
sub rdx, qword [r14 + r8*8 + 8]
mov qword [r14 + r8*8 + 8], rdx
mov rdx, qword [r14 + 8]
mov rax, qword [0x140025238]
mov r11, qword [0x140025220]
movzx r8d, byte [0x1400251a4]
dec r11
or r8, 0x775
movzx ecx, word [rax]
mov rax, qword [rsp + 0x110]
mov rbx, qword [rax + rdx*8]
lea eax, [r10 + r10*2]
movsxd rbp, eax
and rbx, rcx
mov rax, qword [rsp + 0x90]
xor edx, edx
movzx ecx, byte [rax + rbp]
mov eax, 0x777
div ecx
mov edx, dword [0x1400251a0]
mov rcx, rbx
movsxd r9, eax
mov rax, qword [rsp + 0x98]
mov qword [0x140025220], r11
movzx r10d, word [rax + r12*2]
mov al, byte [rsp + 0xf0]
dec al
movzx eax, al
xor r10d, eax
mov dword [rsp + 0x28], r10d
mov qword [rsp + 0x20], r11
call fcn.140005478
mov rdx, qword [rsp + 0x110]
mov r10d, 1
movsxd rcx, eax
mov rax, qword [r14]
mov qword [rdx + rax*8], rcx
mov rcx, qword [r14]
mov rdx, qword [rsp + 0x108]
mov rax, qword [rsp + 0x138]
movsxd rax, dword [rax - 4]
sub rax, qword [rdx + rcx*8]
mov qword [rdx + rcx*8], rax
and qword [0x1400251c0], 0
add word [r15], r10w
movzx eax, word [r15]
movzx eax, word [rax + rax + 0x610]
cmp word [0x140025234], ax
mov rax, qword [0x140025210]
jb 0x1400047e7
mov rcx, qword [0x1400251d0]
lea r9, [rax + rax*2]
movzx eax, word [r13 - 2]
xor edx, edx
add rax, rsi
div qword [rcx + rbp*8]
mov rcx, qword [0x1400251d8]
xor edx, edx
movsxd r8, dword [rcx + r12*4]
div r8
or word [r15 + r9*2], dx
mov rax, qword [0x140025210]
mov rbx, qword [rsp + 0xe0]
add rax, r10
mov qword [0x140025210], rax
lea rax, [rax + rax*2]
mov ecx, dword [rdi + rax*4 + 0x18]
mov eax, 0x90ee57f7
imul ecx
add edx, ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret