Function at 0x18000a930
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x818]
sub rsp, 0x8e0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
mov rax, qword [0x180168908]
xor rax, rsp
mov qword [rbp + 0x740], rax
movsd xmm0, qword [rcx]
mov rbx, rdx
mov eax, dword [rcx + 8]
lea rdx, [rbp + 0x170]
lea rcx, [rsp + 0x20]
movsd qword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r9
movzx r12d, r8b
mov dword [rsp + 0x28], eax
call fcn.18000a800
movsd xmm0, qword [rbx]
lea rdx, [rbp + 0x120]
mov eax, dword [rbx + 8]
lea rcx, [rsp + 0x20]
movsd qword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], eax
call fcn.18000a800
movups xmm0, xmmword [rbp + 0x120]
lea rdx, [rbp + 0x300]
movups xmm1, xmmword [rbp + 0x130]
lea rcx, [rbp + 0x1c0]
mov eax, dword [rbp + 0x160]
movaps xmmword [rbp + 0x1c0], xmm0
movups xmm0, xmmword [rbp + 0x140]
movaps xmmword [rbp + 0x1d0], xmm1
movups xmm1, xmmword [rbp + 0x150]
movaps xmmword [rbp + 0x1e0], xmm0
movaps xmmword [rbp + 0x1f0], xmm1
mov dword [rbp + 0x200], eax
call fcn.18000b6a0
movups xmm0, xmmword [rbp + 0x170]
lea r9, [0x180000000]
movups xmm1, xmmword [rbp + 0x180]
xor ebx, ebx
mov eax, dword [rbp + 0x1b0]
mov edx, ebx
movaps xmmword [rbp + 0x120], xmm0
movups xmm0, xmmword [rbp + 0x190]
movaps xmmword [rbp + 0x130], xmm1
movups xmm1, xmmword [rbp + 0x1a0]
movaps xmmword [rbp + 0x140], xmm0
movaps xmmword [rbp + 0x150], xmm1
mov dword [rbp + 0x160], eax
nop dword [rax]
nop word [rax + rax]
movsxd rax, dword [r9 + rdx*4 + 0x167050]
movzx ecx, byte [rbp + rax + 0x11f]
mov byte [rbp + rdx + 0x30], cl
inc rdx
cmp rdx, 0x40
jl 0x18000aaa0
movzx eax, byte [rbp + 0x30]
mov byte [rbp + 0x80], al
movzx eax, byte [rbp + 0x50]
mov byte [rbp + 0xd0], al
movzx eax, byte [rbp + 0x31]
mov byte [rbp + 0x81], al
movzx eax, byte [rbp + 0x51]
mov byte [rbp + 0xd1], al
movzx eax, byte [rbp + 0x32]
mov byte [rbp + 0x82], al
movzx eax, byte [rbp + 0x52]
mov byte [rbp + 0xd2], al
movzx eax, byte [rbp + 0x33]
mov byte [rbp + 0x83], al
movzx eax, byte [rbp + 0x53]
mov byte [rbp + 0xd3], al
movzx eax, byte [rbp + 0x34]
mov byte [rbp + 0x84], al
movzx eax, byte [rbp + 0x54]
mov byte [rbp + 0xd4], al
movzx eax, byte [rbp + 0x35]
mov byte [rbp + 0x85], al
movzx eax, byte [rbp + 0x55]
mov byte [rbp + 0xd5], al
movzx eax, byte [rbp + 0x36]
mov byte [rbp + 0x86], al
movzx eax, byte [rbp + 0x56]
mov byte [rbp + 0xd6], al
movzx eax, byte [rbp + 0x37]
mov byte [rbp + 0x87], al
movzx eax, byte [rbp + 0x57]
mov byte [rbp + 0xd7], al
movzx eax, byte [rbp + 0x38]
mov byte [rbp + 0x88], al
movzx eax, byte [rbp + 0x58]
mov byte [rbp + 0xd8], al
movzx eax, byte [rbp + 0x39]
mov byte [rbp + 0x89], al
movzx eax, byte [rbp + 0x59]
mov byte [rbp + 0xd9], al
movzx eax, byte [rbp + 0x3a]
mov byte [rbp + 0x8a], al
movzx eax, byte [rbp + 0x5a]
mov byte [rbp + 0xda], al
movzx eax, byte [rbp + 0x3b]
mov byte [rbp + 0x8b], al
movzx eax, byte [rbp + 0x5b]
mov byte [rbp + 0xdb], al
movzx eax, byte [rbp + 0x3c]
mov byte [rbp + 0x8c], al
movzx eax, byte [rbp + 0x5c]
mov byte [rbp + 0xdc], al
movzx eax, byte [rbp + 0x3d]
mov byte [rbp + 0x8d], al
movzx eax, byte [rbp + 0x5d]
mov byte [rbp + 0xdd], al
movzx eax, byte [rbp + 0x3e]
mov byte [rbp + 0x8e], al
movzx eax, byte [rbp + 0x5e]
mov byte [rbp + 0xde], al
movzx eax, byte [rbp + 0x3f]
mov byte [rbp + 0x8f], al
movzx eax, byte [rbp + 0x5f]
mov byte [rbp + 0xdf], al
movzx eax, byte [rbp + 0x40]
mov byte [rbp + 0x90], al
movzx eax, byte [rbp + 0x60]
mov byte [rbp + 0xe0], al
movzx eax, byte [rbp + 0x41]
mov byte [rbp + 0x91], al
movzx eax, byte [rbp + 0x61]
mov byte [rbp + 0xe1], al
movzx eax, byte [rbp + 0x42]
mov byte [rbp + 0x92], al
movzx eax, byte [rbp + 0x62]
mov byte [rbp + 0xe2], al
movzx eax, byte [rbp + 0x43]
mov byte [rbp + 0x93], al
movzx eax, byte [rbp + 0x63]
mov byte [rbp + 0xe3], al
movzx eax, byte [rbp + 0x44]
mov edx, dword [rbp + 0x110]
mov r15d, 0x20
movups xmm3, xmmword [rbp + 0x100]
mov rdi, rbx
movups xmm4, xmmword [rbp + 0xf0]
movups xmm6, xmmword [rbp + 0xd0]
movups xmm11, xmmword [rbp + 0xb0]
lea r14d, [r15 - 0x10]
movups xmm12, xmmword [rbp + 0xa0]
movups xmm14, xmmword [rbp + 0x80]
mov byte [rbp + 0x94], al
movzx eax, byte [rbp + 0x64]
mov byte [rbp + 0xe4], al
movzx eax, byte [rbp + 0x45]
mov byte [rbp + 0x95], al
movzx eax, byte [rbp + 0x65]
mov byte [rbp + 0xe5], al
movzx eax, byte [rbp + 0x46]
mov byte [rbp + 0x96], al
movzx eax, byte [rbp + 0x66]
mov byte [rbp + 0xe6], al
movzx eax, byte [rbp + 0x47]
mov byte [rbp + 0x97], al
movzx eax, byte [rbp + 0x67]
mov byte [rbp + 0xe7], al
movzx eax, byte [rbp + 0x48]
mov byte [rbp + 0x98], al
movzx eax, byte [rbp + 0x68]
mov byte [rbp + 0xe8], al
movzx eax, byte [rbp + 0x49]
mov byte [rbp + 0x99], al
movzx eax, byte [rbp + 0x69]
mov byte [rbp + 0xe9], al
movzx eax, byte [rbp + 0x4a]
mov byte [rbp + 0x9a], al
movzx eax, byte [rbp + 0x6a]
mov byte [rbp + 0xea], al
movzx eax, byte [rbp + 0x4b]
mov byte [rbp + 0x9b], al
movzx eax, byte [rbp + 0x6b]
mov byte [rbp + 0xeb], al
movzx eax, byte [rbp + 0x4c]
mov byte [rbp + 0x9c], al
movzx eax, byte [rbp + 0x6c]
mov byte [rbp + 0xec], al
movzx eax, byte [rbp + 0x4d]
mov byte [rbp + 0x9d], al
movzx eax, byte [rbp + 0x6d]
mov byte [rbp + 0xed], al
movzx eax, byte [rbp + 0x4e]
mov byte [rbp + 0x9e], al
movzx eax, byte [rbp + 0x6e]
mov byte [rbp + 0xee], al
movzx eax, byte [rbp + 0x4f]
mov byte [rbp + 0x9f], al
movzx eax, byte [rbp + 0x6f]
movups xmm13, xmmword [rbp + 0x90]
mov byte [rbp + 0xef], al
movups xmm5, xmmword [rbp + 0xe0]
nop dword [rax]
mov ecx, reloc.WS2_32.dll_ntohs
mov dword [rbp + 0x250], edx
sub rcx, rdi
movaps xmmword [rbp + 0x210], xmm6
test r12b, r12b
movaps xmmword [rbp + 0x220], xmm5
mov rax, rdi
movaps xmmword [rbp + 0x230], xmm4
cmove rax, rcx
movaps xmmword [rbp + 0x240], xmm3
imul rax, rax, 0x44
movaps xmm7, xmm14
movaps xmm8, xmm13
movaps xmm9, xmm12
movaps xmm10, xmm11
movaps xmm14, xmm6
movaps xmm13, xmm5
movaps xmm12, xmm4
movaps xmm11, xmm3
mov esi, r15d
mov dword [rbp + 0x200], 0x30
lea r8, [rbp + 0x300]
mov r15d, edx
add r8, rax
mov rdx, rbx
nop word [rax + rax]
movsxd rax, dword [r9 + rdx*4 + 0x167250]
movzx ecx, byte [rbp + rax + 0x20f]
mov byte [rbp + rdx + 0x1c0], cl
inc rdx
cmp rdx, 0x30
jl 0x18000ae10
movups xmm0, xmmword [r8]
mov eax, dword [rbp + 0x200]
mov r9d, ebx
movups xmm1, xmmword [r8 + 0x10]
mov rcx, rbx
mov dword [rbp + 0xc0], eax
movaps xmmword [rbp - 0x20], xmm0
movups xmm0, xmmword [r8 + 0x20]
movaps xmmword [rbp - 0x10], xmm1
movups xmm1, xmmword [r8 + 0x30]
mov r8d, dword [r8 + 0x40]
movaps xmmword [rbp], xmm0
movups xmm0, xmmword [rbp + 0x1c0]
movaps xmmword [rbp + 0x10], xmm1
movups xmm1, xmmword [rbp + 0x1d0]
movaps xmmword [rbp + 0x80], xmm0
movups xmm0, xmmword [rbp + 0x1e0]
movaps xmmword [rbp + 0x90], xmm1
movups xmm1, xmmword [rbp + 0x1f0]
movaps xmmword [rbp + 0xa0], xmm0
movaps xmmword [rbp + 0xb0], xmm1
mov dword [rbp + 0x20], r8d
mov dword [rbp + 0x2a0], r8d
test r8d, r8d
jle 0x18000afa6
cmp r8d, 0x40
jb 0x18000af5d
mov edx, r8d
and edx, 0x8000003f
jge 0x18000aed1
dec edx
or edx, 0xffffffc0
inc edx
mov eax, r8d
sub eax, edx
movsxd rdx, eax
nop dword [rax]
movdqu xmm0, xmmword [rbp + rcx + 0x80]
add r9d, 0x40
movdqu xmm1, xmmword [rbp + rcx - 0x20]
movdqu xmm2, xmmword [rbp + rcx + 0x90]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + rcx - 0x10]
movdqu xmmword [rbp + rcx + 0x260], xmm1
movdqu xmm1, xmmword [rbp + rcx + 0xa0]
pxor xmm2, xmm0
movdqu xmm0, xmmword [rbp + rcx]
movdqu xmmword [rbp + rcx + 0x270], xmm2
movdqu xmm2, xmmword [rbp + rcx + 0xb0]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + rcx + 0x10]
movdqu xmmword [rbp + rcx + 0x280], xmm1
pxor xmm2, xmm0
movdqu xmmword [rbp + rcx + 0x290], xmm2
add rcx, 0x40
cmp rcx, rdx
jl 0x18000aee0
cmp r9d, r8d
jge 0x18000afa6
lea rax, [rbp + 0x80]
lea r10, [rbp - 0x20]
sub r10, rax
lea rdx, [rbp + 0x80]
add rdx, rcx
lea rax, [rbp + 0x80]
lea r11, [rbp + 0x260]
sub r11, rax
sub r8d, r9d
mov ecx, r8d
movzx eax, byte [r10 + rdx]
xor al, byte [rdx]
mov byte [r11 + rdx], al
lea rdx, [rdx + 1]
sub rcx, 1
jne 0x18000af91
movups xmm0, xmmword [rbp + 0x260]
lea r9, [rsp + 0x40]
movups xmm1, xmmword [rbp + 0x270]
lea r10, [rbp + 0x2b1]
mov eax, dword [rbp + 0x2a0]
lea r13, [0x180000000]
movaps xmmword [rsp + 0x40], xmm0
mov r11, rbx
movups xmm0, xmmword [rbp + 0x280]
movaps xmmword [rsp + 0x50], xmm1
movups xmm1, xmmword [rbp + 0x290]
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm1
mov dword [rbp - 0x80], eax
nop word [rax + rax]
movzx eax, byte [r9 + 5]
lea r10, [r10 + 4]
neg al
movzx eax, byte [r9 + 1]
lea r9, [r9 + 6]
sbb r8, r8
and r8d, 0x10
neg al
movzx eax, byte [r9 - 4]
sbb rcx, rcx
and ecx, 8
add r8, rcx
neg al
mov rax, rbx
sbb rcx, rcx
and ecx, 4
add r8, rcx
cmp byte [r9 - 2], al
setne al
add r8, rax
movzx eax, byte [r9 - 3]
neg al
movzx eax, byte [r9 - 6]
sbb rdx, rdx
and edx, 2
add rdx, r11
neg al
sbb rcx, rcx
add rdx, r8
and ecx, 0x20
add r11, 0x40
add rcx, rdx
mov eax, dword [r13 + rcx*4 + 0x167390]
movzx ecx, al
cdq
and cl, 1
sub eax, edx
mov byte [r10 - 2], cl
sar eax, 1
movzx ecx, al
cdq
sub eax, edx
and cl, 1
sar eax, 1
mov byte [r10 - 3], cl
movzx ecx, al
cdq
and cl, 1
sub eax, edx
mov byte [r10 - 4], cl
sar eax, 1
and al, 1
mov byte [r10 - 5], al
cmp r11, 0x200
jl 0x18000b000
movups xmm0, xmmword [rbp + 0x2b0]
mov rdx, rbx
movups xmm1, xmmword [rbp + 0x2c0]
movaps xmmword [rbp - 0x70], xmm0
movups xmm0, xmmword [rbp + 0x2d0]
movaps xmmword [rbp - 0x60], xmm1
movups xmm1, xmmword [rbp + 0x2e0]
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x40], xmm1
mov dword [rbp - 0x30], 0x20
mov dword [rbp + 0x160], 0x20
movsxd rax, dword [r13 + rdx*4 + 0x167310]
movzx ecx, byte [rbp + rax - 0x71]
mov byte [rbp + rdx + 0x120], cl
inc rdx
cmp rdx, 0x20
jl 0x18000b0f2
mov r8d, dword [rbp + 0x160]
mov r9d, ebx
movups xmm0, xmmword [rbp + 0x120]
mov edx, r8d
movups xmm1, xmmword [rbp + 0x130]
mov rax, rbx
movaps xmmword [rbp + 0x170], xmm0
movups xmm0, xmmword [rbp + 0x140]
movaps xmmword [rbp + 0x180], xmm1
movups xmm1, xmmword [rbp + 0x150]
movaps xmmword [rbp + 0x190], xmm0
movaps xmmword [rbp + 0x1a0], xmm1
mov dword [rbp + 0x1b0], r8d
movaps xmmword [rbp + 0x30], xmm7
movaps xmmword [rbp + 0x40], xmm8
movaps xmmword [rbp + 0x50], xmm9
movaps xmmword [rbp + 0x60], xmm10
mov dword [rbp + 0x70], esi
mov dword [rbp + 0x110], edx
test r8d, r8d
jle 0x18000b2a8
cmp r8d, 0x40
jb 0x18000b243
and edx, 0x8000003f
jge 0x18000b19c
dec edx
or edx, 0xffffffc0
inc edx
mov ecx, r8d
sub ecx, edx
movsxd rdx, ecx
movdqu xmm0, xmmword [rbp + rax + 0x30]
add r9d, 0x40
movdqu xmm1, xmmword [rbp + rax + 0x170]
movdqu xmm2, xmmword [rbp + rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax + 0x180]
movdqu xmmword [rbp + rax + 0xd0], xmm1
movdqu xmm1, xmmword [rbp + rax + 0x50]
pxor xmm2, xmm0
movdqu xmm0, xmmword [rbp + rax + 0x190]
movdqu xmmword [rbp + rax + 0xe0], xmm2
movdqu xmm2, xmmword [rbp + rax + 0x60]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax + 0x1a0]
movdqu xmmword [rbp + rax + 0xf0], xmm1
pxor xmm2, xmm0
movdqu xmmword [rbp + rax + 0x100], xmm2
add rax, 0x40
cmp rax, rdx
jl 0x18000b1a4
mov edx, dword [rbp + 0x110]
movups xmm3, xmmword [rbp + 0x100]
movups xmm4, xmmword [rbp + 0xf0]
movups xmm5, xmmword [rbp + 0xe0]
movups xmm6, xmmword [rbp + 0xd0]
cmp r9d, r8d
jge 0x18000b2a8
lea rcx, [rbp + 0x30]
add rcx, rax
lea r10, [rbp + 0x170]
lea rax, [rbp + 0x30]
sub r10, rax
lea r11, [rbp + 0xd0]
lea rax, [rbp + 0x30]
sub r11, rax
sub r8d, r9d
mov edx, r8d
movzx eax, byte [r10 + rcx]
xor al, byte [rcx]
mov byte [r11 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x18000b271
mov edx, dword [rbp + 0x110]
movups xmm3, xmmword [rbp + 0x100]
movups xmm4, xmmword [rbp + 0xf0]
movups xmm5, xmmword [rbp + 0xe0]
movups xmm6, xmmword [rbp + 0xd0]
inc rdi
lea r9, [0x180000000]
sub r14, 1
jne 0x18000ad90
mov dword [rbp - 0x80], edx
lea r8, [rbp + 0x210]
lea rdx, [rbp - 0x70]
movaps xmmword [rbp - 0x70], xmm14
lea rcx, [rsp + 0x40]
movaps xmmword [rbp - 0x60], xmm13
movaps xmmword [rbp - 0x50], xmm12
movaps xmmword [rbp - 0x40], xmm11
mov dword [rbp - 0x30], r15d
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x50], xmm5
movaps xmmword [rsp + 0x60], xmm4
movaps xmmword [rsp + 0x70], xmm3
call fcn.18000b450
movups xmm0, xmmword [rbp + 0x210]
movups xmm1, xmmword [rbp + 0x220]
mov r9d, dword [rbp + 0x250]
mov r13, qword [rsp + 0x30]
movaps xmmword [rbp + 0x80], xmm0
movups xmm0, xmmword [rbp + 0x230]
movaps xmmword [rbp + 0x90], xmm1
movups xmm1, xmmword [rbp + 0x240]
movaps xmmword [rbp + 0xa0], xmm0
movaps xmmword [rbp + 0xb0], xmm1
mov dword [rbp + 0xc0], r9d
nop dword [rax + rax]
movzx eax, byte [rbp + rbx*8 + 0x80]
neg al
sbb ecx, ecx
and ecx, 0x80
cmp byte [rbp + rbx*8 + 0x81], 0
lea eax, [rcx + 0x40]
cmove eax, ecx
cmp byte [rbp + rbx*8 + 0x82], 0
lea ecx, [rax + 0x20]
cmove ecx, eax
cmp byte [rbp + rbx*8 + 0x83], 0
lea eax, [rcx + 0x10]
cmove eax, ecx
cmp byte [rbp + rbx*8 + 0x84], 0
lea ecx, [rax + 8]
cmove ecx, eax
cmp byte [rbp + rbx*8 + 0x85], 0
lea eax, [rcx + 4]
cmove eax, ecx
cmp byte [rbp + rbx*8 + 0x86], 0
lea r8d, [rax + 2]
cmove r8d, eax
cmp byte [rbp + rbx*8 + 0x87], 0
lea ecx, [r8 + 1]
movzx edx, cl
movzx ecx, r8b
cmove edx, ecx
mov byte [rbx + r13], dl
inc rbx
cmp rbx, 8
jl 0x18000b350
mov eax, r9d
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [r13 + 8], eax
mov rcx, qword [rbp + 0x740]
xor rcx, rsp
call fcn.1800a5130
lea r11, [rsp + 0x8e0]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret