Function at 0x140088e40
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0xc0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov esi, edx
mov r14, rcx
mov qword [rbp + 0x20], rcx
mov rax, qword [rcx]
movsxd rax, dword [rax + 4]
mov rcx, qword [rcx + rax + 0x48]
test rcx, rcx
je 0x140088e84
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14013008b.0]
mov rax, qword [r14]
movsxd rax, dword [rax + 4]
add rax, qword [0x1405a9618]
cmp dword [r14 + rax + 0x10], 0
je 0x140088eab
movzx eax, byte [0x140529c3c]
add al, 0x30
mov byte [rbp + 0x28], al
jmp 0x140088f3b
mov rcx, qword [r14 + rax + 0x50]
test rcx, rcx
sete al
cmp rcx, r14
sete dl
test al, dl
jne 0x140088f14
xor al, dl
jne 0x140088f14
mov eax, dword [0x1405a9394]
mov eax, 0xd0112bb
nop
mov edx, dword [0x1405a9394]
mov r8d, dword [0x140529c38]
add r8d, eax
cmp edx, r8d
jge 0x140088ed0
call fcn.14008d240
mov eax, dword [0x1405a9390]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140089278
jmp 0x140089218
mov byte [rbp + 0x28], 1
mov byte [rbp + 0x28], 1
mov eax, dword [0x1405a9390]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140088f10
jmp 0x140088f3b
mov eax, dword [0x1405a9394]
cmp eax, 0x51
jl 0x140088f46
mov eax, dword [0x1405a9394]
cmp eax, 0x2c
jg 0x140088f30
movzx eax, byte [rbp + 0x28]
mov ecx, dword [0x1405a9390]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140529c38]
mov r8d, ecx
xor r8d, 0xd0112a2
and ecx, 0xd0112a2
lea ecx, [r8 + rcx*2]
cmp edx, ecx
jne 0x140088f30
test al, al
mov qword [rbp + 0x18], r14
je 0x140089068
mov rax, qword [r14]
movsxd rax, dword [rax + 4]
mov rax, qword [r14 + rax + 0x40]
mov rcx, qword [rax + 8]
mov qword [rbp - 8], rcx
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14013008b.0]
lea rcx, [rbp - 0x10]
call fcn.14008cf50
mov rdi, rax
mov rbx, qword [rbp - 8]
test rbx, rbx
je 0x140089019
nop dword [rax]
mov rax, qword [rbx]
mov rax, qword [rax + 0x10]
mov rcx, rbx
call qword [case.0x14013008b.0]
mov ecx, dword [0x1405a9394]
cmp ecx, 0x21
jl 0x140088ffd
nop dword [rax + rax]
mov rax, qword [rbx]
mov rax, qword [rax + 0x10]
mov rcx, rbx
call qword [case.0x14013008b.0]
mov eax, dword [0x1405a9394]
cmp eax, 0xe
jge 0x140088fe0
jmp 0x140088fc0
test rax, rax
je 0x140089019
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x14013008b.0]
mov rax, qword [r14]
movsxd rax, dword [rax + 4]
lea r9, [r14 + rax]
movzx ecx, word [r14 + rax + 0x58]
mov rax, qword [r14 + rax + 0x48]
mov byte [rbp - 0x20], 0
mov qword [rbp - 0x18], rax
mov rax, qword [rdi]
mov rax, qword [rax + 0x48]
mov r10, qword [case.0x14013008b.0]
mov dword [rsp + 0x28], esi
mov word [rsp + 0x20], cx
lea rdx, [rbp - 0x40]
lea r8, [rbp - 0x20]
mov rcx, rdi
call r10
movzx eax, byte [rbp - 0x40]
shl eax, 2
mov dword [rbp + 0x34], eax
jmp 0x14008906f
mov dword [rbp + 0x34], 0
mov rsi, qword [rbp + 0x18]
mov rax, qword [rsi]
movsxd rax, dword [rax + 4]
xor ecx, ecx
cmp qword [rsi + rax + 0x48], 0
sete cl
mov edx, dword [0x140529c38]
mov r8d, edx
xor r8d, 0xd0112b9
and edx, 0xd0112b9
lea edx, [r8 + rdx*2]
and edx, dword [rsi + rax + 0x10]
shl ecx, 2
mov r8d, dword [rbp + 0x34]
mov edi, r8d
xor edi, r8d
not edi
and edi, edx
and edx, r8d
xor edi, r8d
or edi, edx
or edi, ecx
mov dword [rsi + rax + 0x10], edi
and edi, dword [rsi + rax + 0x14]
jne 0x14008917c
mov eax, dword [0x140529c38]
lea ecx, [rax - 0x3de4e692]
lea edx, [rax - 0x2913ef6]
mov r8d, eax
xor r8d, 0x3409afa6
and eax, 0x3409afa6
lea r8d, [r8 + rax*2]
call fcn.1400ab840
test al, al
jne 0x140089103
mov rcx, qword [rbp + 0x20]
call fcn.1400932b0
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rax + rcx + 0x48]
test rcx, rcx
je 0x140089148
mov al, 1
cmp byte [0x1405a9620], 0
je 0x14008913b
nop word cs:[rax + rax]
test al, al
cmp byte [0x1405a9620], 0
jne 0x140089130
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14013008b.0]
mov eax, dword [0x1405a9394]
cmp eax, 0x3f
nop word cs:[rax + rax]
mov eax, dword [0x1405a9394]
cmp eax, 0x5f
jg 0x140089160
mov rax, rsi
add rsp, 0xc0
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
mov ebx, edi
xor ebx, 0xfffffffb
mov ecx, 1
xor edx, edx
mov r8d, 0x80c4a91f
mov r9d, 0x32381e18
call fcn.1400a9920
mov rsi, rax
xor ecx, ecx
mov edx, 1
mov r8d, 0x8e185f7a
mov r9d, 0xb062074e
call fcn.1400a9460
test dil, 2
cmove rsi, rax
mov ecx, 1
mov edx, 0x5aaedcc2
mov r8d, 0xd4e2f0b4
call fcn.1400a8e50
test ebx, edi
cmovne rsi, rax
lea rcx, [rbp - 0x50]
mov edx, 1
call fcn.140089c50
movups xmm0, xmmword [rbp - 0x50]
movaps xmmword [rbp - 0x30], xmm0
lea rcx, [rbp - 0x10]
lea rdx, [rbp - 0x30]
mov r8, rsi
call fcn.14008a390
mov eax, dword [0x1405a9390]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
je 0x1400892e5
jmp 0x140089308
mov rax, qword [r14]
movsxd rax, dword [rax + 4]
cmp dword [r14 + rax + 0x10], 0
sete al
movzx ecx, byte [0x1405a9400]
add cl, 0x57
mov edx, ecx
xor dl, al
and cl, al
add cl, cl
add cl, dl
add cl, 0xa9
mov byte [rbp + 0x28], cl
mov eax, dword [0x140529c38]
mov ecx, eax
xor ecx, 0xfe05abc0
and eax, 0x7e05abc0
lea eax, [rcx + rax*2]
add eax, 0xefb66e3
lea rcx, [fcn.140088e40]
add ecx, ecx
add ecx, 0x1c00
xor eax, ecx
not eax
test eax, ecx
je 0x140088f3b
mov r8d, 0xd0112a4
nop
mov rax, qword [r14]
movsxd rax, dword [rax + 4]
cmp dword [r14 + rax + 0x10], 0
sete cl
mov edx, ecx
sub dl, byte [0x1405a9400]
shl dl, cl
mov eax, ecx
neg al
mov r9d, edx
xor r9b, al
and al, dl
add al, al
add al, r9b
mul cl
mov r9d, edx
mov ecx, eax
shl r9b, cl
sub dl, r9b
mov eax, edx
mul r9b
add al, r9b
mov byte [rbp + 0x28], al
mov ecx, dword [0x1405a9390]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140529c38]
add ecx, r8d
xor edx, edx
div ecx
test edx, edx
jne 0x140089280
jmp 0x140089218
lea rax, [0x1404637e8]
mov qword [rbp - 0x10], rax
mov eax, dword [0x1405a9390]
mov ecx, dword [0x140529c38]
add ecx, eax
inc ecx
imul ecx, eax
test cl, 1
je 0x140089315
lea rax, [0x1404637e8]
mov qword [rbp - 0x10], rax
jmp 0x1400892e5
lea rdx, [0x1404be728]
lea rcx, [rbp - 0x10]
call fcn.140446bcc
int3