Function at 0x14002d990
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push r15
mov dword [rsp - 0x40], 0x7b27c478
sub rsp, 0x20
mov rsi, rcx
mov qword [rsp + 0x48], rdi
mov rcx, qword [rcx + 0x168]
mov dword [rsp - 0x38], edi
xor r15d, r15d
test rcx, rcx
je 0x14002d9df
dec dword [rcx + 8]
mov dword [rsp - 0x34], esp
cmp dword [rcx + 8], r15d
jg 0x14002d9d5
mov rax, qword [rcx]
xchg r13, r13
lea edx, [r15 + 1]
call qword [rax]
mov qword [rsi + 0x168], r15
xchg r14, r14
mov r8, qword [rsi + 0x28]
test r8, r8
je 0x14002da2e
mov rax, qword [0x1400a3470]
xchg r15, r15
mov edx, 0x370c0866
add edx, 0xa46afff
add edx, 0x4573362
xor edx, 0x18539a40
mov rdi, rdi
xor edx, 0x1d198db3
xor edx, 0xe9e473d
xor edx, 0xb18244f5
xor rax, qword [0x1400a2a90]
mov rbx, rbx
mov rcx, qword [rsi + 0x30]
call rax
mov rax, qword [0x1400a2d50]
mov r12, r12
lea rcx, [rsi + 0x140]
xor rax, qword [0x1400a2a90]
mov qword [rsp + 0x40], rbp
call rax
mov dword [rsp - 0x20], esp
mov rax, qword [rsi + 0xb8]
mov rbx, qword [rsi + 0xb0]
test rax, rax
je 0x14002dac6
mov dword [rsp - 0x30], ebp
lea rbp, [rbx + rax*8]
cmp rbx, rbp
je 0x14002dac6
mov rcx, qword [rbx]
mov dword [rsp - 0x24], 0x5f44e4b0
test rcx, rcx
je 0x14002daba
mov rax, qword [rcx]
mov dword [rsp - 0x40], edx
mov edx, 0x1dcb3a85
sub edx, 0x103c5560
add edx, 0x179e6f88
mov dword [rsp - 0x40], esi
sub edx, 0x2193d68b
add edx, 0x4f358a85
add edx, 0x2a95d909
mov rcx, rcx
sub edx, 0x7d64e1af
call qword [rax]
add rbx, 8
xchg r12, r12
cmp rbx, rbp
jne 0x14002da71
mov rax, qword [rsi + 0x108]
mov rbx, qword [rsi + 0x100]
mov dword [rsp - 0xc], ecx
mov qword [rsp + 0x50], r14
test rax, rax
je 0x14002db5c
mov dword [rsp - 0x34], 0x6416a12c
lea r14, [rbx + rax*8]
cmp rbx, r14
je 0x14002db5c
mov dword [rsp - 0x44], ebp
nop
mov rbp, qword [rbx]
test rbp, rbp
je 0x14002db4f
xchg r11, r11
mov rcx, rbp
call fcn.14004d770
mov edx, 0x3f9e0494
mov dword [rsp - 0x28], 0x239361f3
xor edx, 0x13b34331
xor edx, 0x29c146fb
add edx, 0x29c3f211
add edx, 0x44651577
xchg rdx, rdx
sub edx, 0x70dffc7d
sub edx, 0x334f151
mov rcx, rbp
call fcn.140072210
mov dword [rsp - 0x30], 0x7b2fa178
add rbx, 8
cmp rbx, r14
jne 0x14002daf8
mov dword [rsp - 0x28], ebp
mov rcx, qword [rsi + 0xa8]
test rcx, rcx
je 0x14002dba1
mov rax, qword [rcx]
mov r15, r15
mov edx, 0x18929da1
add edx, 0x31324f63
xor edx, 0x55e18ebc
add edx, 0x25eb09ed
mov dword [rsp - 0x18], ebx
sub edx, 0x36e504c5
xor edx, 0x48547263
sub edx, 0x437f1a82
call qword [rax]
mov dword [rsp - 0x28], esi
cmp dword [rsi + 0x20], 1
jne 0x14002dcf4
cmp qword [rsi + 0x98], r15
je 0x14002dcf4
mov dword [rsp - 0x38], ecx
lea r14, [rsi + 0x90]
mov rbp, qword [r14 + 8]
cmp rbp, 4
jbe 0x14002dbd3
xchg rbx, rbx
mov r14, qword [r14]
lea rcx, [rbp + 1]
mov eax, 0x19e3d4e2
add eax, 0x33b34d4f
xchg r11, r11
sub eax, 0x3660bd5b
sub eax, 0x10704ec2
xor eax, 0x1236fd15
sub eax, 0xcfa34c9
mov dword [rsp - 0x28], ecx
sub eax, 0x7f6b636
mul rcx
pushf
movabs rcx, 0xffffffff1d608159
xchg rdi, rdi
xor rcx, 0x257652bf
sub rcx, 0x21ed066c
sub rcx, 0x8b398a2
xor rcx, 0x67d9be3f
mov rdx, rdx
add rcx, 0x7fffffff
xor rcx, 0x15507519
popf
xchg rsp, rsp
cmovo rax, rcx
mov rcx, rax
call fcn.140072200
mov rbx, rax
mov r12, r12
mov r8, r15
test rbp, rbp
je 0x14002dcc9
mov dword [rsp - 0x14], esp
mov rdx, rax
sub r14, rax
nop word [rax + rax]
movzx ecx, r8b
mov rbx, rbx
lea rdx, [rdx + 2]
and cl, 3
mov eax, 0x4efd9fbf
xchg r9, r9
add eax, 0x200c21bb
sub eax, 0x60e42bdf
add eax, 0xd651cd1
xor eax, 0x2f7813d
mov r11, r11
add eax, 0x37a42b14
shl cl, 3
inc r8
mov dword [rsp - 0x2c], edx
sar eax, cl
movsx eax, al
xor ax, word [r14 + rdx - 2]
xchg r13, r13
mov word [rdx - 2], ax
cmp r8, rbp
jb 0x14002dc72
mov dword [rsp - 0x10], edx
mov word [rbx + rbp*2], r15w
mov rcx, rbx
mov rax, qword [0x1400a3160]
xor rax, qword [0x1400a2a90]
xchg rbx, rbx
mov rdx, qword [rsi + 0x38]
call rax
mov rcx, rbx
call fcn.140072210
mov dword [rsp - 0x3c], ebx
mov rax, qword [0x1400a2d60]
lea rcx, [rsi + 0x140]
xor rax, qword [0x1400a2a90]
call rax
xchg r13, r13
mov rcx, qword [rsi + 0x170]
mov r14, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x40]
mov dword [rsp - 0x2c], 0x1cee1609
test rcx, rcx
je 0x14002dd62
mov rax, qword [rcx]
mov edx, 0x676cf627
mov dword [rsp - 0x3c], esp
xor edx, 0x2de47012
xor edx, 0x2cab6a3c
add edx, 0xcdfb990
sub edx, 0x2cd6f9c2
mov rdx, rdx
xor edx, 0x5f846630
sub edx, 0x19a8cde6
call qword [rax + 0x10]
mov rax, qword [0x1400a2d40]
mov r12, r12
lea rcx, [rsi + 0x140]
xor rax, qword [0x1400a2a90]
call rax
mov rcx, qword [rsi + 0x100]
xchg r11, r11
mov rdi, qword [rsp + 0x48]
test rcx, rcx
je 0x14002dda4
call fcn.140072210
mov dword [rsp - 0xc], 0x555e0f4d
mov qword [rsi + 0x100], r15
cmp qword [rsi + 0xf8], 4
jbe 0x14002ddbe
mov dword [rsp - 0xc], ebx
mov rcx, qword [rsi + 0xf0]
call fcn.140072210
cmp qword [rsi + 0xe8], 4
mov dword [rsp - 0x20], 0x3053d0e2
jbe 0x14002dddc
mov rcx, qword [rsi + 0xe0]
call fcn.140072210
cmp qword [rsi + 0xd8], 4
mov dword [rsp - 0x2c], edi
jbe 0x14002ddf6
mov rcx, qword [rsi + 0xd0]
call fcn.140072210
mov rcx, qword [rsi + 0xb0]
xchg r14, r14
test rcx, rcx
je 0x14002de15
call fcn.140072210
mov qword [rsi + 0xb0], r15
mov dword [rsp - 0x1c], edx
cmp qword [rsi + 0x98], 4
jbe 0x14002de2e
mov rcx, qword [rsi + 0x90]
mov rdi, rdi
call fcn.140072210
mov rcx, qword [rsi]
test rcx, rcx
je 0x14002debb
mov dword [rsp - 0x20], ebx
mov rbx, r15
cmp qword [rsi + 8], rbx
jbe 0x14002deb3
mov dword [rsp - 0x14], 0x6ad5187a
nop dword [rax + rax]
mov r8, qword [rcx + rbx*8]
test r8, r8
xchg r8, r8
je 0x14002dea2
mov rax, qword [r8]
mov edx, 0x35db88e4
xor edx, 0x168fbae4
mov dword [rsp - 0x44], 0x39e1262c
add edx, 0x1a4a98cf
xor edx, 0x2601973
sub edx, 0x1f10ee04
mov dword [rsp - 0x40], 0x2414c867
sub edx, 0x20ede5b7
mov rcx, r8
call qword [rax + 0x10]
mov rcx, qword [rsi]
xchg r9, r9
inc rbx
cmp rbx, qword [rsi + 8]
jb 0x14002de54
mov dword [rsp - 0x18], 0x159d5a83
call fcn.140072210
mov qword [rsi], r15
add rsp, 0x20
pop r15
mov r11, r11
pop rsi
pop rbx
ret