Function at 0x14007fda0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rax - 0x68], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
je 0x140080291
lea eax, [r9 - 0x10]
test eax, 0xffffffe7
jne 0x140080258
cmp r9d, 0x28
je 0x140080258
movsxd rcx, dword [rsp + 0xb0]
lea eax, [rcx - 0x10]
test eax, 0xffffffe7
jne 0x14008021f
cmp ecx, 0x28
je 0x14008021f
mov dword [rbx + 0x3cc], r9d
mov dword [rbx + 0x3d0], ecx
mov r8, rcx
lea rcx, [rbx + 0x3d8]
mov rdx, rdi
call fcn.1400458e0
movsxd r8, dword [rbx + 0x3d0]
lea rcx, [rbx + 0x3f8]
mov rdx, rdi
call fcn.1400458e0
mov eax, dword [rbx + 0x3cc]
mov ecx, dword [rbx + 0x3d0]
cmp eax, 0x10
je 0x14007fe6b
cmp eax, 0x18
mov eax, select
jne 0x14007fe85
mov edx, ntohs
cmp ecx, 0x20
cmovne eax, edx
jmp 0x14007fe85
cmp ecx, 0x10
jne 0x14007fe75
lea eax, [rcx - 6]
jmp 0x14007fe85
mov eax, select
mov edx, ntohs
cmp ecx, 0x18
cmove eax, edx
mov dword [rbx + 0x3d4], eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r15, eax
xor edx, edx
mov r14, r15
lea r8, [rbx + 0xc]
test r15d, r15d
jle 0x14007feb1
mov rdi, r8
xor eax, eax
mov rcx, r15
rep stosd dword [rdi], eax
inc edx
add r8, 0x20
mov eax, dword [rbx + 0x3d4]
cmp edx, eax
jle 0x14007fea2
xor r8d, r8d
test eax, eax
js 0x14007fef1
lea rdx, [rbx + 0x1ec]
nop
test r15d, r15d
jle 0x14007fedf
mov rdi, rdx
xor eax, eax
mov rcx, r15
rep stosd dword [rdi], eax
inc r8d
add rdx, 0x20
mov eax, dword [rbx + 0x3d4]
cmp r8d, eax
jle 0x14007fed0
lea ebp, [rax + 1]
imul ebp, r15d
mov eax, dword [rbx + 0x3cc]
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r13, eax
lea rdx, [rbx + 0x418]
test eax, eax
jle 0x14007ff54
mov edi, r13d
nop dword [rax + rax]
movzx ecx, byte [rsi]
shl ecx, 0x18
mov dword [rdx], ecx
movzx eax, byte [rsi + 1]
shl eax, 0x10
or eax, ecx
mov dword [rdx], eax
movzx ecx, byte [rsi + 2]
shl ecx, 8
or ecx, eax
mov dword [rdx], ecx
movzx eax, byte [rsi + 3]
or eax, ecx
mov dword [rdx], eax
lea rsi, [rsi + 4]
lea rdx, [rdx + 4]
sub rdi, 1
jne 0x14007ff20
xor r9d, r9d
lea rsi, [0x140000000]
test r13d, r13d
jle 0x14007ffb9
xor r10d, r10d
lea r8, [rbx + 0x418]
nop dword [rax]
cmp r9d, ebp
jge 0x140080178
mov eax, r9d
cdq
idiv r15d
movsxd rdi, edx
movsxd rcx, eax
lea rdx, [rdi + rcx*8]
mov ecx, dword [r8]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [rdi + rax*8]
mov eax, dword [r8]
mov dword [rbx + rcx*4 + 0x1ec], eax
inc r10
add r8, 4
inc r9d
cmp r10, r13
jl 0x14007ff70
cmp r9d, ebp
jge 0x140080178
lea rsi, [0x14008c4a0]
lea r14, [0x140000000]
mov edi, dword [rbx + r13*4 + 0x414]
movsxd rdx, edi
mov rax, rdx
sar rax, 0x10
movzx ecx, al
movsx r8d, byte [rcx + r14 + 0x892a0]
movsx eax, byte [rsi]
xor r8d, eax
shl r8d, 8
mov rax, rdx
sar rax, 8
movzx ecx, al
movzx eax, byte [rcx + r14 + 0x892a0]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + r14 + 0x892a0]
xor r8d, eax
shl r8d, 8
mov eax, edi
shr rax, 0x18
movzx eax, byte [rax + r14 + 0x892a0]
xor r8d, eax
xor dword [rbx + 0x418], r8d
lea rsi, [rsi + 1]
cmp r13d, 8
je 0x140080074
cmp r13, 1
jle 0x14008010f
lea rcx, [rbx + 0x41c]
lea rdx, [r13 - 1]
nop dword [rax]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x140080060
jmp 0x14008010f
lea rcx, [rbx + 0x41c]
mov edx, 3
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x140080080
mov eax, dword [rbx + 0x424]
movsxd rdx, eax
mov ecx, eax
shr rcx, 0x18
movsx edi, byte [rcx + r14 + 0x892a0]
shl edi, 8
mov rax, rdx
sar rax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r14 + 0x892a0]
xor edi, eax
shl edi, 8
mov rax, rdx
sar rax, 8
movzx ecx, al
movzx eax, byte [rcx + r14 + 0x892a0]
xor edi, eax
shl edi, 8
movzx eax, dl
movzx eax, byte [rax + r14 + 0x892a0]
xor edi, eax
xor dword [rbx + 0x428], edi
cmp r13, 5
jle 0x14008010f
lea rax, [rbx + 0x42c]
lea rdx, [r13 - 5]
nop
mov ecx, dword [rax - 4]
xor dword [rax], ecx
lea rax, [rax + 4]
sub rdx, 1
jne 0x140080100
xor r10d, r10d
test r13d, r13d
jle 0x140080165
lea r8, [rbx + 0x418]
nop
cmp r9d, ebp
jge 0x14008016e
mov eax, r9d
cdq
idiv r15d
movsxd rdi, edx
movsxd rcx, eax
lea rdx, [rdi + rcx*8]
mov ecx, dword [r8]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [rdi + rax*8]
mov eax, dword [r8]
mov dword [rbx + rcx*4 + 0x1ec], eax
inc r10
add r8, 4
inc r9d
cmp r10, r13
jl 0x140080120
cmp r9d, ebp
jl 0x14007ffd0
mov r14, r15
lea rsi, [0x140000000]
mov r10d, 1
cmp dword [rbx + 0x3d4], r10d
jle 0x1400801fd
lea r11, [rbx + 0x20c]
nop
test r14, r14
jle 0x1400801ed
mov r8, r11
mov r9, r14
nop dword [rax + rax]
mov eax, dword [r8]
movsxd rdi, eax
mov edx, eax
shr rdx, 0x18
mov rax, rdi
sar rax, 0x10
movzx ecx, al
mov edx, dword [rsi + rdx*4 + 0x8b4a0]
xor edx, dword [rsi + rcx*4 + 0x8b8a0]
mov rax, rdi
sar rax, 8
movzx ecx, al
xor edx, dword [rsi + rcx*4 + 0x8bca0]
movzx eax, dil
xor edx, dword [rsi + rax*4 + 0x8c0a0]
mov dword [r8], edx
lea r8, [r8 + 4]
sub r9, 1
jne 0x1400801a0
inc r10d
add r11, 0x20
cmp r10d, dword [rbx + 0x3d4]
jl 0x140080190
mov byte [rbx + 8], 1
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rdx, [0x14008c648]
lea rcx, [rsp + 0x40]
call fcn.140071760
nop
mov rcx, rax
call fcn.140017d50
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.14001a7f0
lea rdx, [0x1400ad1b0]
lea rcx, [rsp + 0x28]
call fcn.1400460dc
nop
lea rdx, [0x14008c618]
lea rcx, [rsp + 0x40]
call fcn.140071760
nop
mov rcx, rax
call fcn.140017d50
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.14001a7f0
lea rdx, [0x1400ad1b0]
lea rcx, [rsp + 0x28]
call fcn.1400460dc
nop
lea rdx, [0x14008c600]
lea rcx, [rsp + 0x40]
call fcn.140071760
nop
mov rcx, rax
call fcn.140017d50
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.14001a7f0
lea rdx, [0x1400ad1b0]
lea rcx, [rsp + 0x28]
call fcn.1400460dc
int3