Function at 0x18002d120
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1c8]
sub rsp, 0x288
mov r10, qword [rsp + 0x58]
mov r11, rcx
mov edi, dword [rbp + 0x1e8]
lea ecx, [r9 + 0x30d]
movaps xmmword [rax - 0x58], xmm6
xor ebx, ebx
movaps xmmword [rax - 0x68], xmm7
mov r15, r8
movaps xmmword [rax - 0x78], xmm8
mov eax, r9d
mov dword [rsp + 0x50], ecx
mov r8, rdx
mov qword [rsp + 0x40], r10
mov r12d, r9d
cmp r9d, ecx
jae 0x18002d595
mov ecx, dword [rbp + 0x1e8]
lea rdx, [0x180008ae0]
movsd xmm6, qword [rbp - 0x70]
xorps xmm8, xmm8
movups xmm7, xmmword [rbp - 0x80]
mov r13, qword [rsp + 0x68]
mov dword [rsp + 0x30], ecx
mov esi, 4
cmp r12d, 0xae
ja 0x18002d2d9
je 0x18002d2a1
mov eax, r12d
sub eax, 0x1f
je 0x18002d258
sub eax, 0x2f
je 0x18002d21c
sub eax, 0x18
je 0x18002d20b
sub eax, 0x2f
je 0x18002d1f7
cmp eax, 0x18
jne 0x18002d54f
mov qword [r10 + 0x20], rdx
jmp 0x18002d54f
test edi, edi
jne case.0x18002d5e4.9
mov rax, qword [r15]
mov r13, qword [rax + 0x58]
jmp 0x18002d54f
test r10, r10
jne 0x18002d54f
mov rax, rbx
jmp 0x18002d7cc
mov rax, qword [r15]
lea rdx, [rsp + 0x48]
mov r8d, 0x125
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x38]
mov dword [rsp + 0x38], 1
call fcn.180020ac0
movaps xmm7, xmmword [0x18014a140]
movaps xmm6, xmm8
unpcklps xmm6, xmm8
mov rdi, rax
jmp 0x18002d53c
mov rax, qword [r15]
mov dword [rsp + 0x30], ebx
test rax, rax
je 0x18002d214
mov rcx, qword [rbp + 0x1f0]
cmp qword [rcx], rbx
je 0x18002d214
cmp qword [r8], rbx
je 0x18002d214
xor r9d, r9d
mov qword [rsp + 0x58], rax
xor r8d, r8d
mov dword [rsp + 0x20], 0xa
lea rdx, [rsp + 0x58]
xor ecx, ecx
call fcn.180027d20
mov r10, rax
mov qword [rsp + 0x40], rax
jmp 0x18002d541
xor edx, edx
lea rcx, [rbp - 0x40]
mov r8d, 0x13d
call fcn.180042a70
mov r8, qword [r15]
lea r9, [rbp - 0x40]
add r8, 8
mov dword [rsp + 0x38], 0x20
lea rdx, [rsp + 0x38]
mov ecx, 0x109
call fcn.1800342c0
jmp 0x18002d53c
mov eax, r12d
sub eax, 0xdc
je 0x18002d513
sub eax, 0x19
je 0x18002d459
sub eax, 0x2e
je 0x18002d445
sub eax, 0x19
je 0x18002d32c
cmp eax, 0x47
jne 0x18002d54f
mov r8, qword [r15]
lea r9, [rsp + 0x38]
add r8, 0x48
mov dword [rsp + 0x38], 0x20
lea edx, [rax + 0x16]
lea rcx, [rbp - 0x60]
call fcn.18007be50
jmp 0x18002d53c
mov r8, qword [r15]
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rbp - 0x60]
mov dword [rsp + 0x38], 0x20
add r8, 0x28
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xd8
call fcn.1800064c0
mov rax, qword [r15]
cmp dword [rax], 3
jne 0x18002d53c
mov esi, 1
nop
mov r14d, 0xb0
mov eax, r14d
sub eax, 0xb0
je 0x18002d3dc
cmp eax, 1
jne 0x18002d425
mov rax, qword [r15]
lea r9, [rsp + 0x68]
lea r8, [rsp + 0x38]
mov edx, 0xa8
mov ecx, dword [rax + 4]
mov dword [rsp + 0x38], ecx
lea rcx, [rbp + 0x40]
call fcn.180006a90
lea rax, [rbp + 0x40]
mov dword [rsp + 0x38], 0x20
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rbp - 0x60]
xor edx, edx
lea r8, [rbp + 0x20]
mov qword [rsp + 0x20], rax
mov ecx, 0xd8
call fcn.1800064c0
jmp 0x18002d425
mov r8, qword [r15]
mov edx, ebx
cmp dword [r8 + 4], ebx
jbe 0x18002d406
nop word [rax + rax]
mov ecx, edx
inc edx
movzx eax, byte [rbp + rcx - 0x80]
xor al, sil
mov byte [rsp + rcx + 0x68], al
cmp edx, dword [r8 + 4]
jb 0x18002d3f0
lea r9, [rsp + 0x38]
mov dword [rsp + 0x38], 0x20
lea r8, [rbp + 0x20]
mov edx, 0x5d
lea rcx, [rbp - 0x60]
call fcn.18007be50
inc r14d
cmp r14d, 0xb2
jb 0x18002d376
inc esi
cmp esi, 0x13
jbe 0x18002d370
jmp 0x18002d53c
movups xmmword [r13 + 0x40], xmm7
mov qword [r13 + 0x38], rbx
movsd qword [r13 + 0x50], xmm6
jmp 0x18002d54f
mov r8d, 0xf0
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x40]
call fcn.1800744e0
mov rax, qword [r15]
cmp dword [rax], 3
jne 0x18002d4f3
mov r14d, 0x32
nop word [rax + rax]
mov esi, 0x9b
cmp esi, 0x9b
je 0x18002d4aa
cmp esi, 0x2a62
jne 0x18002d4dc
mov r8d, 0xf0
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x40]
call fcn.1800744e0
jmp 0x18002d4dc
xor edx, edx
lea rcx, [rbp - 0x40]
mov r8d, 0x13d
call fcn.180042a70
mov rax, qword [r15]
lea r9, [rbp - 0x40]
lea r8, [rbp - 0x80]
lea rdx, [rsp + 0x60]
mov ecx, dword [rax + 4]
mov dword [rsp + 0x60], ecx
mov ecx, 0x109
call fcn.1800342c0
add esi, 0x29c7
cmp esi, 0x538e
jbe 0x18002d485
sub r14, 1
jne 0x18002d480
mov rax, qword [r15]
mov eax, dword [rax + 4]
lea r9, [rbp - 0x80]
lea r8, [rsp + 0x38]
mov dword [rsp + 0x38], eax
mov edx, 0xa8
lea rcx, [rbp + 0x40]
call fcn.180006a90
jmp 0x18002d53c
mov rax, qword [r13 + 0x68]
lea rdx, [rsp + 0x48]
mov r8d, 0x56
mov qword [rsp + 0x48], rax
lea rcx, [0x180147c3c]
call fcn.18005f8f0
test eax, eax
jne 0x18002d571
mov word [r13 + 0x58], si
mov r10, qword [rsp + 0x40]
mov r8, qword [rbp + 0x1d8]
lea rdx, [0x180008ae0]
add r12d, 0x47
cmp r12d, dword [rsp + 0x50]
jb 0x18002d1b2
mov eax, dword [rbp + 0x1e8]
mov edx, dword [rsp + 0x30]
mov r11, qword [rbp + 0x1d0]
jmp 0x18002d59f
mov rax, qword [r15]
lea rdx, [rsp + 0x58]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x58], rcx
mov ecx, 0xd7
call fcn.180053160
mov dword [rsp + 0x50], eax
jmp case.0x18002d5e4.8
mov edx, dword [rbp + 0x1e8]
mov dword [rsp + 0x30], edx
lea r14d, [rax + 0xa]
cmp eax, r14d
jae case.0x18002d5e4.8
mov r13, qword [rbp + 0x1f8]
lea esi, [rax - 0x1f]
mov r15, qword [rsp + 0x68]
lea r9, [0x180000000]
mov r12, qword [rsp + 0x68]
cmp esi, 0x2f
ja case.0x18002d5e4.10
movzx eax, byte [r9 + rsi + 0x2d820]
mov ecx, dword [r9 + rax*4 + 0x2d7f4]
add rcx, r9
jmp rcx
or dword [r15], 0x10000000
lea r8, [rsp + 0x48]
mov r9d, 0x104
mov qword [rsp + 0x48], r10
lea rdx, str._OPENED
mov qword [rsp + 0x20], r15
xor ecx, ecx
call fcn.1800105f0
jmp 0x18002d790
test r15, r15
je 0x18002d214
jmp case.0x18002d5e4.10
mov qword [rsp + 0x50], r10
jmp case.0x18002d5e4.10
test r12, r12
je 0x18002d214
mov r9d, 0x104
mov qword [rsp + 0x48], r10
lea r8, [rsp + 0x48]
mov qword [rsp + 0x20], r12
lea rdx, str.Title
xor ecx, ecx
call fcn.1800105f0
add dword [rsp + 0x30], eax
lea r8, [rbp + 0x1e8]
mov rax, qword [rbp + 0x1e0]
lea rdx, [rsp + 0x60]
mov ecx, 0x21
mov dword [rbp + 0x1e8], 1
mov rax, qword [rax]
mov qword [rsp + 0x60], rax
call fcn.1800204c0
mov edx, dword [rsp + 0x30]
mov r15, rax
jmp 0x18002d79a
test edx, edx
jne 0x18002d214
mov eax, 0x600
or word [r10 + 6], ax
jmp case.0x18002d5e4.10
mov rax, qword [r13]
lea r8, [rsp + 0x38]
mov qword [rsp + 0x38], rax
lea rcx, [rbp - 0x68]
mov rax, qword [rbp + 0x1e0]
mov r9d, 0x75
mov rdx, r11
mov rax, qword [rax]
mov qword [rbp - 0x68], rax
call fcn.180014280
mov edx, dword [rsp + 0x30]
mov r12, rax
jmp 0x18002d79a
mov rax, qword [r8]
xor r9d, r9d
lea r8, [rsp + 0x48]
mov qword [rsp + 0x48], rax
mov rcx, r10
lea edx, [r9 + 0x42]
call fcn.180080660
test eax, eax
jne 0x18002d214
mov edx, dword [rsp + 0x30]
jmp 0x18002d79a
lea r9, str.Type
mov qword [rsp + 0x48], r10
lea r8, str.Outlines
mov dword [rsp + 0x20], 0x7a
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x68]
call fcn.1800a4a00
mov qword [rsp + 0x28], rbx
lea r8, [rsp + 0x68]
mov r9d, 0x133
xor edx, edx
xor ecx, ecx
movups xmm6, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x68], rax
mov rax, qword [rbp + 0x1f0]
movsd qword [rsp + 0x78], xmm0
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call fcn.18008b950
movd ecx, xmm6
add eax, ecx
mov edx, dword [rsp + 0x30]
add edx, eax
mov dword [rsp + 0x30], edx
mov r10, qword [rsp + 0x40]
lea r9, [0x180000000]
inc esi
lea eax, [rsi + 0x1f]
cmp eax, r14d
jae case.0x18002d5e4.8
mov r8, qword [rbp + 0x1d8]
mov r11, qword [rbp + 0x1d0]
jmp 0x18002d5c7
mov dword [rsp + 0x50], edi
mov rax, qword [rsp + 0x50]
lea r11, [rsp + 0x288]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret