Function at 0x200187ca0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rdi, rdx
mov rsi, rcx
mov dword [rcx], 0xe
cmp byte [section.packer2], 0
jne 0x200187cc8
call fcn.2001ddca0
mov byte [section.packer2], 1
lea rax, [rsi + 0x10]
mov qword [rsi + 8], rax
mov eax, dword [rdi]
mov dword [rsi + 0x10], eax
mov eax, dword [rdi + 4]
mov dword [rsi + 0x14], eax
mov eax, dword [rdi + 8]
mov dword [rsi + 0x18], eax
mov eax, dword [rdi + 0xc]
mov dword [rsi + 0x1c], eax
mov eax, dword [rdi + 0x10]
mov dword [rsi + 0x20], eax
mov eax, dword [rdi + 0x14]
mov dword [rsi + 0x24], eax
mov eax, dword [rdi + 0x18]
mov dword [rsi + 0x28], eax
mov eax, dword [rdi + 0x1c]
mov dword [rsi + 0x2c], eax
mov eax, dword [rsi]
cmp eax, 0xa
je 0x200187e23
cmp eax, 0xc
je 0x200187ec0
cmp eax, 0xe
jne 0x200187f6b
mov r8d, dword [rsi + 0x10]
xor eax, eax
lea rcx, [0x2001fd3c0]
lea rdx, [0x2001fc010]
xor r8d, dword [rax + rcx]
mov ebx, dword [rsi + rax*8 + 0x2c]
movzx edi, bh
movzx r9d, byte [rdi + rdx]
xor r9d, r8d
mov r8d, ebx
shr r8d, 0x10
movzx r8d, r8b
movzx r8d, byte [r8 + rdx]
shl r8d, 8
mov r10, rbx
shr r10, 0x18
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
xor r10d, r9d
xor r10d, r8d
movzx r8d, bl
movzx r8d, byte [r8 + rdx]
shl r8d, 0x18
xor r8d, r10d
mov dword [rsi + rax*8 + 0x30], r8d
mov r9d, dword [rsi + rax*8 + 0x14]
xor r9d, r8d
mov dword [rsi + rax*8 + 0x34], r9d
xor r9d, dword [rsi + rax*8 + 0x18]
mov dword [rsi + rax*8 + 0x38], r9d
xor r9d, dword [rsi + rax*8 + 0x1c]
mov dword [rsi + rax*8 + 0x3c], r9d
movzx r10d, r9b
movzx r10d, byte [r10 + rdx]
xor r10d, dword [rsi + rax*8 + 0x20]
mov r11d, r9d
shr r11d, 8
movzx r11d, r11b
movzx r11d, byte [r11 + rdx]
shl r11d, 8
xor r11d, r10d
mov r10d, r9d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
shr r9, 0x18
movzx r9d, byte [r9 + rdx]
shl r9d, 0x18
xor r9d, r10d
xor r9d, r11d
mov dword [rsi + rax*8 + 0x40], r9d
xor r9d, dword [rsi + rax*8 + 0x24]
mov dword [rsi + rax*8 + 0x44], r9d
xor r9d, dword [rsi + rax*8 + 0x28]
mov dword [rsi + rax*8 + 0x48], r9d
xor r9d, ebx
mov dword [rsi + rax*8 + 0x4c], r9d
add rax, 4
cmp rax, 0x1c
jne 0x200187d30
jmp 0x200187f6b
mov r8d, dword [rsi + 0x10]
xor eax, eax
lea rcx, [0x2001fd3c0]
lea rdx, [0x2001fc010]
nop word [rax + rax]
xor r8d, dword [rax + rcx]
mov ebx, dword [rsi + rax*4 + 0x1c]
movzx edi, bh
movzx r9d, byte [rdi + rdx]
xor r9d, r8d
mov r8d, ebx
shr r8d, 0x10
movzx r8d, r8b
movzx r8d, byte [r8 + rdx]
shl r8d, 8
mov r10, rbx
shr r10, 0x18
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
xor r10d, r9d
xor r10d, r8d
movzx r8d, bl
movzx r8d, byte [r8 + rdx]
shl r8d, 0x18
xor r8d, r10d
mov dword [rsi + rax*4 + 0x20], r8d
mov r9d, dword [rsi + rax*4 + 0x14]
xor r9d, r8d
mov dword [rsi + rax*4 + 0x24], r9d
xor r9d, dword [rsi + rax*4 + 0x18]
mov dword [rsi + rax*4 + 0x28], r9d
xor r9d, ebx
mov dword [rsi + rax*4 + 0x2c], r9d
add rax, 4
cmp rax, 0x28
jne 0x200187e40
jmp 0x200187f6b
mov r8d, dword [rsi + 0x10]
add rsi, 0x3c
xor eax, eax
lea rcx, [0x2001fd3c0]
lea rdx, [0x2001fc010]
nop dword [rax + rax]
xor r8d, dword [rax + rcx]
mov ebx, dword [rsi - 0x18]
movzx edi, bh
movzx r9d, byte [rdi + rdx]
xor r9d, r8d
mov r8d, ebx
shr r8d, 0x10
movzx r8d, r8b
movzx r8d, byte [r8 + rdx]
shl r8d, 8
mov r10, rbx
shr r10, 0x18
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
xor r10d, r9d
xor r10d, r8d
movzx r8d, bl
movzx r8d, byte [r8 + rdx]
shl r8d, 0x18
xor r8d, r10d
mov dword [rsi - 0x14], r8d
mov r9d, dword [rsi - 0x28]
xor r9d, r8d
mov dword [rsi - 0x10], r9d
xor r9d, dword [rsi - 0x24]
mov dword [rsi - 0xc], r9d
xor r9d, dword [rsi - 0x20]
mov dword [rsi - 8], r9d
xor r9d, dword [rsi - 0x1c]
mov dword [rsi - 4], r9d
xor r9d, ebx
mov dword [rsi], r9d
add rax, 4
add rsi, 0x18
cmp rax, 0x20
jne 0x200187ee0
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret