Function at 0x18002b6e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r13
lea rbp, [rsp - 0x298]
sub rsp, 0x398
mov r13, rdx
mov rsi, rcx
mov edx, 0x4d8d23dc
mov ecx, 0x89a17f76
call fcn.180048dc0
test rax, rax
je 0x18002b724
or edx, 0xffffffff
mov rcx, 0xfffffffffffffffe
call rax
mov rcx, qword [rsi]
lea rdi, [r13 + 0x18]
xor r9d, r9d
add rcx, 0x3f0
mov r8, rdi
mov edx, 0x927c0
call fcn.18005fb30
test eax, eax
je 0x18002c46c
mov qword [rsp + 0x390], rbx
mov qword [rsp + 0x388], r12
mov qword [rsp + 0x380], r14
mov qword [rsp + 0x378], r15
xor r14d, r14d
nop dword [rax]
cmp eax, 0x102
je 0x18002c42a
cmp eax, 1
jne 0x18002c422
lea rdx, [r13 + 0x78]
lea rcx, [rbp + 0x28]
call fcn.180063b20
lea rdx, [rbp - 0x48]
lea rcx, [r13 + 0x78]
mov word [r13 + 0x84], r14w
call fcn.180062990
lea rdx, [rbp + 0x28]
lea rcx, [rbp - 0x28]
call fcn.18001ef20
lea rcx, [rbp - 0x60]
xor edx, edx
call fcn.18003f890
lea rcx, [rbp + 0x50]
xor edx, edx
call fcn.18003f890
lea r8, [rbp - 0x60]
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x28]
call fcn.18001f530
lea rcx, [rsp + 0x58]
call fcn.18003f410
test al, al
jne 0x18002c31c
cmp dword [rbp + 0x40], 0
lea rcx, [rsp + 0x58]
jne 0x18002c3f0
call fcn.18003fcf0
lea rdx, [rbp + 0x150]
lea rcx, [rsp + 0x58]
movzx r12d, al
mov r8d, r12d
call fcn.18003fb10
lea rdx, [rbp + 0x168]
lea rcx, [rsp + 0x58]
mov r8d, r12d
call fcn.18003fb10
lea rcx, [rbp + 0x98]
mov edx, r12d
call fcn.18003f890
mov edi, r14d
test r12d, r12d
jle 0x18002b88b
nop word [rax + rax]
lea rcx, [rbp + 0x168]
mov edx, edi
call fcn.18003f3f0
lea rcx, [rbp + 0x150]
mov edx, edi
mov rbx, rax
call fcn.18003f3f0
movzx ebx, byte [rbx]
xor bl, byte [rax]
lea rcx, [rbp + 0x98]
mov edx, edi
call fcn.18003f3f0
inc edi
mov byte [rax], bl
cmp edi, r12d
jl 0x18002b850
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0x98]
lea rcx, [rbp + 0x68]
call fcn.18001eee0
lea rdx, [rbp + 0x98]
lea rcx, [rsp + 0x70]
call fcn.18001eea0
lea rcx, [rbp + 0x68]
call fcn.18003fcf0
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x68]
movzx r15d, al
call fcn.18001fc20
cmp r15b, 1
jbe 0x18002bb8e
cmp r15b, 2
jne 0x18002c2bd
lea rcx, [rbp + 0x68]
call fcn.18003fcf0
movzx r11d, al
sub r11d, 0x64
je 0x18002b9fc
dec r11d
je 0x18002b9c6
dec r11d
jne 0x18002c2bd
lea rdx, [rbp + 0x228]
lea rcx, [rbp + 0x68]
call fcn.18001fc80
lea rcx, [rbp + 0x210]
mov rdx, rax
call fcn.18001fef0
lea rcx, [rbp + 0x1e0]
xor edx, edx
mov rbx, rax
call fcn.18003f890
lea rcx, [rbp - 8]
mov rdx, rax
mov r8, rbx
call fcn.18001eee0
lea rcx, [rbp + 0x1e0]
call fcn.18003f3e0
lea rcx, [rbp + 0x210]
call fcn.18003f3e0
lea rcx, [rbp + 0x228]
call fcn.18003f3e0
lea rcx, [rbp - 8]
call fcn.18003f400
test eax, eax
je 0x18002b992
lea rdx, [rbp - 8]
mov r8d, 7
mov rcx, rsi
call fcn.18002a690
mov edx, 0x30323030
jmp 0x18002b997
mov edx, 0x30353033
lea rcx, [rsp + 0x70]
call fcn.18001fa30
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x28]
call fcn.18001f330
lea rcx, [rbp + 0x10]
call fcn.18003f3e0
lea rcx, [rbp - 8]
call fcn.18003f3e0
jmp 0x18002c2bd
lea rcx, [rsp + 0x70]
mov edx, 0x504f4e47
call fcn.18001fa30
mov rdx, qword [rsi]
lea rcx, [rsp + 0x70]
add rdx, 0x540
call fcn.18001fa60
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x28]
call fcn.18001f330
jmp 0x18002c2bd
lea rcx, [rbp + 0x68]
call fcn.18003fd80
lea rcx, [rbp + 0x28]
mov edx, 0x3c
movzx ebx, ax
call fcn.180063570
mov ecx, dword [r13 + 0x80]
mov dword [rbp - 0x30], ecx
lea r8, [rbp - 0x38]
lea rdx, [rsp + 0x40]
mov rcx, rsi
mov qword [rbp - 0x38], r14
mov word [rbp - 0x2c], bx
call fcn.1800284e0
test al, al
je 0x18002bb6a
mov ebx, 1
lea rdx, [rbp - 8]
mov rcx, rsi
lea r9d, [rbx + 1]
mov r8d, ebx
call fcn.180028340
lea rdx, [rbp + 0x2d0]
lea rcx, [rbp - 8]
mov r8d, ebx
mov byte [rbp + 0x2d0], 0xc
call fcn.18003f9f0
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.18003f890
mov rcx, qword [rsp + 0x40]
mov edx, 0x7fffffff
call fcn.1800404b0
mov rdx, qword [rsp + 0x40]
lea rcx, [rbp + 0x100]
mov r8d, eax
call fcn.180064080
lea rcx, [rbp + 0x100]
call fcn.18003f400
lea rcx, [rbp + 0x100]
xor edx, edx
mov ebx, eax
call fcn.18003f3f0
lea rcx, [rsp + 0x20]
mov rdx, rax
mov r8d, ebx
call fcn.18003f9f0
lea rcx, [rbp + 0x100]
call fcn.18003f3e0
mov r11d, dword [rbp - 0x30]
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2d0], r11d
call fcn.18003f9f0
movzx ecx, word [rbp - 0x2c]
call fcn.180046260
lea rdx, [rbp + 0x2d8]
lea rcx, [rsp + 0x20]
mov r8d, 2
mov word [rbp + 0x2d8], ax
call fcn.18003f9f0
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 8]
call fcn.18001fac0
lea rdx, [rbp - 8]
mov rcx, rsi
call fcn.18002b000
lea rcx, [rsp + 0x20]
mov ebx, 0x30353033
test al, al
mov eax, 0x30323030
cmovne ebx, eax
call fcn.18003f3e0
lea rcx, [rbp + 0x10]
call fcn.18003f3e0
lea rcx, [rbp - 8]
call fcn.18003f3e0
jmp 0x18002bb6f
mov ebx, 0x30343034
lea rcx, [rsp + 0x70]
mov edx, ebx
call fcn.18001fa30
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x28]
call fcn.18001f330
jmp 0x18002c2bd
lea rdx, [rsi + 0xa8]
lea rcx, [rbp + 0x140]
or r8d, 0xffffffff
xor r12b, r12b
call fcn.1800601d0
cmp dword [rsi + 0xd4], 0
mov ebx, r14d
jle 0x18002bbf0
nop word [rax + rax]
lea rcx, [rsi + 0xd0]
mov edx, ebx
call fcn.180061ff0
mov rdx, qword [rsp + 0x40]
xor r9d, r9d
mov rcx, qword [rax + 0x10]
xor r8d, r8d
call fcn.180040250
test eax, eax
je 0x18002bc40
inc ebx
cmp ebx, dword [rsi + 0xd4]
jl 0x18002bbc0
mov ecx, 0x28
call fcn.180046860
mov rdi, rax
test rax, rax
je 0x18002bc2a
mov ebx, dword [r13 + 0x80]
mov dword [rax + 8], r14d
lea rax, [0x180081578]
lea rcx, [rdi + 0x10]
lea rdx, [rsp + 0x40]
mov qword [rdi], rax
call fcn.180041570
mov dword [rdi + 0x20], ebx
jmp 0x18002bc2d
mov rdi, r14
lea rcx, [rsi + 0xd0]
or r8d, 0xffffffff
mov rdx, rdi
call fcn.180062150
mov rdx, qword [rsp + 0x40]
lea rcx, [rsi + 0x10]
call fcn.1800413e0
movzx edi, r12b
mov r12d, 1
test al, al
lea rcx, [rbp + 0x140]
cmovne edi, r12d
mov dword [rsp + 0x38], edi
call fcn.180060140
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.18003f890
cmp r15b, r12b
jne 0x18002bd96
test dil, dil
jne 0x18002bd96
lea r13, [rsi + 0x210]
lea r14d, [r12 + 2]
lea esi, [r12 + 0x3f]
nop dword [rax]
xor edi, edi
lea rbx, [r13 + 8]
lea r12d, [rdi + 2]
nop word [rax + rax]
cmp dword [rbx], 0
je 0x18002bd21
mov eax, dword [r13]
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2d0], eax
call fcn.18003f9f0
mov r11d, 0x20
test edi, edi
cmovne r11d, esi
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x20]
mov r8d, 1
mov byte [rbp + 0x2d0], r11b
call fcn.18003f9f0
mov r11d, dword [rbx]
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2d0], r11d
call fcn.18003f9f0
inc edi
add rbx, rsi
dec r12
jne 0x18002bcb0
add r13, 0x88
dec r14
jne 0x18002bca0
lea rcx, [rsp + 0x20]
call fcn.18003f400
mov rsi, qword [rbp + 0x2c0]
lea r12d, [r14 + 1]
test eax, eax
je 0x18002bd88
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x70]
mov r8d, r12d
mov byte [rbp + 0x2d0], 0x13
call fcn.18003f9f0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.18001fac0
lea rcx, [rsp + 0x20]
call fcn.180040060
mov r13, qword [rbp + 0x2c8]
mov edi, dword [rsp + 0x38]
xor r14d, r14d
mov rbx, qword [rsi]
mov edx, 0x7fffffff
mov rcx, qword [rbx + 0x540]
call fcn.1800404b0
mov rdx, qword [rbx + 0x540]
lea rcx, [rbp + 0xe8]
mov r8d, eax
call fcn.180064080
lea rcx, [rbp + 0xe8]
call fcn.18003f400
lea rcx, [rbp + 0xe8]
xor edx, edx
mov ebx, eax
call fcn.18003f3f0
lea rcx, [rsp + 0x20]
mov rdx, rax
mov r8d, ebx
call fcn.18003f9f0
lea rcx, [rbp + 0xe8]
call fcn.18003f3e0
mov r11d, dword [r13 + 0x80]
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2d0], r11d
call fcn.18003f9f0
xor ecx, ecx
call fcn.180046910
mov ecx, eax
call fcn.180046280
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rsp + 0x50], eax
call fcn.18003f9f0
mov r11, qword [rsi]
lea r8, [rsp + 0x20]
mov rcx, qword [r11 + 0x1b8]
lea rdx, [rbp + 0x1f8]
call fcn.180064e80
lea rcx, [rsp + 0x20]
mov rdx, rax
call fcn.18003f970
lea rcx, [rbp + 0x1f8]
call fcn.18003f3e0
mov r11, qword [rsi]
lea r8, [rsp + 0x20]
mov rcx, qword [r11 + 0x1b8]
lea rdx, [rbp + 0x1c8]
call fcn.1800663f0
lea rcx, [rsp + 0x20]
mov rdx, rax
call fcn.18003f970
lea rcx, [rbp + 0x1c8]
call fcn.18003f3e0
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x70]
mov r8d, r12d
mov byte [rbp + 0x2d0], 0x64
call fcn.18003f9f0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.18001fac0
lea rcx, [rsp + 0x20]
call fcn.180040060
cmp r15b, 1
jne 0x18002c252
lea rcx, [rbp + 0x68]
call fcn.18003f410
test al, al
jne 0x18002c252
nop dword [rax + rax]
lea rcx, [rbp + 0x68]
call fcn.18003fcf0
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x68]
movzx ebx, al
call fcn.18001fc80
cmp bl, 0xf
jne 0x18002c227
test dil, dil
jne 0x18002c227
lea rcx, [rbp - 8]
call fcn.18003fe10
lea rcx, [rbp - 8]
mov ebx, eax
mov dword [rbp + 0x2d0], eax
call fcn.18003fcf0
movzx r11d, al
cmp r11d, 0x20
jne 0x18002bf54
mov r15d, r14d
jmp 0x18002bf6a
or r15d, 0xffffffff
cmp r11d, 0x40
cmove r15d, r12d
cmp r15d, 0xffffffff
je 0x18002c227
mov r12d, r14d
mov r13, r14
xor edi, edi
movsxd r14, r15d
nop word [rax + rax]
cmp dword [rdi + rsi + 0x210], ebx
jne 0x18002c048
lea rdx, [rsi + 0xa8]
lea rcx, [rbp + 0xd8]
or r8d, 0xffffffff
call fcn.1800601d0
mov rbx, r14
shl rbx, 6
lea rax, [rdi + rbx]
cmp dword [rax + rsi + 0x218], 0
je 0x18002bfda
movsxd rcx, r12d
add rcx, 4
imul rcx, rcx, 0x88
add rcx, rbx
add rcx, rsi
call fcn.18003f410
test al, al
je 0x18002c064
lea rcx, [rbp + 0x180]
mov edx, 0x19
call fcn.180047300
lea rcx, [rbp + 0x240]
xor r8d, r8d
mov rdx, qword [rax]
call fcn.180060590
mov rcx, rax
call fcn.18005fd00
lea rcx, [rbp + 0x240]
call fcn.180060880
lea rcx, [rbp + 0x180]
call fcn.1800403c0
movsxd rcx, r12d
add rcx, 4
imul rcx, rcx, 0x88
add rcx, rbx
add rcx, rsi
call fcn.18003f410
lea rcx, [rbp + 0xd8]
call fcn.180060140
mov ebx, dword [rbp + 0x2d0]
inc r12d
inc r13
add rdi, 0x88
cmp r12d, 3
jl 0x18002bf80
jmp 0x18002c1ed
mov eax, dword [rbp + 0x2d0]
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2d0], eax
call fcn.18003f9f0
mov eax, 0x40
mov r11d, 0x20
test r15d, r15d
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x20]
cmovne r11d, eax
lea r8d, [rax - 0x3f]
mov byte [rbp + 0x2d0], r11b
call fcn.18003f9f0
shl r14, 6
imul r13, r13, 0x88
add r13, r14
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x20]
mov eax, dword [r13 + rsi + 0x218]
mov r8d, 4
mov dword [rbp + 0x2d0], eax
call fcn.18003f9f0
movsxd rbx, r12d
add rbx, 4
imul rbx, rbx, 0x88
add rbx, r14
add rbx, rsi
mov rcx, rbx
call fcn.18003f400
xor edx, edx
mov rcx, rbx
mov edi, eax
call fcn.18003f3f0
lea rcx, [rbp + 0x118]
mov rdx, rax
mov r8d, edi
call fcn.180064080
lea rcx, [rbp + 0x118]
call fcn.18003f400
lea rcx, [rbp + 0x118]
xor edx, edx
mov ebx, eax
call fcn.18003f3f0
lea rcx, [rsp + 0x20]
mov rdx, rax
mov r8d, ebx
call fcn.18003f9f0
lea rcx, [rbp + 0x118]
call fcn.18003f3e0
test r12d, r12d
jne 0x18002c1e1
inc dword [r13 + rsi + 0x250]
cmp dword [r13 + rsi + 0x250], 0x64
jne 0x18002c1e1
lea rbx, [r14 + rsi + 0x238]
lea rcx, [r14 + rsi + 0x220]
mov rdx, rbx
call fcn.18003f970
mov rcx, rbx
call fcn.180040060
lea edx, [r12 + 0x19]
lea rcx, [rbp + 0x190]
mov dword [r13 + rsi + 0x250], r12d
call fcn.180047300
lea rcx, [rbp + 0x1a0]
mov rdx, qword [rax]
xor r8d, r8d
call fcn.180060590
mov rcx, rax
call fcn.18005fd00
lea rcx, [rbp + 0x1a0]
call fcn.180060880
lea rcx, [rbp + 0x190]
call fcn.1800403c0
lea rcx, [rbp + 0xd8]
call fcn.180060140
mov r12d, 1
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x70]
mov r8d, r12d
mov byte [rbp + 0x2d0], 0x14
call fcn.18003f9f0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.18001fac0
lea rcx, [rsp + 0x20]
call fcn.180040060
lea rcx, [rbp - 8]
call fcn.18003f3e0
lea rcx, [rbp + 0x68]
call fcn.18003f410
mov edi, dword [rsp + 0x38]
mov r14d, 0
test al, al
je 0x18002bf00
mov r13, qword [rbp + 0x2c8]
lea rcx, [rsp + 0x70]
call fcn.18003f410
test al, al
je 0x18002c2a2
lea rdx, [rbp + 0x2d0]
lea rcx, [rsp + 0x70]
mov r8d, r12d
mov byte [rbp + 0x2d0], 0
call fcn.18003f9f0
lea rcx, [rbp + 0xb0]
xor edx, edx
call fcn.18003f890
lea rcx, [rsp + 0x70]
mov rdx, rax
call fcn.18001fac0
lea rcx, [rbp + 0xb0]
call fcn.18003f3e0
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x28]
call fcn.18001f330
lea rcx, [rsp + 0x20]
call fcn.18003f3e0
xor r14d, r14d
lea rcx, [rsp + 0x40]
call fcn.1800403c0
lea rcx, [rbp - 0x78]
call fcn.18003f3e0
lea rcx, [rsp + 0x70]
call fcn.18003f3e0
lea rcx, [rbp + 0x80]
call fcn.18003f3e0
lea rcx, [rbp + 0x68]
call fcn.18003f3e0
lea rcx, [rbp + 0x98]
call fcn.18003f3e0
lea rcx, [rbp + 0x168]
call fcn.18003f3e0
lea rcx, [rbp + 0x150]
call fcn.18003f3e0
lea rdi, [r13 + 0x18]
jmp 0x18002c3eb
cmp dword [rbp + 0x40], 0
jne 0x18002c3eb
mov rax, qword [rsi]
cmp dword [rax + 0x5e8], 0
je 0x18002c3eb
lea rcx, [rbp + 0xb0]
call fcn.180063ae0
mov rdx, qword [rsi]
lea rcx, [rbp + 0xb0]
add rdx, 0x5e0
call fcn.180063b60
test al, al
jne 0x18002c3a1
lea rcx, [rbp + 0x130]
mov edx, 0x19
call fcn.180047300
lea rcx, [rbp + 0x1a0]
xor r8d, r8d
mov rdx, qword [rax]
call fcn.180060590
mov rcx, rax
call fcn.18005fd00
lea rcx, [rbp + 0x1a0]
call fcn.180060880
lea rcx, [rbp + 0x130]
call fcn.1800403c0
jmp 0x18002c3df
lea rcx, [rbp - 0x60]
call fcn.18003f400
lea rcx, [rbp - 0x60]
xor edx, edx
mov ebx, eax
call fcn.18003f3f0
lea rcx, [rbp + 0xb0]
mov rdx, rax
mov r8d, ebx
call fcn.180063640
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x28]
mov r8d, 0x1e
call fcn.180062b00
lea rcx, [rbp + 0xb0]
call fcn.1800630b0
lea rcx, [rsp + 0x58]
call fcn.18003f3e0
lea rcx, [rbp + 0x50]
call fcn.18003f3e0
lea rcx, [rbp - 0x60]
call fcn.18003f3e0
lea rcx, [rbp - 0x28]
call fcn.18001f010
lea rcx, [rbp - 0x48]
call fcn.1800403c0
lea rcx, [rbp + 0x28]
call fcn.1800630b0
mov rcx, rdi
call fcn.18005fd50
mov rcx, qword [rsi]
xor r9d, r9d
mov r8, rdi
add rcx, 0x3f0
mov edx, 0x927c0
call fcn.18005fb30
test eax, eax
jne 0x18002b770
mov r15, qword [rsp + 0x378]
mov r14, qword [rsp + 0x380]
mov r12, qword [rsp + 0x388]
mov rbx, qword [rsp + 0x390]
xor eax, eax
add rsp, 0x398
pop r13
pop rdi
pop rsi
pop rbp
ret