Function at 0x18001f3f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xe0
mov rax, qword [0x18007f060]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rdi, rcx
xor r9d, r9d
lea r8, [rsp + 0x24]
lea rdx, [rsp + 0x20]
call fcn.180021930
test al, al
je 0x18001ff17
cmp dword [rsp + 0x24], 0
jne 0x18001f44d
mov al, 1
jmp 0x18001ff19
movzx eax, word [rdi + 0x270]
mov ecx, 0x10b
mov r11d, 0x20b
cmp ax, cx
jne 0x18001f471
mov rdx, qword [rdi + 0xd0]
mov qword [rbp - 0x69], rdx
jmp 0x18001f486
cmp ax, r11w
jne 0x18001ff17
mov rax, qword [rdi + 0x1c0]
mov qword [rbp - 0x69], rax
mov rax, qword [rdi]
mov rcx, qword [rax]
test rcx, rcx
je 0x18001ff17
mov edx, dword [rax + 0x10]
mov r8d, dword [rsp + 0x20]
lea rax, [r8 + 1]
cmp rax, rdx
jae 0x18001ff17
mov eax, dword [r8 + rcx]
mov dword [rbp - 0x19], eax
lea eax, [r8 + 4]
mov r9d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
mov eax, dword [rcx + r9]
mov dword [rbp - 0x15], eax
lea eax, [r8 + 8]
mov r9d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
movzx eax, word [rcx + r9]
mov word [rbp - 0x11], ax
lea eax, [r8 + 0xa]
mov r9d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
movzx eax, word [rcx + r9]
mov word [rbp - 0xf], ax
lea eax, [r8 + 0xc]
mov r9d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
mov r13d, dword [rcx + r9]
mov dword [rbp - 0x79], r13d
mov dword [rbp - 0xd], r13d
lea eax, [r8 + 0x10]
mov r9d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
mov eax, dword [rcx + r9]
mov dword [rbp - 9], eax
lea eax, [r8 + 0x14]
mov r9d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
mov eax, dword [rcx + r9]
mov dword [rbp - 5], eax
lea eax, [r8 + 0x18]
mov r9d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
mov r14d, dword [rcx + r9]
mov dword [rsp + 0x20], r14d
mov dword [rbp - 1], r14d
lea eax, [r8 + 0x1c]
mov r9d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
mov esi, dword [rcx + r9]
mov dword [rbp + 3], esi
lea eax, [r8 + 0x20]
mov r9d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
mov r15d, dword [rcx + r9]
mov dword [rsp + 0x24], r15d
mov dword [rbp + 7], r15d
lea eax, [r8 + 0x24]
mov r8d, eax
inc rax
cmp rax, rdx
jae 0x18001ff17
mov r12d, dword [rcx + r8]
mov dword [rbp - 0x7d], r12d
mov dword [rbp + 0xb], r12d
lea rdx, [rbp - 0x19]
mov rcx, rdi
call fcn.180027f90
test al, al
je 0x18001ff17
xor ebx, ebx
mov qword [rbp + 0xf], rbx
mov qword [rbp + 0x1f], rbx
mov qword [rbp + 0x27], 0xf
mov byte [rbp + 0xf], bl
lea r8, [rbp + 0xf]
lea rdx, [rbp - 0xd]
mov rcx, rdi
call fcn.180021c10
test al, al
je 0x18001fe41
cmp qword [rbp + 0x1f], rbx
je 0x18001fe41
test r14d, r14d
jne 0x18001f626
mov bl, 1
jmp 0x18001fedb
movzx r9d, word [rdi + 0x270]
mov eax, 0x10b
mov r13d, 0x20b
cmp r9w, ax
jne 0x18001f64b
mov r10d, dword [rdi + 0x8c]
add r10d, r15d
jmp 0x18001f65f
cmp r9w, r13w
jne 0x18001fdd1
mov r10, r15
add r10, qword [rdi + 0x168]
mov r8, qword [rdi + 0x240]
mov rdx, r8
mov r11, qword [rdi + 0x248]
cmp r8, r11
je 0x18001fdd1
nop dword [rax]
movups xmm0, xmmword [rdx]
movups xmmword [rbp - 0x19], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rbp - 9], xmm1
movsd xmm0, qword [rdx + 0x20]
movsd qword [rbp + 7], xmm0
cmp r9w, ax
jne 0x18001f6af
mov rcx, qword [rbp - 0x11]
shr rcx, 0x20
add ecx, dword [rdi + 0x8c]
jmp 0x18001f6c8
cmp r9w, r13w
jne 0x18001fdd1
mov rcx, qword [rbp - 0x11]
shr rcx, 0x20
add rcx, qword [rdi + 0x168]
mov eax, dword [rbp - 0x11]
add rax, rcx
cmp r10, rcx
jb 0x18001f6d8
cmp r10, rax
jb 0x18001f6ec
add rdx, 0x28
cmp rdx, r11
je 0x18001fdd1
mov eax, 0x10b
jmp 0x18001f680
movups xmm0, xmmword [rdx]
movups xmmword [rbp - 0x49], xmm0
mov r14, qword [rdx + 0x10]
shr r14, 0x20
sub r14d, ecx
add r14d, r10d
mov qword [rbp - 0x71], r14
je 0x18001fdd1
mov r15d, 0x10b
cmp r9w, r15w
jne 0x18001f721
mov edx, dword [rdi + 0x8c]
add edx, esi
jmp 0x18001f731
cmp r9w, r13w
jne 0x18001f791
mov rdx, rsi
add rdx, qword [rdi + 0x168]
movups xmm0, xmmword [r8]
movups xmmword [rbp - 0x19], xmm0
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [rbp - 9], xmm1
movsd xmm0, qword [r8 + 0x20]
movsd qword [rbp + 7], xmm0
cmp r9w, r15w
jne 0x18001f763
mov rcx, qword [rbp - 0x11]
shr rcx, 0x20
add ecx, dword [rdi + 0x8c]
jmp 0x18001f778
cmp r9w, r13w
jne 0x18001f791
mov rcx, qword [rbp - 0x11]
shr rcx, 0x20
add rcx, qword [rdi + 0x168]
mov eax, dword [rbp - 0x11]
add rax, rcx
cmp rdx, rcx
jb 0x18001f788
cmp rdx, rax
jb 0x18001f7a6
add r8, 0x28
cmp r8, r11
jne 0x18001f731
test esi, esi
je 0x18001fd76
xorps xmm0, xmm0
cvtsi2ss xmm0, rsi
jmp 0x18001fd7e
movups xmm0, xmmword [r8]
movups xmmword [rbp - 0x49], xmm0
mov rax, qword [r8 + 0x10]
shr rax, 0x20
sub eax, ecx
add eax, edx
mov qword [rbp - 0x21], rax
je 0x18001f791
cmp r9w, r15w
jne 0x18001f7d2
mov r8d, dword [rdi + 0x8c]
add r8d, r12d
jmp 0x18001f7e6
cmp r9w, r13w
jne 0x18001fcd3
mov r8, r12
add r8, qword [rdi + 0x168]
mov rdx, qword [rdi + 0x240]
cmp rdx, r11
je 0x18001fcd3
movups xmm0, xmmword [rdx]
movups xmmword [rbp - 0x19], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rbp - 9], xmm1
movsd xmm0, qword [rdx + 0x20]
movsd qword [rbp + 7], xmm0
cmp r9w, r15w
jne 0x18001f825
mov rcx, qword [rbp - 0x11]
shr rcx, 0x20
add ecx, dword [rdi + 0x8c]
jmp 0x18001f83e
cmp r9w, r13w
jne 0x18001fcd3
mov rcx, qword [rbp - 0x11]
shr rcx, 0x20
add rcx, qword [rdi + 0x168]
mov eax, dword [rbp - 0x11]
add rax, rcx
cmp r8, rcx
jb 0x18001f84e
cmp r8, rax
jb 0x18001f854
add rdx, 0x28
jmp 0x18001f7ed
movups xmm0, xmmword [rdx]
movups xmmword [rbp - 0x49], xmm0
mov r15, qword [rdx + 0x10]
shr r15, 0x20
sub r15d, ecx
add r15d, r8d
je 0x18001fcd3
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x61], xmm0
mov r13, rbx
mov qword [rbp - 0x51], rbx
mov r12d, ebx
cmp dword [rsp + 0x20], ebx
jbe 0x18001f9c0
mov rsi, qword [rbp - 0x59]
nop
mov qword [rbp - 0x19], rbx
mov qword [rbp - 9], rbx
mov qword [rbp - 1], 0xf
mov byte [rbp - 0x19], 0
mov rax, qword [rdi]
mov rdx, qword [rax]
test rdx, rdx
je 0x18001fbee
mov ecx, dword [rax + 0x10]
lea rax, [r14 + 1]
cmp rax, rcx
jae 0x18001fbee
mov r14d, dword [r14 + rdx]
mov dword [rsp + 0x28], r14d
test r14d, r14d
je 0x18001fbee
lea r8, [rbp - 0x19]
lea rdx, [rsp + 0x28]
mov rcx, rdi
call fcn.180021c10
test al, al
je 0x18001fb91
cmp qword [rbp - 9], 0
je 0x18001fb91
mov rax, qword [rdi]
mov rdx, qword [rax]
test rdx, rdx
je 0x18001fa71
mov r8d, dword [rax + 0x10]
lea rax, [r15 + 1]
cmp rax, r8
jae 0x18001fa71
movzx eax, word [r15 + rdx]
mov rcx, qword [rbp - 0x21]
lea ecx, [rcx + rax*4]
lea rax, [rcx + 1]
cmp rax, r8
jae 0x18001fa0d
cmp dword [rcx + rdx], 0
je 0x18001fa0d
cmp rsi, r13
je 0x18001f94e
mov dword [rsi], r14d
add rsi, 4
mov qword [rbp - 0x59], rsi
jmp 0x18001f967
lea r8, [rsp + 0x28]
mov rdx, rsi
lea rcx, [rbp - 0x61]
call fcn.180008880
mov r13, qword [rbp - 0x51]
mov rsi, qword [rbp - 0x59]
mov r14, qword [rbp - 0x71]
add r14d, 4
mov qword [rbp - 0x71], r14
add r15d, 2
mov rdx, qword [rbp - 1]
cmp rdx, 0x10
jb 0x18001f9b2
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001f9ad
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001ff52
call fcn.180034ec0
inc r12d
cmp r12d, dword [rsp + 0x20]
jb 0x18001f890
mov bl, 1
mov rcx, qword [rbp - 0x61]
test rcx, rcx
je 0x18001fedb
sub r13, rcx
sar r13, 2
lea rdx, [r13*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001fa03
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001ff4c
call fcn.180034ec0
jmp 0x18001fedb
mov eax, dword [rbp - 0x7d]
test eax, eax
je 0x18001fa1e
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x18001fa26
movss xmm0, dword [0x180074be8]
lea r8, [0x180080de8]
cmp qword [0x180080e00], 0x10
cmovae r8, qword [0x180080de8]
mov rdx, rbx
mov r9, qword [0x180080df8]
test r9, r9
je 0x18001fc4c
movzx ecx, byte [rdx + r8]
add ecx, ebx
imul ebx, ecx, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
inc rdx
cmp rdx, r9
jne 0x18001fa50
jmp 0x18001fc4c
movzx r9d, word [rdi + 0x270]
mov eax, 0x10b
mov r11d, 0x20b
cmp r9w, ax
jne 0x18001fa98
mov r8d, dword [rdi + 0x8c]
add r8d, dword [rsp + 0x24]
jmp 0x18001faae
cmp r9w, r11w
jne 0x18001fc91
mov r8d, dword [rsp + 0x24]
add r8, qword [rdi + 0x168]
mov rdx, qword [rdi + 0x240]
mov r10, qword [rdi + 0x248]
cmp rdx, r10
je 0x18001fc91
nop word [rax + rax]
movups xmm0, xmmword [rdx]
movups xmmword [rbp - 0x49], xmm0
cmp r9w, ax
jne 0x18001faed
mov rcx, qword [rbp - 0x41]
shr rcx, 0x20
add ecx, dword [rdi + 0x8c]
jmp 0x18001fb06
cmp r9w, r11w
jne 0x18001fc91
mov rcx, qword [rbp - 0x41]
shr rcx, 0x20
add rcx, qword [rdi + 0x168]
mov eax, dword [rbp - 0x41]
add rax, rcx
cmp r8, rcx
jb 0x18001fb16
cmp r8, rax
jb 0x18001fb2a
add rdx, 0x28
cmp rdx, r10
je 0x18001fc91
mov eax, 0x10b
jmp 0x18001fad0
sub r8d, ecx
je 0x18001fb3c
mov eax, r8d
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x18001fb44
movss xmm0, dword [0x180074be8]
lea r8, [0x180080ca8]
cmp qword [0x180080cc0], 0x10
cmovae r8, qword [0x180080ca8]
mov rdx, rbx
mov r9, qword [0x180080cb8]
test r9, r9
je 0x18001fc4c
nop
movzx ecx, byte [rdx + r8]
add ecx, ebx
imul ebx, ecx, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
inc rdx
cmp rdx, r9
jne 0x18001fb70
jmp 0x18001fc4c
mov eax, dword [rbp - 0x79]
test eax, eax
je 0x18001fba2
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x18001fbaa
movss xmm0, dword [0x180074be8]
lea r8, [0x180080728]
cmp qword [0x180080740], 0x10
cmovae r8, qword [0x180080728]
mov rdx, rbx
mov r9, qword [0x180080738]
test r9, r9
je 0x18001fc4c
movzx ecx, byte [rdx + r8]
add ecx, ebx
imul ebx, ecx, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
inc rdx
cmp rdx, r9
jne 0x18001fbd0
jmp 0x18001fc4c
mov rax, qword [rbp - 0x69]
test eax, eax
je 0x18001fc02
mov eax, eax
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x18001fc0a
movss xmm0, dword [0x180074be8]
lea r8, [0x180080be8]
cmp qword [0x180080c00], 0x10
cmovae r8, qword [0x180080be8]
mov rdx, rbx
mov r9, qword [0x180080bf8]
test r9, r9
je 0x18001fc4c
movzx ecx, byte [rdx + r8]
add ecx, ebx
imul ebx, ecx, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
inc rdx
cmp rdx, r9
jne 0x18001fc30
lea ecx, [rbx + rbx*8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
mov eax, 0x446f8657
imul r8d, ecx, 0x8001
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub r8d, eax
add r8d, 0x36
mov rax, qword [rdi + 0x278]
addss xmm0, dword [rax + r8*4]
movss dword [rax + r8*4], xmm0
mov rdx, qword [rbp - 1]
cmp rdx, 0x10
jb 0x18001fccc
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001fcc7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001ff52
call fcn.180034ec0
xor bl, bl
jmp 0x18001f9c2
test r12d, r12d
je 0x18001fce2
xorps xmm0, xmm0
cvtsi2ss xmm0, r12
jmp 0x18001fcea
movss xmm0, dword [0x180074be8]
lea r8, [0x1800804e8]
cmp qword [0x180080500], 0x10
cmovae r8, qword [0x1800804e8]
mov rdx, rbx
mov r9, qword [0x1800804f8]
test r9, r9
je 0x18001fd2c
movzx ecx, byte [rdx + r8]
add ecx, ebx
imul ebx, ecx, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
inc rdx
cmp rdx, r9
jne 0x18001fd10
lea ecx, [rbx + rbx*8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
imul r8d, ecx, 0x8001
mov eax, 0x446f8657
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub r8d, eax
add r8d, 0x36
mov rax, qword [rdi + 0x278]
addss xmm0, dword [rax + r8*4]
movss dword [rax + r8*4], xmm0
jmp 0x18001fed9
movss xmm0, dword [0x180074be8]
lea r8, [0x180080b28]
cmp qword [0x180080b40], 0x10
cmovae r8, qword [0x180080b28]
mov rdx, rbx
mov r9, qword [0x180080b38]
test r9, r9
je 0x18001fd2c
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rdx + r8]
add ecx, ebx
imul ebx, ecx, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
inc rdx
cmp rdx, r9
jne 0x18001fdb0
jmp 0x18001fd2c
test r15d, r15d
je 0x18001fde0
xorps xmm0, xmm0
cvtsi2ss xmm0, r15
jmp 0x18001fde8
movss xmm0, dword [0x180074be8]
lea r8, [0x1800809c8]
cmp qword [0x1800809e0], 0x10
cmovae r8, qword [0x1800809c8]
mov rdx, rbx
mov r9, qword [0x1800809d8]
test r9, r9
je 0x18001fd2c
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rdx + r8]
add ecx, ebx
imul ebx, ecx, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
inc rdx
cmp rdx, r9
jne 0x18001fe20
jmp 0x18001fd2c
lea r8, [0x180080d28]
cmp qword [0x180080d40], 0x10
cmovae r8, qword [0x180080d28]
mov rdx, rbx
mov r9, qword [0x180080d38]
test r9, r9
je 0x18001fe8c
nop word [rax + rax]
movzx ecx, byte [rdx + r8]
add ecx, ebx
imul ebx, ecx, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
inc rdx
cmp rdx, r9
jne 0x18001fe70
lea ecx, [rbx + rbx*8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
imul r8d, ecx, 0x8001
mov eax, 0x446f8657
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub r8d, eax
add r8d, 0x36
mov rcx, qword [rdi + 0x278]
xorps xmm0, xmm0
cvtsi2ss xmm0, r13
addss xmm0, dword [rcx + r8*4]
movss dword [rcx + r8*4], xmm0
xor bl, bl
mov rdx, qword [rbp + 0x27]
cmp rdx, 0x10
jb 0x18001ff12
inc rdx
mov rcx, qword [rbp + 0xf]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001ff0d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001ff46
call fcn.180034ec0
movzx eax, bl
jmp 0x18001ff19
xor al, al
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.180034ea0
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.18003b6f4
nop
call fcn.18003b6f4
nop
call fcn.18003b6f4
int3