Function at 0x1800041b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x20
mov ebp, dword [rdx]
mov r15, rdx
mov r12d, dword [r8]
mov r14, r8
cmp ebp, r12d
mov dword [rsp + 0x58], r12d
mov edi, r12d
mov ebx, r12d
cmova edi, ebp
mov rsi, rcx
sub ebx, edi
mov edx, edi
add ebx, ebp
call fcn.180002010
test eax, eax
jne 0x1800045ad
mov qword [rsp + 0x50], r13
mov r9d, eax
mov dword [rsi], edi
test ebx, ebx
je 0x180004355
cmp ebx, 0x10
jb 0x180004314
mov rdx, qword [rsi + 8]
lea eax, [rbx - 1]
mov r10, qword [r14 + 8]
lea r12, [rax*4]
lea r13, [r14 + 8]
lea rcx, [r12 + rdx]
lea rax, [r12 + r10]
cmp rdx, rax
ja 0x180004240
cmp rcx, r10
jae 0x18000430f
mov r8, qword [r15 + 8]
lea r11, [r15 + 8]
lea rax, [r12 + r8]
cmp rdx, rax
ja 0x18000425a
cmp rcx, r8
jae 0x18000430f
cmp rdx, r13
ja 0x180004268
cmp rcx, r13
jae 0x18000430f
cmp rdx, r11
ja 0x180004276
cmp rcx, r11
jae 0x18000430f
lea rax, [rsi + 8]
cmp rdx, rax
ja 0x180004288
cmp rcx, rax
jae 0x18000430f
mov r11d, ebx
and r11d, 0xfffffff0
mov r13d, 8
nop word [rax + rax]
mov eax, r9d
add r9d, 0x10
movdqu xmm0, xmmword [r8 + rax*4]
movdqu xmm1, xmmword [r10 + rax*4]
pxor xmm1, xmm0
movdqu xmmword [rdx + rax*4], xmm1
lea eax, [r13 - 4]
movdqu xmm0, xmmword [r8 + rax*4]
movdqu xmm1, xmmword [r10 + rax*4]
pxor xmm1, xmm0
movdqu xmmword [rdx + rax*4], xmm1
mov eax, r13d
movdqu xmm0, xmmword [r8 + rax*4]
movdqu xmm1, xmmword [r10 + rax*4]
pxor xmm1, xmm0
movdqu xmmword [rdx + rax*4], xmm1
lea eax, [r13 + 4]
add r13d, 0x10
movdqu xmm1, xmmword [r8 + rax*4]
movdqu xmm0, xmmword [r10 + rax*4]
pxor xmm1, xmm0
movdqu xmmword [rdx + rax*4], xmm1
cmp r9d, r11d
jb 0x1800042a0
mov r12d, dword [rsp + 0x58]
cmp r9d, ebx
jae 0x180004355
mov eax, r9d
lea r8, [rax*4]
mov eax, ebx
sub eax, r9d
mov r9d, eax
nop dword [rax]
mov rax, qword [r14 + 8]
lea r8, [r8 + 4]
mov rcx, qword [r15 + 8]
mov edx, dword [r8 + rcx - 4]
xor edx, dword [r8 + rax - 4]
mov rax, qword [rsi + 8]
mov dword [r8 + rax - 4], edx
sub r9, 1
jne 0x180004330
cmp ebp, r12d
je 0x18000458d
mov r11d, edi
cmp ebx, ebp
jae 0x180004482
mov eax, dword [r14 + 0x10]
neg eax
sbb r10d, r10d
sub r11d, ebx
movd xmm1, r10d
pshufd xmm1, xmm1, 0
cmp ebx, edi
jae 0x18000458d
cmp r11d, 0x10
jb 0x180004440
mov r9, qword [rsi + 8]
lea eax, [rdi - 1]
mov r8, qword [r15 + 8]
lea r13, [rsi + 8]
lea r12, [r15 + 8]
lea rdx, [rbx*4]
lea rbp, [r9 + rax*4]
lea rax, [r8 + rax*4]
lea rcx, [rdx + r9]
cmp rcx, rax
ja 0x1800043c6
lea rax, [rdx + r8]
cmp rbp, rax
jae 0x180004440
cmp rcx, r12
ja 0x1800043d0
cmp rbp, r12
jae 0x180004440
cmp rcx, r13
ja 0x1800043da
cmp rbp, r13
jae 0x180004440
and r11d, 0xf
mov ebp, edi
sub ebp, r11d
lea edx, [rbx + 8]
nop word [rax + rax]
movdqu xmm0, xmmword [r8 + rbx*4]
lea eax, [rdx - 4]
pxor xmm0, xmm1
movdqu xmmword [r9 + rbx*4], xmm0
add ebx, 0x10
movdqu xmm0, xmmword [r8 + rax*4]
pxor xmm0, xmm1
movdqu xmmword [r9 + rax*4], xmm0
lea eax, [rdx + 4]
movdqu xmm0, xmmword [r8 + rdx*4]
pxor xmm0, xmm1
movdqu xmmword [r9 + rdx*4], xmm0
lea edx, [rdx + 0x10]
movdqu xmm0, xmmword [r8 + rax*4]
pxor xmm0, xmm1
movdqu xmmword [r9 + rax*4], xmm0
cmp ebx, ebp
jb 0x1800043f0
cmp ebx, edi
jae 0x18000458d
sub edi, ebx
lea rdx, [rbx*4]
mov r8d, edi
nop word [rax + rax]
mov rax, qword [r15 + 8]
lea rdx, [rdx + 4]
mov ecx, dword [rdx + rax - 4]
mov rax, qword [rsi + 8]
xor ecx, r10d
mov dword [rdx + rax - 4], ecx
sub r8, 1
jne 0x180004460
jmp 0x18000458d
mov eax, dword [r15 + 0x10]
neg eax
sbb r10d, r10d
sub r11d, ebx
movd xmm1, r10d
pshufd xmm1, xmm1, 0
cmp ebx, edi
jae 0x18000458d
cmp r11d, 0x10
jb 0x180004550
mov r9, qword [rsi + 8]
lea eax, [rdi - 1]
mov r8, qword [r14 + 8]
lea r13, [rsi + 8]
lea r12, [r14 + 8]
lea rdx, [rbx*4]
lea rbp, [r9 + rax*4]
lea rax, [r8 + rax*4]
lea rcx, [rdx + r9]
cmp rcx, rax
ja 0x1800044df
lea rax, [rdx + r8]
cmp rbp, rax
jae 0x180004550
cmp rcx, r12
ja 0x1800044e9
cmp rbp, r12
jae 0x180004550
cmp rcx, r13
ja 0x1800044f3
cmp rbp, r13
jae 0x180004550
and r11d, 0xf
mov ebp, edi
sub ebp, r11d
lea edx, [rbx + 8]
nop
movdqu xmm0, xmmword [r8 + rbx*4]
lea eax, [rdx - 4]
pxor xmm0, xmm1
movdqu xmmword [r9 + rbx*4], xmm0
add ebx, 0x10
movdqu xmm0, xmmword [r8 + rax*4]
pxor xmm0, xmm1
movdqu xmmword [r9 + rax*4], xmm0
lea eax, [rdx + 4]
movdqu xmm0, xmmword [r8 + rdx*4]
pxor xmm0, xmm1
movdqu xmmword [r9 + rdx*4], xmm0
lea edx, [rdx + 0x10]
movdqu xmm0, xmmword [r8 + rax*4]
pxor xmm0, xmm1
movdqu xmmword [r9 + rax*4], xmm0
cmp ebx, ebp
jb 0x180004500
cmp ebx, edi
jae 0x18000458d
sub edi, ebx
lea rdx, [rbx*4]
mov r8d, edi
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r14 + 8]
lea rdx, [rdx + 4]
mov ecx, dword [rdx + rax - 4]
mov rax, qword [rsi + 8]
xor ecx, r10d
mov dword [rdx + rax - 4], ecx
sub r8, 1
jne 0x180004570
mov r13, qword [rsp + 0x50]
xor ecx, ecx
cmp dword [r15 + 0x10], ecx
mov eax, ecx
sete al
cmp dword [r14 + 0x10], ecx
sete cl
xor eax, ecx
mov dword [rsi + 0x10], eax
xor eax, eax
jmp 0x1800045b0
or eax, 0xffffffff
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret