Function at 0x14002db70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x2570
call fcn.140048bf0
sub rsp, rax
mov qword [rsp + 0xe0], 0xfffffffffffffffe
mov qword [rsp + 0x25c0], rbx
mov rax, qword [0x140056850]
xor rax, rsp
mov qword [rsp + 0x2560], rax
mov qword [rsp + 0x80], rdx
mov rdi, rcx
mov ecx, 0xdf0
call fcn.14002fa2c
mov rcx, rax
call fcn.1400115f0
xor edx, edx
mov rcx, rdi
call fcn.140006e88
cmp qword [rdi + 8], 0xffffffffffffffff
jne 0x14002dbe7
mov eax, 2
jmp 0x14002e5b7
xor esi, esi
cmp al, sil
je 0x14002dc1d
cmp byte [rdi + 0x6e57], sil
jne 0x14002dc1d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140019bc4
mov ecx, 0xdf2
call fcn.14002fa2c
mov rcx, rax
call fcn.1400115f0
xor eax, eax
jmp 0x14002e5b7
mov rdx, rdi
lea rcx, [rsp + 0x138]
call fcn.140031684
nop
lea rdx, [0x14004b810]
mov rcx, rdi
call fcn.14000b4c0
cmp rax, rsi
je 0x14002dcce
xor edx, edx
lea rcx, [rsp + 0xe8]
call fcn.14002afd4
nop
mov r8, qword [rdi + 0x60b0]
mov rdx, qword [rdi + 0x60a8]
lea rcx, [rsp + 0xe8]
call fcn.14002ade4
mov r8d, 8
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0xe8]
call fcn.14002af08
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xe8]
call fcn.14002ae8c
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0xe8]
call fcn.14002aed4
mov r12b, 1
mov rcx, qword [rsp + 0xe8]
cmp rcx, rsi
je 0x14002df35
call fcn.14003ceb8
jmp 0x14002df35
xor r8d, r8d
mov rdx, qword [rdi + 0x6e60]
mov rcx, rdi
call fcn.140019bc4
mov edx, 0x78
mov rcx, rdi
call fcn.14000b448
cmp rax, rsi
je 0x14002dd20
movzx eax, word [rdi + 0x617c]
cmp word [rdi + 0x6e6a], ax
jne 0x14002dd20
movzx eax, word [rdi + 0x618e]
mov dword [rsp + 0x40], eax
mov eax, dword [rdi + 0x6190]
mov qword [rsp + 0x68], rax
mov r12b, sil
jmp 0x14002df35
mov r14, rsi
mov qword [rdi + 0x6e40], rsi
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140019bc4
mov r8d, 0x2000
lea rdx, [rsp + 0x560]
mov rcx, rdi
call fcn.140019de0
cmp eax, esi
je 0x14002df02
mov r12b, byte [rsp + 0x48]
mov r13d, esi
lea r15d, [rax - 0x32]
cmp r15d, esi
jle 0x14002decd
lea rbp, [rsp + 0x562]
cmp byte [rbp], 0x7a
jne 0x14002ddb4
mov rax, qword [rbp + 0x20]
cmp rax, qword [str.Protect]
jne 0x14002ddb4
movzx ebx, byte [rbp - 1]
mov eax, 0x100
imul bx, ax
movzx eax, byte [rbp - 2]
add bx, ax
not bx
mov r8d, 0x34
mov rdx, rbp
or ecx, 0xffffffff
call fcn.140011f6c
cmp bx, ax
je 0x14002de09
jmp 0x14002ddf5
cmp byte [rbp], 0x78
jne 0x14002ddf5
mov rax, qword [rbp + 0x10]
cmp rax, qword [str.Protect_]
jne 0x14002ddf5
movzx ecx, byte [rbp - 1]
shl ecx, 8
movzx eax, byte [rbp - 2]
add ecx, eax
not ecx
movzx ebx, cx
mov r8d, 0x18
mov rdx, rbp
or ecx, 0xffffffff
call fcn.140011f6c
movzx ecx, ax
cmp ebx, ecx
je 0x14002de88
inc r13d
inc rbp
cmp r13d, r15d
jge 0x14002decd
jmp 0x14002dd72
movzx ecx, byte [rbp + 0x2b]
shl ecx, 8
movzx eax, byte [rbp + 0x2a]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0x29]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0x28]
add ecx, eax
mov dword [rsp + 0x40], ecx
movzx edx, byte [rbp + 0x33]
shl edx, 8
movzx eax, byte [rbp + 0x32]
add edx, eax
shl edx, 8
movzx eax, byte [rbp + 0x31]
add edx, eax
shl edx, 8
movzx eax, byte [rbp + 0x30]
add edx, eax
movzx ecx, byte [rbp + 0x2f]
shl ecx, 8
movzx eax, byte [rbp + 0x2e]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0x2d]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0x2c]
add eax, ecx
shl rdx, 0x20
add rax, rdx
mov qword [rsp + 0x68], rax
movsxd rax, r13d
add rax, r14
mov qword [rdi + 0x6e40], rax
mov r12b, 1
jmp 0x14002decd
movzx ecx, byte [rbp + 0xb]
shl ecx, 8
movzx eax, byte [rbp + 0xa]
add ecx, eax
mov dword [rsp + 0x40], ecx
movzx ecx, byte [rbp + 0xf]
shl ecx, 8
movzx eax, byte [rbp + 0xe]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0xd]
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp + 0xc]
add eax, ecx
mov qword [rsp + 0x68], rax
movsxd rax, r13d
add rax, r14
mov qword [rdi + 0x6e40], rax
mov r12b, sil
add r14, 0x1fce
xor r8d, r8d
mov rdx, r14
mov rcx, rdi
call fcn.140019bc4
mov r8d, 0x2000
lea rdx, [rsp + 0x560]
mov rcx, rdi
call fcn.140019de0
cmp eax, esi
jne 0x14002dd5a
jmp 0x14002df07
mov r12b, byte [rsp + 0x48]
cmp qword [rdi + 0x6e40], rsi
jne 0x14002df35
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140019bc4
mov ecx, 0xdf2
call fcn.14002fa2c
mov rcx, rax
call fcn.1400115f0
nop
jmp 0x14002e5a8
mov ecx, 0xdf4
call fcn.14002fa2c
mov rcx, rax
call fcn.1400115f0
or dword [0x140061ac4], 0xffffffff
lea rcx, [0x14004b9a4]
call fcn.1400115f0
mov rbx, qword [rdi + 0x6e40]
mov qword [rsp + 0x58], rbx
mov r15, rbx
mov qword [rsp + 0x150], rbx
mov ebp, esi
neg r12b
sbb ecx, ecx
and ecx, 0x1c
add ecx, 0x1a
cmp byte [rdi + 0x6e58], sil
je 0x14002df94
mov eax, ecx
not eax
inc eax
and eax, 0xf
lea ecx, [rcx + rax + 8]
movsxd rcx, ecx
add rcx, rbx
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0x30], rbx
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
mov r9, rcx
lea r8, [rsp + 0xa8]
lea rdx, [rsp + 0x88]
mov rcx, rdi
call fcn.14002d700
mov edx, dword [rsp + 0x40]
shl edx, 9
lea rcx, [rsp + 0xc0]
call fcn.140006908
nop
mov r8, qword [rsp + 0xc8]
xor edx, edx
mov rcx, qword [rsp + 0xc0]
call fcn.14003d524
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140019bc4
mov r14d, esi
cmp rbx, rsi
jle 0x14002e118
mov r12, qword [rsp + 0xa8]
mov r13, qword [rsp + 0x88]
call fcn.1400349c0
mov r8, r15
sub r8, rbx
mov r9, r15
mov edx, 1
mov rcx, rdi
call fcn.14002d650
mov r11d, r14d
cmp r11, qword [rsp + 0x90]
jae 0x14002e0b5
mov rcx, rdi
call fcn.140019438
cmp rax, qword [r13]
jl 0x14002e0b5
movsxd rdx, dword [r12]
mov r8d, 1
mov rcx, rdi
call fcn.140019bc4
movsxd r11, dword [r12]
sub rbx, r11
mov qword [rsp + 0x58], rbx
inc r14d
add r13, 8
add r12, 4
mov byte [rsp + 0x20], 1
lea r9, [rsp + 0x58]
mov ebx, 0x200
mov r8d, ebx
lea rdx, [rsp + 0x160]
mov rcx, rdi
call fcn.14002d570
mov ecx, ebp
shl ecx, 9
add rcx, qword [rsp + 0xc0]
lea rdx, [rsp + 0x160]
sub rdx, rcx
mov r8, rbx
mov al, byte [rdx + rcx]
xor byte [rcx], al
inc rcx
sub r8, 1
jne 0x14002e0f2
inc ebp
cmp ebp, dword [rsp + 0x40]
sbb eax, eax
and ebp, eax
mov rbx, qword [rsp + 0x58]
cmp rbx, rsi
jg 0x14002e056
mov r8d, 0x64
mov r9, r8
lea edx, [r8 - 0x63]
mov rcx, rdi
call fcn.14002d650
mov r11, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
lea rdx, [rax + r11*2]
xor r8d, r8d
mov rcx, rdi
call fcn.140019bc4
mov ebp, esi
cmp dword [rsp + 0x40], esi
jbe 0x14002e19f
mov ebx, esi
mov r8d, 0x200
lea rdx, [rsp + 0x160]
mov rcx, rdi
call fcn.140019de0
mov r11d, ebx
add r11, qword [rsp + 0xc0]
lea rcx, [rsp + 0x160]
sub rcx, r11
mov edx, 0x200
mov al, byte [rcx + r11]
xor byte [r11], al
inc r11
sub rdx, 1
jne 0x14002e181
inc ebp
add ebx, 0x200
cmp ebp, dword [rsp + 0x40]
jb 0x14002e150
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140019bc4
mov rbx, r15
mov qword [rsp + 0x58], rbx
mov r13d, esi
mov r12d, esi
mov dword [rsp + 0x50], esi
or ebp, 0xffffffff
mov dword [rsp + 0x44], ebp
mov r14d, esi
mov dword [rsp + 0x4c], esi
cmp r15, rsi
jle 0x14002e511
mov r15, qword [rsp + 0xa8]
mov qword [rsp + 0xa0], r15
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x78], rax
call fcn.1400349c0
mov r11d, dword [rsp + 0x4c]
cmp r11, qword [rsp + 0x90]
jae 0x14002e24a
mov rcx, rdi
call fcn.140019438
mov rcx, qword [rsp + 0x78]
cmp rax, qword [rcx]
jl 0x14002e24a
movsxd rdx, dword [r15]
mov r8d, 1
mov rcx, rdi
call fcn.140019bc4
movsxd r11, dword [r15]
sub rbx, r11
mov qword [rsp + 0x58], rbx
inc dword [rsp + 0x4c]
add qword [rsp + 0x78], 8
add r15, 4
mov qword [rsp + 0xa0], r15
mov byte [rsp + 0x20], 1
lea r9, [rsp + 0x58]
mov ebx, 0x200
mov r8d, ebx
lea rdx, [rsp + 0x160]
mov rcx, rdi
call fcn.14002d570
mov eax, eax
mov qword [rsp + 0xd8], rax
mov r8, rax
lea rdx, [rsp + 0x160]
mov rcx, qword [rsp + 0x80]
call fcn.140019c28
mov r8, rbx
lea rdx, [rsp + 0x160]
or ecx, 0xffffffff
call fcn.140011f6c
movzx ebx, ax
mov rdx, rdi
lea rcx, [rsp + 0x120]
call fcn.140031684
nop
xor r8d, r8d
mov rdx, qword [rsp + 0x70]
mov rcx, rdi
call fcn.140019bc4
mov rcx, rdi
call fcn.140019ee0
movzx r15d, al
mov rcx, rdi
call fcn.140019ee0
movzx r11d, al
shl r11d, 8
add r15d, r11d
mov dword [rsp + 0x60], r15d
add qword [rsp + 0x70], 2
lea rcx, [rsp + 0x120]
call fcn.1400316bc
cmp r15d, ebx
jne 0x14002e31c
mov r9b, 1
lea r8, [rsp + 0x44]
mov edx, r13d
mov ecx, ebp
call fcn.14002d4ec
mov ebp, dword [rsp + 0x44]
jmp 0x14002e4e3
lea rcx, [rsp + 0x360]
lea rdx, [rsp + 0x160]
mov ebx, 0x200
mov r8, rbx
call fcn.14003d1f0
mov r12d, r14d
shl r12d, 9
add r12, qword [rsp + 0xc0]
lea rcx, [rsp + 0x160]
lea rax, [rsp + 0x160]
sub r12, rax
mov rdx, rbx
mov al, byte [r12 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14002e35e
mov r8, rbx
lea rdx, [rsp + 0x160]
or ecx, 0xffffffff
call fcn.140011f6c
movzx ecx, ax
cmp r15d, ecx
je 0x14002e478
mov ebx, 0x40
lea r15, [rsp + 0x1a0]
lea rcx, [rsp + 0x160]
lea rdx, [rsp + 0x360]
mov r8d, 0x200
call fcn.14003d1f0
cmp ebx, esi
jle 0x14002e3d1
lea rcx, [rsp + 0x160]
mov edx, ebx
mov al, byte [rcx + r12]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14002e3c2
mov r8d, 0x200
lea rdx, [rsp + 0x160]
or ecx, 0xffffffff
call fcn.140011f6c
movzx ecx, ax
cmp dword [rsp + 0x60], ecx
je 0x14002e478
lea rcx, [rsp + 0x160]
lea rdx, [rsp + 0x360]
mov r8d, 0x200
call fcn.14003d1f0
mov r8d, 0x200
cmp ebx, r8d
jae 0x14002e431
mov rcx, r15
mov edx, r8d
sub edx, ebx
mov al, byte [rcx + r12]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14002e422
lea rdx, [rsp + 0x160]
or ecx, 0xffffffff
call fcn.140011f6c
movzx ecx, ax
cmp dword [rsp + 0x60], ecx
je 0x14002e478
add ebx, 0x40
add r15, 0x40
mov eax, 0x100
cmp ebx, eax
jl 0x14002e399
mov r12d, dword [rsp + 0x50]
inc r12d
mov dword [rsp + 0x50], r12d
cmp ebp, 0xffffffff
cmove ebp, r13d
mov dword [rsp + 0x44], ebp
jmp 0x14002e4e3
mov r9b, 1
lea r8, [rsp + 0x44]
mov edx, r13d
mov ecx, ebp
call fcn.14002d4ec
lea edx, [r13 + 1]
xor r9d, r9d
lea r8, [rsp + 0x44]
mov ecx, r13d
call fcn.14002d4ec
mov rbp, qword [rsp + 0x80]
mov rcx, rbp
call fcn.140019438
mov rbx, qword [rsp + 0xd8]
sub rax, rbx
xor r8d, r8d
mov rdx, rax
mov rcx, rbp
call fcn.140019bc4
mov r8, rbx
lea rdx, [rsp + 0x160]
mov rcx, rbp
call fcn.140019c28
mov ebp, dword [rsp + 0x44]
mov r12d, dword [rsp + 0x50]
inc r13d
inc r14d
cmp r14d, dword [rsp + 0x40]
sbb eax, eax
and r14d, eax
mov rbx, qword [rsp + 0x58]
cmp rbx, rsi
mov r15, qword [rsp + 0xa0]
jg 0x14002e1f2
mov r15, qword [rsp + 0x150]
mov r9b, 1
lea r8, [rsp + 0x44]
mov edx, r13d
mov ecx, ebp
call fcn.14002d4ec
xor r8d, r8d
mov rdx, r15
mov rcx, rdi
call fcn.140019bc4
movabs r8, 0x7fffffff7fffffff
mov rdx, qword [rsp + 0x80]
mov rcx, rdi
call fcn.140019f98
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140019bc4
neg r12d
sbb ebx, ebx
cmp qword [rsp + 0xc0], rsi
je 0x14002e575
mov rcx, qword [rsp + 0xc0]
call fcn.14003ceb8
nop
cmp qword [rsp + 0xa8], rsi
je 0x14002e58d
mov rcx, qword [rsp + 0xa8]
call fcn.14003ceb8
nop
cmp qword [rsp + 0x88], rsi
je 0x14002e5a5
mov rcx, qword [rsp + 0x88]
call fcn.14003ceb8
nop
lea esi, [rbx + 2]
lea rcx, [rsp + 0x138]
call fcn.1400316bc
mov eax, esi
mov rcx, qword [rsp + 0x2560]
xor rcx, rsp
call fcn.14003d060
mov rbx, qword [rsp + 0x25c0]
add rsp, 0x2570
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret