Function at 0x180048940
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r13
push r14
push r15
mov r9b, byte [0x180257e35]
mov rdi, rcx
movsxd r12, dword [0x180257e78]
mov rbx, rdx
mov r11, r8
mov ecx, 1
movzx r8d, word [0x180257e00]
add r9b, cl
mov byte [0x180257e35], r9b
movsxd rax, dword [rdx]
mov r14, qword [rdi + rax*8]
mov eax, r8d
add word [0x180257e58], cx
add eax, dword [0x180257e4c]
mov ebp, dword [rdx + 0x250c]
mov r13d, dword [rbx + 0x6d64]
add ebp, 0x455
movsxd r15, eax
mov eax, dword [rdx]
add eax, 7
movsxd rcx, eax
mov rax, qword [0x180257df0]
movzx eax, word [rax + rcx*2]
cdq
movzx ecx, r9b
idiv dword [rbx + r8*4]
lea rdx, [rcx + rcx*2]
movzx ecx, word [r11 + 0x1850]
mov rsi, qword [rdi + rdx*8]
movzx edx, word [r11]
mov r10d, eax
cmp word [r11 + rdx*2], cx
jae 0x180048a06
movsxd rcx, dword [rsi]
movzx eax, r10w
movzx edx, word [r11 + rcx*2]
cmp edx, dword [rbx + rax*4 + 4]
jl 0x180048ae4
movzx eax, r10w
mov ecx, 0x1e42
cmp word [r14 + rax*4 + 6], cx
jb 0x180048ae4
movzx eax, word [r11 + 0x2a38]
xor edx, edx
mov rcx, qword [0x180257e18]
or r13d, eax
movzx eax, byte [0x180257e0f]
or dword [r8 + rcx*4 + 0x20], eax
inc byte [0x180257e0f]
mov eax, dword [0x180257e08]
movzx r9d, byte [0x180257e35]
add eax, 0xffffe5fe
mov r8, qword [0x180257e20]
cdqe
movsxd rcx, r13d
and rax, rcx
movsxd rcx, dword [0x180257e30]
div qword [rdi + rcx*8]
movzx ecx, ax
movzx eax, word [r8 + r9*2]
imul eax, ecx
mov word [r8 + r9*2], ax
inc dword [0x180257e08]
movzx eax, word [rdi + 0xa680]
mov rcx, qword [0x180257e18]
mov word [0x180257e0c], ax
dec rcx
mov qword [0x180257e18], rcx
movsxd rax, dword [rbx + 4]
shl rcx, 5
movsxd r9, ebp
mov r8, qword [rdi + rax*8]
xor r8, qword [rcx + rdi + 0x18]
movzx eax, byte [0x180257e0f]
sub r8, rax
movabs rax, 0x10ecad3e3bf80111
mul r8
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 0xa
or qword [r12 + r9*8], r8
jmp 0x180048c3b
mov eax, 0xffff
mov r13d, 1
add r10w, ax
movzx eax, r10w
movzx r9d, word [r11 + rax*2]
movzx eax, byte [0x180257e02]
cmp r9d, eax
ja 0x180048b99
movsxd r14, ebp
lea rbx, [r11 + r9*2]
dec dword [rsi]
add r9d, r13d
mov eax, dword [rsi]
add eax, 5
movzx edx, r10w
movsxd rcx, eax
add r10w, r13w
movzx eax, word [rdi + rcx*8]
add word [rdx + rdx + 0x19a8], ax
xor edx, edx
sub dword [0x180257e30], r13d
movzx ecx, word [rbx + 6]
movzx eax, word [r11 + r14*2]
div ecx
xor byte [0x180257e03], al
movzx ecx, word [rbx]
lea rbx, [rbx + 2]
mov eax, dword [rsi]
add eax, 5
movsxd r8, eax
mov eax, dword [0x180257e7c]
cdq
idiv ecx
movzx eax, bp
sub dx, 0x1d
and word [r11 + r8*2], dx
movsxd r8, dword [rsi]
mov rdx, qword [0x180257e20]
movzx ecx, word [rdx + r8*2]
imul ecx, eax
mov word [rdx + r8*2], cx
movzx eax, byte [0x180257e02]
cmp r9d, eax
jle 0x180048b13
mov eax, dword [0x180257e5c]
add r10w, r13w
mov rdx, qword [0x180257e20]
inc eax
movsxd r8, eax
mov r9d, 0x3de
movzx eax, word [0x180257e48]
movzx ecx, word [rdi + rax*8]
xor cx, r9w
add word [rdx + r8*2], cx
sub dword [0x180257e4c], r13d
mov eax, dword [0x180257e5c]
movzx ecx, word [r11]
lea eax, [rax + rax*2]
add eax, 4
cdqe
movzx eax, word [r12 + rax*8]
mov word [r11 + rcx*2], ax
movzx eax, word [0x180257e00]
movzx ecx, byte [0x180257e34]
xor eax, 0x1b8b
or dword [r15 + rcx*4 + 0x10], eax
mov al, byte [0x180257e35]
add al, 0xff
movzx ecx, r10w
mov byte [0x180257e35], al
movzx r8d, al
mov rax, qword [0x180257e70]
movzx edx, byte [rcx + rax]
movzx eax, byte [0x180257e34]
movzx ecx, word [rax + rax + 0x19a8]
add rdx, rcx
add qword [rdi + r8*8], rdx
mov rax, qword [rdi + 0xa248]
xor edx, edx
movzx ecx, word [0x180257e00]
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
div rcx
pop r15
pop r14
pop r13
pop r12
ret