Function at 0x18002c030
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x2a8]
sub rsp, 0x3a8
mov rbx, rdx
mov rsi, rcx
mov edx, 0x53e57355
mov ecx, 0x97c92fff
call fcn.180049ad0
test rax, rax
je 0x18002c073
or edx, 0xffffffff
mov rcx, 0xfffffffffffffffe
call rax
mov rcx, qword [rsi]
lea rdi, [rbx + 0x18]
xor r9d, r9d
add rcx, 0x3f0
mov r8, rdi
mov edx, 0x927c0
mov qword [rbp + 0xa8], rdi
call fcn.1800615d0
test eax, eax
je 0x18002ce1e
mov qword [rsp + 0x3a0], r12
mov qword [rsp + 0x398], r13
mov qword [rsp + 0x390], r14
mov qword [rsp + 0x388], r15
xor r14d, r14d
cmp eax, 0x102
je 0x18002cddc
cmp eax, 1
jne 0x18002cdd4
lea r13, [rbx + 0x78]
lea rcx, [rbp + 0x38]
mov rdx, r13
mov qword [rbp - 0x48], r13
call fcn.180065670
lea rdx, [rbp - 0x58]
mov rcx, r13
mov word [rbx + 0x7c], r14w
call fcn.180064230
lea rdx, [rbp + 0x38]
lea rcx, [rbp - 0x18]
call fcn.18001fb30
lea rcx, [rbp - 0x30]
xor edx, edx
call fcn.180040150
lea rcx, [rbp + 0x90]
xor edx, edx
call fcn.180040150
lea r8, [rbp - 0x30]
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x18]
call fcn.180020140
lea rcx, [rsp + 0x60]
call fcn.18003fcd0
test al, al
jne 0x18002cca4
cmp dword [rbp + 0x50], 0
lea rcx, [rsp + 0x60]
je 0x18002c18b
call fcn.18003fca0
lea rcx, [rbp + 0x90]
call fcn.18003fca0
lea rcx, [rbp - 0x30]
call fcn.18003fca0
lea rcx, [rbp - 0x18]
call fcn.18001fc20
lea rcx, [rbp - 0x58]
call fcn.180040e20
lea rcx, [rbp + 0x38]
call fcn.1800656d0
jmp 0x18002cdd4
call fcn.1800405b0
lea rdx, [rbp + 0x148]
lea rcx, [rsp + 0x60]
movzx r12d, al
mov r8d, r12d
call fcn.1800403d0
lea rdx, [rbp + 0x1a0]
lea rcx, [rsp + 0x60]
mov r8d, r12d
call fcn.1800403d0
lea rcx, [rbp + 0xb0]
mov edx, r12d
call fcn.180040150
mov edi, r14d
test r12d, r12d
jle 0x18002c21b
nop word [rax + rax]
lea rcx, [rbp + 0x1a0]
mov edx, edi
call fcn.18003fcb0
lea rcx, [rbp + 0x148]
mov edx, edi
mov rbx, rax
call fcn.18003fcb0
movzx ebx, byte [rbx]
xor bl, byte [rax]
lea rcx, [rbp + 0xb0]
mov edx, edi
call fcn.18003fcb0
inc edi
mov byte [rax], bl
cmp edi, r12d
jl 0x18002c1e0
lea r8, [rsp + 0x60]
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x60]
call fcn.18001faf0
lea rdx, [rbp + 0xb0]
lea rcx, [rsp + 0x78]
call fcn.18001fab0
lea rcx, [rbp + 0x60]
call fcn.1800405b0
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x60]
movzx r15d, al
mov byte [rbp + 0x2e8], al
call fcn.180020830
cmp r15b, 1
jbe 0x18002c51e
cmp r15b, 2
jne 0x18002cc45
lea rcx, [rbp + 0x60]
call fcn.1800405b0
movzx r11d, al
sub r11d, 0x64
je 0x18002c392
dec r11d
je 0x18002c35c
dec r11d
jne 0x18002cc45
lea rdx, [rbp + 0x1e0]
lea rcx, [rbp + 0x60]
call fcn.180020890
lea rcx, [rbp + 0x228]
mov rdx, rax
call fcn.180020b00
lea rcx, [rbp + 0x240]
xor edx, edx
mov rbx, rax
call fcn.180040150
lea rcx, [rbp + 8]
mov rdx, rax
mov r8, rbx
call fcn.18001faf0
lea rcx, [rbp + 0x240]
call fcn.18003fca0
lea rcx, [rbp + 0x228]
call fcn.18003fca0
lea rcx, [rbp + 0x1e0]
call fcn.18003fca0
lea rcx, [rbp + 8]
call fcn.18003fcc0
test eax, eax
je 0x18002c328
lea rdx, [rbp + 8]
mov r8d, 7
mov rcx, rsi
call fcn.18002b200
mov edx, 0x30323030
jmp 0x18002c32d
mov edx, 0x30353033
lea rcx, [rsp + 0x78]
call fcn.180020640
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x18]
call fcn.18001ff40
lea rcx, [rbp + 0x20]
call fcn.18003fca0
lea rcx, [rbp + 8]
call fcn.18003fca0
jmp 0x18002cc45
lea rcx, [rsp + 0x78]
mov edx, 0x504f4e47
call fcn.180020640
mov rdx, qword [rsi]
lea rcx, [rsp + 0x78]
add rdx, 0x540
call fcn.180020670
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x18]
call fcn.18001ff40
jmp 0x18002cc45
lea rcx, [rbp + 0x60]
call fcn.180040640
lea rcx, [rbp + 0x38]
mov edx, 0x3c
movzx ebx, ax
call fcn.1800650c0
mov r11d, dword [r13]
lea r8, [rbp - 0x40]
lea rdx, [rsp + 0x48]
mov rcx, rsi
mov dword [rbp - 0x40], r11d
mov word [rbp - 0x3c], bx
mov qword [rbp - 0x38], r14
call fcn.1800290f0
test al, al
je 0x18002c4fa
mov ebx, 1
lea rdx, [rbp + 8]
mov rcx, rsi
lea r9d, [rbx + 1]
mov r8d, ebx
call fcn.180028f60
lea rdx, [rbp + 0x2e0]
lea rcx, [rbp + 8]
mov r8d, ebx
mov byte [rbp + 0x2e0], 0xc
call fcn.1800402b0
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.180040150
mov rcx, qword [rsp + 0x48]
mov edx, 0x7fffffff
call fcn.180040f10
mov rdx, qword [rsp + 0x48]
lea rcx, [rbp + 0x130]
mov r8d, eax
call fcn.180065b50
lea rcx, [rbp + 0x130]
call fcn.18003fcc0
lea rcx, [rbp + 0x130]
xor edx, edx
mov ebx, eax
call fcn.18003fcb0
lea rcx, [rsp + 0x20]
mov rdx, rax
mov r8d, ebx
call fcn.1800402b0
lea rcx, [rbp + 0x130]
call fcn.18003fca0
mov r11d, dword [rbp - 0x40]
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2e0], r11d
call fcn.1800402b0
movzx ecx, word [rbp - 0x3c]
call fcn.180046cc0
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x20]
mov r8d, 2
mov word [rsp + 0x40], ax
call fcn.1800402b0
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 8]
call fcn.1800206d0
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.18002bb20
lea rcx, [rsp + 0x20]
mov ebx, 0x30353033
test al, al
mov eax, 0x30323030
cmovne ebx, eax
call fcn.18003fca0
lea rcx, [rbp + 0x20]
call fcn.18003fca0
lea rcx, [rbp + 8]
call fcn.18003fca0
jmp 0x18002c4ff
mov ebx, 0x30343034
lea rcx, [rsp + 0x78]
mov edx, ebx
call fcn.180020640
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x18]
call fcn.18001ff40
jmp 0x18002cc45
lea rdx, [rsi + 0xa8]
lea rcx, [rbp + 0x160]
or r8d, 0xffffffff
xor r12b, r12b
call fcn.180061c90
cmp dword [rsi + 0xd4], 0
mov ebx, r14d
jle 0x18002c580
nop word [rax + rax]
lea rcx, [rsi + 0xd0]
mov edx, ebx
call fcn.180063af0
mov rdx, qword [rsp + 0x48]
xor r9d, r9d
mov rcx, qword [rax + 0x10]
xor r8d, r8d
call fcn.180040cb0
test eax, eax
je 0x18002c5cd
inc ebx
cmp ebx, dword [rsi + 0xd4]
jl 0x18002c550
mov ecx, 0x28
call fcn.1800472c0
mov rdi, rax
test rax, rax
je 0x18002c5b7
mov ebx, dword [r13]
mov dword [rax + 8], r14d
lea rax, [0x1800866b0]
lea rcx, [rdi + 0x10]
lea rdx, [rsp + 0x48]
mov qword [rdi], rax
call fcn.180041fd0
mov dword [rdi + 0x20], ebx
jmp 0x18002c5ba
mov rdi, r14
lea rcx, [rsi + 0xd0]
or r8d, 0xffffffff
mov rdx, rdi
call fcn.180063c50
mov rdx, qword [rsp + 0x48]
lea rcx, [rsi + 0x10]
call fcn.180041ee0
movzx edi, r12b
lea rcx, [rbp + 0x160]
test al, al
mov eax, 1
cmovne edi, eax
mov dword [rsp + 0x38], edi
call fcn.180061c00
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.180040150
cmp r15b, 1
jne 0x18002c726
test dil, dil
jne 0x18002c726
lea r13, [rsi + 0x208]
mov esi, 1
lea r14d, [rsi + 2]
lea r15d, [rsi + 0x3f]
nop dword [rax]
xor edi, edi
lea rbx, [r13 + 8]
lea r12d, [rdi + 2]
nop word [rax + rax]
cmp dword [rbx], 0
je 0x18002c6ae
mov eax, dword [r13]
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2e0], eax
call fcn.1800402b0
mov r11d, 0x20
test edi, edi
cmovne r11d, r15d
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
mov r8d, esi
mov byte [rbp + 0x2e0], r11b
call fcn.1800402b0
mov r11d, dword [rbx]
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2e0], r11d
call fcn.1800402b0
inc edi
add rbx, r15
dec r12
jne 0x18002c640
add r13, 0x88
dec r14
jne 0x18002c630
lea rcx, [rsp + 0x20]
call fcn.18003fcc0
mov rsi, qword [rbp + 0x2d0]
movzx r15d, byte [rbp + 0x2e8]
test eax, eax
je 0x18002c71b
lea r8d, [r12 + 1]
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x78]
mov byte [rbp + 0x2e0], 0x13
call fcn.1800402b0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x78]
call fcn.1800206d0
lea rcx, [rsp + 0x20]
call fcn.180040920
mov edi, dword [rsp + 0x38]
mov r13, qword [rbp - 0x48]
xor r14d, r14d
mov rbx, qword [rsi]
mov edx, 0x7fffffff
mov rcx, qword [rbx + 0x540]
call fcn.180040f10
mov rdx, qword [rbx + 0x540]
lea rcx, [rbp + 0x118]
mov r8d, eax
call fcn.180065b50
lea rcx, [rbp + 0x118]
call fcn.18003fcc0
lea rcx, [rbp + 0x118]
xor edx, edx
mov ebx, eax
call fcn.18003fcb0
lea rcx, [rsp + 0x20]
mov rdx, rax
mov r8d, ebx
call fcn.1800402b0
lea rcx, [rbp + 0x118]
call fcn.18003fca0
mov r11d, dword [r13]
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2e0], r11d
call fcn.1800402b0
xor ecx, ecx
call fcn.180047360
mov ecx, eax
call fcn.180046ce0
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rsp + 0x58], eax
call fcn.1800402b0
mov r11, qword [rsi]
lea r8, [rsp + 0x20]
mov rcx, qword [r11 + 0x1b8]
lea rdx, [rbp + 0x210]
call fcn.180066950
lea rcx, [rsp + 0x20]
mov rdx, rax
call fcn.180040230
lea rcx, [rbp + 0x210]
call fcn.18003fca0
mov r11, qword [rsi]
lea r8, [rsp + 0x20]
mov rcx, qword [r11 + 0x1b8]
lea rdx, [rbp + 0x1f8]
call fcn.180067ec0
lea rcx, [rsp + 0x20]
mov rdx, rax
call fcn.180040230
lea rcx, [rbp + 0x1f8]
call fcn.18003fca0
mov r13d, 1
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x78]
mov r8d, r13d
mov byte [rbp + 0x2e0], 0x64
call fcn.1800402b0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x78]
call fcn.1800206d0
lea rcx, [rsp + 0x20]
call fcn.180040920
cmp r15b, r13b
jne 0x18002cbda
lea rcx, [rbp + 0x60]
call fcn.18003fcd0
test al, al
jne 0x18002cbda
nop dword [rax]
lea rcx, [rbp + 0x60]
call fcn.1800405b0
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x60]
movzx ebx, al
call fcn.180020890
cmp bl, 0xf
jne 0x18002cbb6
test dil, dil
jne 0x18002cbb6
lea rcx, [rbp + 8]
call fcn.1800406d0
lea rcx, [rbp + 8]
mov ebx, eax
mov dword [rbp + 0x2e0], eax
call fcn.1800405b0
movzx r11d, al
cmp r11d, 0x20
jne 0x18002c8e4
mov r15d, r14d
jmp 0x18002c8fa
or r15d, 0xffffffff
cmp r11d, 0x40
cmove r15d, r13d
cmp r15d, 0xffffffff
je 0x18002cbb6
mov r12d, r14d
mov r13, r14
xor edi, edi
movsxd r14, r15d
nop word [rax + rax]
cmp dword [rdi + rsi + 0x208], ebx
jne 0x18002c9da
lea rdx, [rsi + 0xa8]
lea rcx, [rbp + 0xf0]
or r8d, 0xffffffff
call fcn.180061c90
mov rbx, r14
shl rbx, 6
lea rax, [rdi + rbx]
cmp dword [rax + rsi + 0x210], 0
je 0x18002c96b
movsxd rax, r12d
imul rax, rax, 0x88
add rax, rbx
lea rcx, [rax + rsi + 0x218]
call fcn.18003fcd0
test al, al
je 0x18002c9f6
lea rcx, [rbp + 0x170]
mov edx, 0x19
call fcn.180047db0
lea rcx, [rbp + 0x258]
xor r8d, r8d
mov rdx, qword [rax]
call fcn.1800620e0
mov rcx, rax
call fcn.1800617b0
lea rcx, [rbp + 0x258]
call fcn.1800623c0
lea rcx, [rbp + 0x170]
call fcn.180040e20
movsxd r11, r12d
imul r11, r11, 0x88
add r11, rbx
lea rcx, [r11 + rsi + 0x218]
call fcn.18003fcd0
lea rcx, [rbp + 0xf0]
call fcn.180061c00
mov ebx, dword [rbp + 0x2e0]
inc r12d
inc r13
add rdi, 0x88
cmp r12d, 3
jl 0x18002c910
jmp 0x18002cb7c
mov eax, dword [rbp + 0x2e0]
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov dword [rbp + 0x2e0], eax
call fcn.1800402b0
mov eax, 0x40
mov r11d, 0x20
test r15d, r15d
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
cmovne r11d, eax
lea r8d, [rax - 0x3f]
mov byte [rbp + 0x2e0], r11b
call fcn.1800402b0
shl r14, 6
imul r13, r13, 0x88
add r13, r14
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
mov eax, dword [r13 + rsi + 0x210]
mov r8d, 4
mov dword [rbp + 0x2e0], eax
call fcn.1800402b0
movsxd r11, r12d
imul r11, r11, 0x88
add r11, r14
lea rbx, [r11 + rsi + 0x218]
mov rcx, rbx
call fcn.18003fcc0
xor edx, edx
mov rcx, rbx
mov edi, eax
call fcn.18003fcb0
lea rcx, [rbp + 0x100]
mov rdx, rax
mov r8d, edi
call fcn.180065b50
lea rcx, [rbp + 0x100]
call fcn.18003fcc0
lea rcx, [rbp + 0x100]
xor edx, edx
mov ebx, eax
call fcn.18003fcb0
lea rcx, [rsp + 0x20]
mov rdx, rax
mov r8d, ebx
call fcn.1800402b0
lea rcx, [rbp + 0x100]
call fcn.18003fca0
test r12d, r12d
jne 0x18002cb70
inc dword [r13 + rsi + 0x248]
cmp dword [r13 + rsi + 0x248], 0x64
jne 0x18002cb70
lea rbx, [r14 + rsi + 0x230]
lea rcx, [r14 + rsi + 0x218]
mov rdx, rbx
call fcn.180040230
mov rcx, rbx
call fcn.180040920
lea edx, [r12 + 0x19]
lea rcx, [rbp + 0x190]
mov dword [r13 + rsi + 0x248], r12d
call fcn.180047db0
lea rcx, [rbp + 0x1b8]
mov rdx, qword [rax]
xor r8d, r8d
call fcn.1800620e0
mov rcx, rax
call fcn.1800617b0
lea rcx, [rbp + 0x1b8]
call fcn.1800623c0
lea rcx, [rbp + 0x190]
call fcn.180040e20
lea rcx, [rbp + 0xf0]
call fcn.180061c00
mov r13d, 1
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x78]
mov r8d, r13d
mov byte [rbp + 0x2e0], 0x14
call fcn.1800402b0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x78]
call fcn.1800206d0
lea rcx, [rsp + 0x20]
call fcn.180040920
lea rcx, [rbp + 8]
call fcn.18003fca0
lea rcx, [rbp + 0x60]
call fcn.18003fcd0
mov edi, dword [rsp + 0x38]
mov r14d, 0
test al, al
je 0x18002c890
lea rcx, [rsp + 0x78]
call fcn.18003fcd0
test al, al
je 0x18002cc2a
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x78]
mov r8d, r13d
mov byte [rbp + 0x2e0], 0
call fcn.1800402b0
lea rcx, [rbp + 0xc8]
xor edx, edx
call fcn.180040150
lea rcx, [rsp + 0x78]
mov rdx, rax
call fcn.1800206d0
lea rcx, [rbp + 0xc8]
call fcn.18003fca0
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x18]
call fcn.18001ff40
lea rcx, [rsp + 0x20]
call fcn.18003fca0
xor r14d, r14d
lea rcx, [rsp + 0x48]
call fcn.180040e20
lea rcx, [rbp - 0x70]
call fcn.18003fca0
lea rcx, [rsp + 0x78]
call fcn.18003fca0
lea rcx, [rbp + 0x78]
call fcn.18003fca0
lea rcx, [rbp + 0x60]
call fcn.18003fca0
lea rcx, [rbp + 0xb0]
call fcn.18003fca0
lea rcx, [rbp + 0x1a0]
call fcn.18003fca0
lea rcx, [rbp + 0x148]
call fcn.18003fca0
mov rdi, qword [rbp + 0xa8]
jmp 0x18002cd93
cmp dword [rbp + 0x50], 0
je 0x18002ccb4
lea rcx, [rsp + 0x60]
jmp 0x18002c151
mov rax, qword [rsi]
cmp dword [rax + 0x5e0], 0
jne 0x18002ccca
lea rcx, [rsp + 0x60]
jmp 0x18002c151
lea rcx, [rbp + 0xc8]
call fcn.180065630
mov rdx, qword [rsi]
lea rcx, [rbp + 0xc8]
add rdx, 0x5e0
call fcn.1800656b0
test al, al
jne 0x18002cd49
lea rcx, [rbp + 0x180]
mov edx, 0x19
call fcn.180047db0
lea rcx, [rbp + 0x1b8]
xor r8d, r8d
mov rdx, qword [rax]
call fcn.1800620e0
mov rcx, rax
call fcn.1800617b0
lea rcx, [rbp + 0x1b8]
call fcn.1800623c0
lea rcx, [rbp + 0x180]
call fcn.180040e20
lea rcx, [rbp + 0xc8]
call fcn.1800656d0
lea rcx, [rsp + 0x60]
jmp 0x18002c151
lea rcx, [rbp - 0x30]
call fcn.18003fcc0
lea rcx, [rbp - 0x30]
xor edx, edx
mov ebx, eax
call fcn.18003fcb0
lea rcx, [rbp + 0xc8]
mov rdx, rax
mov r8d, ebx
call fcn.180065190
lea rdx, [rbp + 0xc8]
lea rcx, [rbp + 0x38]
mov r8d, 0x1e
call fcn.180064390
lea rcx, [rbp + 0xc8]
call fcn.1800656d0
lea rcx, [rsp + 0x60]
call fcn.18003fca0
lea rcx, [rbp + 0x90]
call fcn.18003fca0
lea rcx, [rbp - 0x30]
call fcn.18003fca0
lea rcx, [rbp - 0x18]
call fcn.18001fc20
lea rcx, [rbp - 0x58]
call fcn.180040e20
lea rcx, [rbp + 0x38]
call fcn.1800656d0
mov rbx, qword [rbp + 0x2d8]
mov rcx, rdi
call fcn.180061800
mov rcx, qword [rsi]
xor r9d, r9d
mov r8, rdi
add rcx, 0x3f0
mov edx, 0x927c0
call fcn.1800615d0
test eax, eax
jne 0x18002c0c3
mov r15, qword [rsp + 0x388]
mov r14, qword [rsp + 0x390]
mov r13, qword [rsp + 0x398]
mov r12, qword [rsp + 0x3a0]
xor eax, eax
add rsp, 0x3a8
pop rdi
pop rsi
pop rbx
pop rbp
ret