Function at 0x18000520c
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x2a0]
sub rsp, 0x3a0
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x10]
mov qword [0x180009038], rcx
call fcn.180004ce0
lea rcx, [rax + 0x1a0]
call fcn.18000102c
mov rbx, rax
lea rcx, [rax + 0x40]
call fcn.18000102c
mov rcx, rax
call fcn.18000102c
lea rcx, [rax + 0x78]
call fcn.18000102c
lea rcx, [rbx + 0x28]
mov rdi, rax
call fcn.18000102c
xor ebx, ebx
mov dword [rsp + 0x62], 0xb708b720
mov dword [rsp + 0x66], 0xb71bb708
mov edx, ebx
mov dword [rsp + 0x6a], 0xb71eb73d
mov r15d, 0x4894
mov rcx, qword [rax + 0x38]
mov qword [0x180009040], rcx
lea esi, [rbx + 1]
mov dword [rsp + 0x6e], 0xb700b707
mov dword [rsp + 0x72], 0xb737b711
mov dword [rsp + 0x76], 0xb703b703
mov dword [rsp + 0x7a], 0xb716b70c
mov dword [rsp + 0x7e], 0xb714
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rsp + rcx*2 + 0x62], ax
cmp edx, 0xf
jb 0x1800052cc
mov ecx, ebx
mov word [rbp - 0x80], bx
cmp word [rsp + 0x62], bx
je 0x180005301
lea rax, [rsp + 0x62]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x1800052f4
inc ecx
mov dword [rbp + 0x68], ecx
lea rax, [rsp + 0x62]
mov dword [rbp + 0x6c], ecx
lea rdx, [rbp + 0x60]
test ecx, ecx
lea rcx, [rbp + 0x2f0]
cmove rax, rbx
mov qword [rbp + 0x60], rax
movaps xmm0, xmmword [rbp + 0x60]
movdqa xmmword [rbp + 0x60], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rbp - 0x5c], 0xb704b73e
movups xmmword [rbp + 0xf8], xmm0
mov dword [rbp - 0x58], 0xb707b709
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x108], rax
movups xmm1, xmmword [rbp + 0x100]
mov qword [rbp + 0xf0], rcx
movups xmm0, xmmword [rbp + 0xf0]
mov dword [rbp - 0x54], 0xb73cb704
movups xmmword [0x180009280], xmm1
mov dword [rbp - 0x50], 0xb706b71d
movups xmmword [0x180009270], xmm0
mov dword [rbp - 0x4c], 0xb710b707
mov dword [rbp - 0x48], 0xb702b734
mov dword [rbp - 0x44], 0xb70db70c
mov dword [rbp - 0x40], 0xb715b715
mov word [rbp - 0x3c], ax
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rbp + rcx*2 - 0x5c], ax
cmp edx, 0x10
jb 0x1800053a6
mov ecx, ebx
mov word [rbp - 0x3c], bx
cmp word [rbp - 0x5c], bx
je 0x1800053d9
lea rax, [rbp - 0x5c]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x1800053cc
inc ecx
mov dword [rbp + 0x78], ecx
lea rax, [rbp - 0x5c]
mov dword [rbp + 0x7c], ecx
lea rdx, [rbp + 0x70]
test ecx, ecx
lea rcx, [rbp + 0x2f8]
cmove rax, rbx
mov qword [rbp + 0x70], rax
movaps xmm0, xmmword [rbp + 0x70]
movdqa xmmword [rbp + 0x70], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rsp + 0x40], 0xb703b725
movups xmmword [rbp + 0x118], xmm0
mov dword [rsp + 0x44], 0xb70ab71d
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x128], rax
movups xmm1, xmmword [rbp + 0x120]
mov qword [rbp + 0x110], rcx
movups xmm0, xmmword [rbp + 0x110]
mov dword [rsp + 0x48], 0xb705b702
movups xmmword [0x1800092a0], xmm1
mov word [rsp + 0x4c], ax
movups xmmword [0x180009290], xmm0
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rsp + rcx*2 + 0x40], ax
cmp edx, 6
jb 0x18000545e
mov ecx, ebx
mov word [rsp + 0x4c], bx
cmp word [rsp + 0x40], bx
je 0x180005494
lea rax, [rsp + 0x40]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x180005487
inc ecx
mov dword [rbp + 0x88], ecx
lea rax, [rsp + 0x40]
mov dword [rbp + 0x8c], ecx
lea rdx, [rbp + 0x80]
test ecx, ecx
lea rcx, [rbp + 0x270]
cmove rax, rbx
mov qword [rbp + 0x80], rax
movaps xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x80], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rbp + 0x2e0], 0xb71db739
movups xmmword [rbp + 0x138], xmm0
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x148], rax
movups xmm1, xmmword [rbp + 0x140]
mov qword [rbp + 0x130], rcx
movups xmm0, xmmword [rbp + 0x130]
mov word [rbp + 0x2e4], ax
movups xmmword [0x1800092c0], xmm1
movups xmmword [0x1800092b0], xmm0
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rbp + rcx*2 + 0x2e0], ax
cmp edx, 2
jb 0x180005520
mov ecx, ebx
mov word [rbp + 0x2e4], bx
cmp word [rbp + 0x2e0], bx
je 0x18000555f
lea rax, [rbp + 0x2e0]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x180005552
inc ecx
mov dword [rbp + 0x18], ecx
lea rax, [rbp + 0x2e0]
mov dword [rbp + 0x1c], ecx
lea rdx, [rbp + 0x10]
test ecx, ecx
lea rcx, [rbp + 0x290]
cmove rax, rbx
mov qword [rbp + 0x10], rax
movaps xmm0, xmmword [rbp + 0x10]
movdqa xmmword [rbp + 0x10], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rsp + 0x20], 0xb702b728
movups xmmword [rbp + 0x158], xmm0
mov dword [rsp + 0x24], 0xb701b719
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x168], rax
movups xmm1, xmmword [rbp + 0x160]
mov qword [rbp + 0x150], rcx
movups xmm0, xmmword [rbp + 0x150]
mov word [rsp + 0x28], ax
movups xmmword [0x1800092e0], xmm1
movups xmmword [0x1800092d0], xmm0
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rsp + rcx*2 + 0x20], ax
cmp edx, 4
jb 0x1800055df
mov ecx, ebx
mov word [rsp + 0x28], bx
cmp word [rsp + 0x20], bx
je 0x180005615
lea rax, [rsp + 0x20]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x180005608
inc ecx
mov dword [rbp + 0x98], ecx
lea rax, [rsp + 0x20]
mov dword [rbp + 0x9c], ecx
lea rdx, [rbp + 0x90]
test ecx, ecx
lea rcx, [rbp + 0x288]
cmove rax, rbx
mov qword [rbp + 0x90], rax
movaps xmm0, xmmword [rbp + 0x90]
movdqa xmmword [rbp + 0x90], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rbp + 0x2e8], 0xb70cb738
movups xmmword [rbp + 0x178], xmm0
mov dword [rbp + 0x2ec], 0xb70c
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x188], rax
movups xmm1, xmmword [rbp + 0x180]
mov qword [rbp + 0x170], rcx
movups xmm0, xmmword [rbp + 0x170]
movups xmmword [0x180009300], xmm1
movups xmmword [0x1800092f0], xmm0
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rbp + rcx*2 + 0x2e8], ax
cmp edx, 3
jb 0x1800056a4
mov ecx, ebx
mov word [rbp + 0x2ee], bx
cmp word [rbp + 0x2e8], bx
je 0x1800056e3
lea rax, [rbp + 0x2e8]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x1800056d6
inc ecx
mov dword [rbp + 0xa8], ecx
lea rax, [rbp + 0x2e8]
mov dword [rbp + 0xac], ecx
lea rdx, [rbp + 0xa0]
test ecx, ecx
lea rcx, [rbp + 0x280]
cmove rax, rbx
mov qword [rbp + 0xa0], rax
movaps xmm0, xmmword [rbp + 0xa0]
movdqa xmmword [rbp + 0xa0], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rsp + 0x2a], 0xb708b720
movups xmmword [rbp + 0xd8], xmm0
mov dword [rsp + 0x2e], 0xb71bb708
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0xe8], rax
movups xmm1, xmmword [rbp + 0xe0]
mov qword [rbp + 0xd0], rcx
movups xmm0, xmmword [rbp + 0xd0]
mov word [rsp + 0x32], ax
movups xmmword [0x180009320], xmm1
movups xmmword [0x180009310], xmm0
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rsp + rcx*2 + 0x2a], ax
cmp edx, 4
jb 0x180005775
mov ecx, ebx
mov word [rsp + 0x32], bx
cmp word [rsp + 0x2a], bx
je 0x1800057ab
lea rax, [rsp + 0x2a]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x18000579e
inc ecx
mov dword [rbp + 0xb8], ecx
lea rax, [rsp + 0x2a]
mov dword [rbp + 0xbc], ecx
lea rdx, [rbp + 0xb0]
test ecx, ecx
lea rcx, [rbp + 0x298]
cmove rax, rbx
mov qword [rbp + 0xb0], rax
movaps xmm0, xmmword [rbp + 0xb0]
movdqa xmmword [rbp + 0xb0], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rsp + 0x34], 0xb704b73e
movups xmmword [rbp + 0x198], xmm0
mov dword [rsp + 0x38], 0xb707b709
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x1a8], rax
movups xmm1, xmmword [rbp + 0x1a0]
mov qword [rbp + 0x190], rcx
movups xmm0, xmmword [rbp + 0x190]
mov dword [rsp + 0x3c], 0xb704
movups xmmword [0x180009340], xmm1
movups xmmword [0x180009330], xmm0
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rsp + rcx*2 + 0x34], ax
cmp edx, 5
jb 0x18000583e
mov ecx, ebx
mov word [rsp + 0x3e], bx
cmp word [rsp + 0x34], bx
je 0x180005874
lea rax, [rsp + 0x34]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x180005867
inc ecx
mov dword [rbp + 0xc8], ecx
lea rax, [rsp + 0x34]
mov dword [rbp + 0xcc], ecx
lea rdx, [rbp + 0xc0]
test ecx, ecx
lea rcx, [rbp + 0x250]
cmove rax, rbx
mov qword [rbp + 0xc0], rax
movaps xmm0, xmmword [rbp + 0xc0]
movdqa xmmword [rbp + 0xc0], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rsp + 0x4e], 0xb708b720
movups xmmword [rbp + 0x1b8], xmm0
mov dword [rsp + 0x52], 0xb71bb708
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x1c8], rax
movups xmm1, xmmword [rbp + 0x1c0]
mov qword [rbp + 0x1b0], rcx
movups xmm0, xmmword [rbp + 0x1b0]
mov dword [rsp + 0x56], 0xb719b723
movups xmmword [0x180009360], xmm1
mov dword [rsp + 0x5a], 0xb715b71b
movups xmmword [0x180009350], xmm0
mov dword [rsp + 0x5e], 0xb700
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rsp + rcx*2 + 0x4e], ax
cmp edx, 9
jb 0x180005917
mov ecx, ebx
mov word [rsp + 0x60], bx
cmp word [rsp + 0x4e], bx
je 0x18000594d
lea rax, [rsp + 0x4e]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x180005940
inc ecx
mov dword [rbp + 0x28], ecx
lea rax, [rsp + 0x4e]
mov dword [rbp + 0x2c], ecx
lea rdx, [rbp + 0x20]
test ecx, ecx
lea rcx, [rbp + 0x278]
cmove rax, rbx
mov qword [rbp + 0x20], rax
movaps xmm0, xmmword [rbp + 0x20]
movdqa xmmword [rbp + 0x20], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rbp - 0x3a], 0xb704b721
movups xmmword [rbp + 0x1d8], xmm0
mov dword [rbp - 0x36], 0xb70bb70a
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x1e8], rax
movups xmm1, xmmword [rbp + 0x1e0]
mov qword [rbp + 0x1d0], rcx
movups xmm0, xmmword [rbp + 0x1d0]
mov dword [rbp - 0x32], 0xb714b71c
movups xmmword [0x180009380], xmm1
mov dword [rbp - 0x2e], 0xb71cb73f
movups xmm1, xmmword [0x180009280]
mov dword [rbp - 0x2a], 0xb706b701
movups xmmword [0x180009370], xmm0
mov dword [rbp - 0x26], 0xb735b713
movups xmm0, xmmword [0x180009270]
mov dword [rbp - 0x22], 0xb70db70d
movaps xmmword [0x1800090c0], xmm1
movups xmm1, xmmword [0x1800092a0]
mov dword [rbp - 0x1e], 0xb714b70e
movaps xmmword [0x1800090b0], xmm0
movups xmm0, xmmword [0x180009290]
mov dword [rbp - 0x1a], 0xb712
movaps xmmword [0x1800090e0], xmm1
movaps xmmword [0x1800090d0], xmm0
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rbp + rcx*2 - 0x3a], ax
cmp edx, 0x11
jb 0x180005a2d
mov ecx, ebx
mov word [rbp - 0x18], bx
cmp word [rbp - 0x3a], bx
je 0x180005a60
lea rax, [rbp - 0x3a]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x180005a53
inc ecx
mov dword [rbp + 0x58], ecx
lea rax, [rbp - 0x3a]
mov dword [rbp + 0x5c], ecx
lea rdx, [rbp + 0x50]
test ecx, ecx
lea rcx, [rbp + 0x268]
cmove rax, rbx
mov qword [rbp + 0x50], rax
movaps xmm0, xmmword [rbp + 0x50]
movdqa xmmword [rbp + 0x50], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rbp - 0x7e], 0xb705b738
movups xmmword [rbp + 0x1f8], xmm0
mov dword [rbp - 0x7a], 0xb702b71b
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x208], rax
movups xmm1, xmmword [rbp + 0x200]
mov qword [rbp + 0x1f0], rcx
movups xmm0, xmmword [rbp + 0x1f0]
mov dword [rbp - 0x76], 0xb73cb712
movaps xmmword [0x180009100], xmm1
movaps xmmword [0x1800090f0], xmm0
mov dword [rbp - 0x72], 0xb706b71d
mov dword [rbp - 0x6e], 0xb710b707
mov dword [rbp - 0x6a], 0xb702b734
mov dword [rbp - 0x66], 0xb70db70c
mov dword [rbp - 0x62], 0xb715b715
mov word [rbp - 0x5e], ax
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rbp + rcx*2 - 0x7e], ax
cmp edx, 0x10
jb 0x180005b04
mov ecx, ebx
mov word [rbp - 0x5e], bx
cmp word [rbp - 0x7e], bx
je 0x180005b37
lea rax, [rbp - 0x7e]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x180005b2a
inc ecx
mov dword [rbp + 0x48], ecx
lea rax, [rbp - 0x7e]
mov dword [rbp + 0x4c], ecx
lea rdx, [rbp + 0x40]
test ecx, ecx
lea rcx, [rbp + 0x260]
cmove rax, rbx
mov qword [rbp + 0x40], rax
movaps xmm0, xmmword [rbp + 0x40]
movdqa xmmword [rbp + 0x40], xmm0
call fcn.18000106c
xorps xmm0, xmm0
mov dword [rbp - 0x16], 0xb705b738
movups xmmword [rbp + 0x238], xmm0
mov dword [rbp - 0x12], 0xb702b71b
mov edx, ebx
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x248], rax
movups xmm1, xmmword [rbp + 0x240]
mov qword [rbp + 0x230], rcx
movups xmm0, xmmword [rbp + 0x230]
mov dword [rbp - 0xe], 0xb73cb712
movaps xmmword [0x180009120], xmm1
movaps xmmword [0x180009110], xmm0
mov dword [rbp - 0xa], 0xb706b71d
mov dword [rbp - 6], 0xb710b707
mov dword [rbp - 2], 0xb702b734
mov dword [rbp + 2], 0xb70db70c
mov dword [rbp + 6], 0xb715b715
mov dword [rbp + 0xa], 0xb74e
movsxd rcx, edx
movzx eax, dx
sub ax, r15w
add edx, esi
xor word [rbp + rcx*2 - 0x16], ax
cmp edx, 0x11
jb 0x180005bde
mov ecx, ebx
mov word [rbp + 0xc], bx
cmp word [rbp - 0x16], bx
je 0x180005c11
lea rax, [rbp - 0x16]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x180005c04
inc ecx
mov dword [rbp + 0x38], ecx
lea rax, [rbp - 0x16]
mov dword [rbp + 0x3c], ecx
lea rdx, [rbp + 0x30]
test ecx, ecx
lea rcx, [rbp + 0x258]
cmove rax, rbx
mov qword [rbp + 0x30], rax
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rbp + 0x30], xmm0
call fcn.18000106c
xorps xmm0, xmm0
movups xmmword [rbp + 0x218], xmm0
mov rcx, qword [rax]
xor eax, eax
mov qword [rbp + 0x210], rcx
lea rcx, [0x180005cac]
movups xmm0, xmmword [rbp + 0x210]
mov qword [rbp + 0x228], rax
movups xmm1, xmmword [rbp + 0x220]
movaps xmmword [0x180009130], xmm0
movaps xmmword [0x180009140], xmm1
call fcn.1800041dc
mov rdx, rax
lea r9, [0x180009048]
mov r8d, 0x6b
mov rcx, rdi
add rsp, 0x3a0
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
jmp 0x180006ab4
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rdi, qword [rcx]
xor eax, eax
xor ebx, ebx
movsxd r15, r8d
mov r14, r9
mov rbp, rdx
mov rsi, rcx
inc rbx
inc eax
cmp qword [rdi + rbx*8], 0
jne 0x180006adf
movsxd rcx, eax
mov eax, 8
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.180001064
mov rdx, rax
test rbx, rbx
jle 0x180006b39
lea r9, [rdi + r15*8]
mov rcx, rax
sub rdi, rax
mov rax, qword [rdi + rcx]
mov qword [rcx], rax
lea rcx, [rcx + 8]
mov rax, qword [r9]
mov qword [r14], rax
mov qword [rdx + r15*8], rbp
mov qword [rsi], rdx
sub rbx, 1
jne 0x180006b1b
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret