Function at 0x1800039d4
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
movzx r11d, word [0x1802ace74]
mov rbx, rdx
mov rdi, qword [0x1802acea8]
mov r12, r8
movzx r10d, byte [0x1802ace83]
mov esi, 0x488
movsxd r9, dword [0x1802aced0]
mov eax, dword [r8 + r11*8]
add eax, dword [r8 + rdi*4]
mov r15d, dword [r12 + r11*4]
mov r14b, byte [0x1802aceb4]
mov r8b, byte [0x1802ace80]
mov r11d, dword [0x1802acee8]
cdqe
mov qword [rsp + 0x58], rax
lea eax, [r10 - 0x9f1]
mov r10d, dword [r12 + r10*4]
cdqe
mov qword [rsp + 0x38], rax
mov al, dil
xor al, 0x8c
movzx ebp, cx
mov rcx, qword [0x1802acee0]
mov r13d, ebp
mov byte [rsp + 0x21], al
sub r10d, ecx
mov rax, qword [0x1802acec8]
mov byte [rsp + 0xd0], r14b
mov byte [rsp + 0x20], r8b
mov dword [rsp + 0x2c], r15d
movzx eax, word [rax + rcx*2]
movsxd rcx, dword [rbx + 0x13c8]
cdq
idiv dword [0x1802aceb0]
mov edx, 1
mov dword [rsp + 0x28], r10d
add word [0x1802ace88], dx
cdqe
mov qword [rsp + 0x30], rax
movzx eax, byte [0x1802ace82]
and rcx, rax
mov eax, ebp
xor rax, 0xb65
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x50], rax
mov ecx, ebp
add ecx, dword [rbx + r9*4]
sub r9d, edx
mov dword [0x1802aced0], r9d
xor edx, edx
mov dword [rsp + 0x24], ecx
movsxd rcx, dword [rbx + rbp*4]
movsxd rax, r9d
xor rcx, rax
movsxd rax, dword [0x1802ace8c]
xor rax, qword [0x1802acf18]
mov qword [rsp + 0x60], rax
mov rax, qword [0x1802ace68]
mov qword [rsp + 0x48], rcx
movzx ecx, word [rsi]
movzx eax, byte [rax + rbp]
mov qword [rsp + 0x68], rax
movsxd rax, dword [0x1802aceb8]
div qword [rsp + 0xe8]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x30]
movzx edx, byte [rcx + rax]
cmp r11d, edx
jg 0x180003c2f
mov r14d, dword [rsp + 0x24]
mov r15, qword [rsp + 0x50]
mov edx, dword [0x1802acebc]
mov rax, qword [rsp + 0x40]
inc edx
mov dword [0x1802acebc], edx
movsxd rcx, r11d
movsxd r8, dword [rax + rcx*4]
mov rax, qword [rsp + 0x38]
movsxd rcx, edx
and r8, qword [rax + rcx*8]
movzx eax, byte [0x1802ace76]
or r8, rax
movsxd rax, r9d
sub r8, rdi
mov r9d, 1
mov qword [0x1802acea8], r8
add bp, r9w
movzx ecx, word [rsi]
mov r8, qword [rsp + 0x40]
movzx edx, word [r12 + rcx*4]
mov rcx, qword [rsp + 0x48]
add dx, word [rcx + rax*4]
mov eax, r11d
xor dx, r11w
add r11d, r9d
and dx, word [0x1802aced4]
mov word [rsi + r13*2], dx
cdq
add rsi, 2
movzx r13d, bp
movzx ecx, word [rsi]
idiv dword [r8 + rcx*4]
movzx eax, bp
or edx, r14d
add edx, dword [r15 + r13*4]
or dword [rbx + rcx*4], edx
mov rcx, qword [rsp + 0x30]
lea eax, [rax*4 + 4]
or dword [r12 + rax*4], 0xa30
mov rax, qword [rsp + 0x38]
mov rdi, qword [0x1802acea8]
mov r9d, dword [0x1802aced0]
imul r10d, dword [rax + r13*8]
movzx eax, word [rsi]
movzx ecx, byte [rax + rcx]
cmp r11d, ecx
jle 0x180003b4c
mov r15d, dword [rsp + 0x2c]
mov r14b, byte [rsp + 0xd0]
mov r8b, byte [rsp + 0x20]
mov dword [rsp + 0x28], r10d
movzx eax, word [rsi]
mov r11d, r15d
movzx ecx, word [rsi + rax*2]
cmp r15d, ecx
jl 0x180003d05
movsxd rax, r15d
mov r15d, 1
movzx r14d, bp
movzx r13d, r8b
lea r10, [rbx + rax*4]
movzx eax, byte [0x1802ace77]
xor edx, edx
xor r9d, eax
add r11d, r15d
mov rax, qword [0x1802acf18]
mov dword [0x1802aced0], r9d
movsxd rcx, dword [rbx + r14*4]
div rcx
mov dword [rbx + r14*4], edx
mov dword [r10], r13d
lea r10, [r10 + 4]
mov eax, dword [0x1802aceb8]
mov rcx, qword [0x1802acf18]
mov dword [rbx + rcx*8], eax
movzx ecx, byte [0x1802ace83]
mov edx, dword [0x1802aceb8]
mov eax, ecx
mov rdi, qword [0x1802acea8]
and eax, 0x1364
mov r8, qword [0x1802acef8]
add edx, r15d
mov dword [0x1802aceb8], edx
xor eax, r8d
add cl, 0xff
add eax, dword [r12 + rdi*8]
and edx, eax
mov byte [0x1802ace83], cl
mov dword [0x1802aceb8], edx
movzx eax, word [rsi]
movzx ecx, word [rsi + rax*2]
cmp r11d, ecx
jl 0x180003cf1
mov r9d, dword [0x1802aced0]
jmp 0x180003c57
mov r15d, dword [rsp + 0x2c]
mov r10d, dword [rsp + 0x28]
mov r14b, byte [rsp + 0xd0]
jmp 0x180003d0c
mov r8, qword [0x1802acef8]
movzx eax, byte [rsp + 0x24]
mov rcx, qword [rsp + 0x50]
movzx r12d, r14b
mov dword [rsp + 0x38], r12d
movzx ecx, byte [rcx + rdi*4]
imul ecx, eax
movzx eax, byte [rsp + 0x21]
xor eax, r8d
xor cl, r15b
mov byte [0x1802ace82], cl
movzx ecx, word [rsi]
add rcx, rcx
add dword [rbx + rcx*8], eax
xor byte [0x1802ace86], 0x43
movzx eax, word [rsi]
mov edi, dword [rbx + rax*4]
cmp edi, r12d
jl 0x180003f40
mov r8, qword [rsp + 0xe0]
mov r13d, 1
movzx r9d, r14b
movzx r14d, bp
mov ebp, edi
sub r10d, r14d
mov word [rsp + 0xd0], r9w
shl ebp, 2
mov dword [rsp + 0x30], r14d
lea r11d, [r14 + r14*2]
mov dword [rsp + 0x28], r10d
mov qword [rsp + 0x48], r11
mov dword [rsp + 0x24], ebp
movzx edx, word [rsi]
movzx eax, r9w
mov rcx, qword [0x1802acf10]
sub ax, word [rcx + rdx*2]
mov word [rcx + rdx*2], ax
xor edx, edx
mov rcx, qword [0x1802acf18]
mov eax, r10d
and eax, dword [0x1802acf00]
xor dword [rbx + rcx*4], eax
mov eax, 0xffff
movzx ecx, word [0x1802ace74]
add byte [0x1802ace86], r13b
add cx, ax
movsxd rax, dword [0x1802aceb8]
div qword [rsp + 0x60]
mov word [0x1802ace74], cx
movzx eax, cx
mov dword [rbx + rax*4], edx
movzx eax, word [rsi]
mov rdx, qword [rsp + 0xe8]
sub rdx, r13
movsxd r13, ebp
mov qword [rsp + 0xe8], rdx
mov ecx, dword [rbx + rax*4]
mov rax, qword [rsp + 0x58]
movzx eax, word [rax + r11*2]
xor eax, edx
xor eax, ecx
or eax, ecx
mov dword [rbx + r13*4], eax
mov rcx, qword [0x1802acea8]
add rcx, rcx
mov eax, dword [rbx + rcx*8]
imul eax, r14d
mov dword [rbx + rcx*8], eax
mov rax, qword [0x1802acea8]
mov ecx, dword [r8 + r13*4]
cmp ecx, dword [r8 + rax*4]
jle 0x180003f27
mov r14, qword [rsp + 0xe0]
mov r12d, ecx
mov rbp, qword [rsp + 0x40]
movsxd rbx, edi
movzx ecx, word [rsi]
mov rax, qword [rsp + 0x58]
movzx eax, word [rax + rcx*8]
lea rcx, [rcx + rcx*2]
or eax, dword [rbp + rcx*4]
movzx ecx, word [0x1802ace84]
sub eax, ecx
cdq
idiv r15d
movsxd rcx, eax
mov rax, qword [rsp + 0x68]
mov qword [rax + rbx*8], rcx
mov ecx, 0x16a9
mov rax, qword [0x1802acef8]
mov edx, dword [0x1802aced0]
dec rax
mov qword [0x1802acef8], rax
xor edx, 0x1a96
sub ax, cx
movzx ecx, word [0x1802acf08]
and ax, r15w
xor word [0x1802aceb4], ax
call fcn.180005cb0
mov byte [0x1802ace86], al
inc r12d
mov rax, qword [0x1802acea8]
mov cl, byte [rsi + rax*8]
mov rax, qword [rsp + 0x70]
or cl, dil
or cl, 0x8c
xor byte [rax + r13], cl
mov rax, qword [0x1802acea8]
cmp r12d, dword [r14 + rax*4]
jg 0x180003e5a
mov rbx, qword [rsp + 0xd8]
mov r14d, dword [rsp + 0x30]
mov ebp, dword [rsp + 0x24]
mov r12d, dword [rsp + 0x38]
mov r8, qword [rsp + 0xe0]
mov r10d, dword [rsp + 0x28]
movzx r9d, word [rsp + 0xd0]
mov r11, qword [rsp + 0x48]
add ebp, 4
mov r13d, 1
add edi, r13d
mov dword [rsp + 0x24], ebp
cmp edi, r12d
jge 0x180003d94
mov eax, dword [0x1802ace98]
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret