Function at 0x14002346c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
movaps xmmword [rax - 0x38], xmm7
mov rax, qword [0x140090120]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov r13, qword [0x140092e58]
mov rbx, rcx
mov qword [rbp - 0x29], r13
mov eax, dword [r13 + 0x1b70]
and byte [rcx + 0xbd], 0xfb
and qword [rcx + 0x98], 0
and qword [rcx + 0x90], 0
mov dword [rcx + 0xa0], eax
call fcn.14000efdc
test al, al
je 0x1400234e1
call fcn.14002337c
cmp qword [rbx + 0x38], 0
je 0x1400234f9
mov rcx, rbx
call fcn.14000f020
test al, al
je 0x1400234f9
call fcn.1400247f4
lea r14, [rbx + 0x28]
mov r12d, 1
mov esi, dword [r14]
cmp esi, r12d
jg 0x14002365c
mov rcx, rbx
call fcn.14000eff4
test al, al
je 0x14002365c
call fcn.14000f038
test al, al
je 0x14002365c
cmp byte [r13 + 0xca], 0
jne 0x14002365c
test esi, esi
je 0x140023603
xor edx, edx
mov rcx, r14
call fcn.140027b00
mov rcx, qword [rax]
cmp byte [rcx + 0x30], 0
jne 0x14002365c
cmp esi, r12d
jne 0x140023603
xor edx, edx
mov rcx, r14
call fcn.140027b00
mov rcx, qword [rbx + 0x80]
mov rdi, qword [rax]
mov eax, dword [rbx + 0xb8]
and eax, 0xfffffebf
bts eax, 7
movsd xmm0, qword [rdi + 0x50]
and eax, 0xffffffd7
or eax, 0x10
movsd qword [rbx + 0x40], xmm0
movsd xmm1, qword [rdi + 0x60]
and eax, 0xfffffffa
or eax, 2
movsd qword [rbx + 0x48], xmm1
mov dword [rbx + 0xb8], eax
mov rax, rcx
test rcx, rcx
je 0x1400235cb
cmp qword [r13 + 0x1e08], rcx
jne 0x1400235d0
mov rcx, rdi
call fcn.14001a580
mov rax, qword [rbx + 0x80]
test rax, rax
je 0x140023603
mov rdx, qword [rax + 0x38]
mov qword [rdi + 0x38], rdx
mov rax, qword [rbx + 0x80]
mov ecx, dword [rax + 0x40]
mov dword [rdi + 0x40], ecx
mov rax, qword [rbx + 0x80]
cmp byte [rax + 0xce], 0
je 0x140023603
mov qword [rdx + 0x98], rdi
mov byte [rdi + 0xce], r12b
mov rcx, rbx
call fcn.140022fb0
mov al, byte [rbx + 0xbc]
and dword [rbx + 0xb4], 0
and al, 0xdf
and al, 0xe3
mov dword [rbx + 0xc], r12d
mov byte [rbx + 0xbc], al
mov eax, dword [r13 + 0x1b70]
mov dword [rbx + 0xa4], eax
jge 0x140023d35
cmp dword [r14], r12d
jne 0x140023d35
xor edx, edx
mov rcx, r14
call fcn.140027b00
mov rcx, rbx
mov rdx, qword [rax]
call fcn.140023318
jmp 0x140023d35
mov r11b, byte [rbx + 0xbc]
test r12b, r11b
je 0x1400236c6
cmp qword [rbx + 0x80], 0
jne 0x1400236c6
mov rcx, rbx
call fcn.14000eff4
test al, al
je 0x1400236c6
call fcn.14000f038
test al, al
je 0x1400236c6
mov edx, dword [rbx + 0xb0]
test edx, edx
je 0x14002369b
call fcn.140023090
test rax, rax
jne 0x1400236a8
xor edx, edx
mov rcx, r14
call fcn.140027b00
mov rax, qword [rax]
cmp byte [rax + 0xe4], 0
jg 0x1400236ba
cmp byte [rax + 0xe5], 0
jle 0x1400236c6
mov dword [rbx + 0xc], 2
jmp 0x140023d35
mov rcx, rbx
call fcn.14000f054
xor edi, edi
mov r15d, eax
mov byte [rbp - 0x58], dil
and r11b, 0xef
call fcn.14000efe8
xorps xmm7, xmm7
test al, al
je 0x14002371f
mov rdi, qword [rbx + 0x80]
mov eax, r15d
shr eax, 0xf
shl al, 2
not al
xor al, r11b
and al, 4
xor r11b, al
mov eax, r15d
shr eax, 0xe
shl al, 3
not al
xor al, r11b
and al, 8
xor al, r11b
mov byte [rbx + 0xbc], al
jmp 0x14002396d
test esi, esi
jle 0x14002372e
bt r15d, 0xf
jb 0x14002372e
mov cl, 4
jmp 0x140023730
xor cl, cl
and r11b, 0xfb
or r11b, cl
test esi, esi
jle 0x140023746
bt r15d, 0xe
jb 0x140023746
mov al, 8
jmp 0x140023748
xor al, al
and r11b, 0xf7
xor r8d, r8d
or r11b, al
mov byte [rbx + 0xbc], r11b
test esi, esi
jle 0x1400237ae
mov edx, r8d
mov rcx, r14
call fcn.140027b00
cmp dword [r14], r12d
setg cl
add r8d, r12d
mov rdx, qword [rax]
mov al, byte [rdx + 0x431]
mov r11b, byte [rdx + 0xd8]
and al, 0xfe
shl r11b, 4
or cl, al
mov byte [rdx + 0x431], cl
mov al, byte [rbx + 0xbc]
or r11b, al
xor r11b, al
and r11b, 0x10
xor r11b, al
mov byte [rbx + 0xbc], r11b
cmp r8d, dword [r14]
jl 0x14002375d
mov rcx, rbx
call fcn.14000efdc
test al, al
je 0x140023933
test r12b, r11b
je 0x140023933
cmp dword [r14], edi
jle 0x1400237db
xor edx, edx
mov rcx, r14
call fcn.140027b00
mov r10, qword [rax]
jmp 0x1400237de
xor r10d, r10d
mov eax, dword [rbx + 0xb8]
shl eax, 0x1d
sar eax, 0x1d
cmp eax, 2
jne 0x140023809
test r10, r10
je 0x14002382b
movaps xmm2, xmm7
lea rcx, [rbp - 0x49]
movaps xmm1, xmm7
call fcn.14000ae58
lea rcx, [r10 + 0x50]
jmp 0x140023821
cmp eax, r12d
jne 0x14002382b
movaps xmm2, xmm7
lea rcx, [rbp - 0x49]
movaps xmm1, xmm7
call fcn.14000ae58
lea rcx, [rbx + 0x40]
mov r8, rax
xor edx, edx
call fcn.14001abcc
mov eax, dword [rbx + 0xb8]
shl eax, 0x1a
sar eax, 0x1d
cmp eax, 2
jne 0x140023847
test r10, r10
je 0x140023857
lea rcx, [r10 + 0x60]
jmp 0x140023850
cmp eax, r12d
jne 0x140023857
lea rcx, [rbx + 0x48]
xor edx, edx
call fcn.14001ac10
mov ecx, dword [rbx + 0xb8]
mov eax, ecx
and al, 0x38
cmp al, 0x10
jne 0x14002387c
test r10, r10
je 0x14002387c
mov cl, byte [r10 + 0xd2]
call fcn.14001ac84
mov ecx, dword [rbx + 0xb8]
and ecx, 0x1c0
cmp ecx, 0x80
jne 0x140023898
test r10, r10
je 0x140023898
mov ecx, dword [r10 + 0x40]
call fcn.14001acbc
lea rcx, [rbx + 0x5c]
call fcn.14001acd4
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.140021c54
movaps xmm2, xmm7
lea rcx, [rbp - 0x49]
movaps xmm1, xmm7
call fcn.14000ae58
mov rdx, rax
mov ecx, r12d
call fcn.140011520
xor edx, edx
lea rcx, [rbp - 1]
mov r8d, 0x20081139
call fcn.1400184dc
mov ecx, r12d
call fcn.14001158c
mov rdi, qword [r13 + 0x1bf0]
mov qword [rbx + 0x80], rdi
mov byte [rbp - 0x58], r12b
movsd xmm0, qword [rdi + 0x50]
movsd qword [rdi + 0x118], xmm0
mov qword [rdi + 0x458], rbx
mov rcx, qword [rbx + 0x80]
movsd qword [rbx + 0x40], xmm0
movsd xmm0, qword [rdi + 0x58]
movsd qword [rbx + 0x48], xmm0
cmp byte [rcx + 0xd5], 0
je 0x14002392a
call fcn.14001a4e0
mov r11b, byte [rbx + 0xbc]
jmp 0x14002394a
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x140023954
mov rdi, qword [rax + 0x80]
mov qword [rbx + 0x80], rdi
and dword [rbx + 0xb8], 0xfffffe00
test r11b, r11b
jns 0x14002396d
mov rdx, qword [rbx + 0x80]
test rdx, rdx
je 0x14002396d
mov rcx, rbx
call fcn.140023318
mov rcx, rbx
call fcn.14000efdc
test al, al
je 0x1400239a9
mov rax, qword [r13 + 0x1e08]
test rax, rax
je 0x1400239a9
mov rcx, qword [rax + 0x3e0]
mov rax, qword [rcx + 0x450]
test rax, rax
je 0x1400239a9
cmp qword [rcx + 0x3d0], rdi
jne 0x1400239a9
mov eax, dword [rax]
mov dword [rbx + 0xac], eax
mov rcx, rbx
call fcn.14000efdc
test al, al
je 0x1400239e3
test rdi, rdi
je 0x1400239e3
mov esi, r15d
and esi, 8
je 0x1400239e3
mov rcx, qword [rdi + 0x300]
mov byte [rbp - 0x59], r12b
call fcn.14000e574
mov rcx, qword [rdi + 0x300]
mov edx, r12d
call fcn.14000e590
jmp 0x1400239ed
mov esi, r15d
mov byte [rbp - 0x59], 0
and esi, 8
mov r13, qword [rbx + 0x90]
mov rcx, rbx
call fcn.14000efdc
test al, al
je 0x140023aed
test rdi, rdi
je 0x140023aed
test esi, esi
je 0x140023aed
test r13, r13
je 0x140023aed
mov rcx, r13
call fcn.14000f044
test al, al
je 0x140023aed
call fcn.14001f70c
mov r15, rax
test rax, rax
je 0x140023a5d
mov rcx, rax
call fcn.14000e350
test al, al
je 0x140023a5d
mov rdx, qword [r15]
mov rcx, rdi
mov rdx, qword [rdx]
call fcn.140024888
test al, al
jne 0x140023af0
lea rdx, [r13 + 0x40]
lea r8, [r13 + 0x48]
lea rcx, [rbp - 0x49]
call fcn.14000e7b0
mov r8, rax
lea rcx, [rbp - 0x39]
call fcn.14000ea88
movss xmm1, dword [0x14008834c]
lea rcx, [rbp - 0x49]
movaps xmm2, xmm1
call fcn.14000ae58
mov rdx, rax
lea rcx, [rbp - 0x39]
call fcn.14000eccc
lea rcx, [rbp - 0x39]
call fcn.14000edf0
test al, al
jne 0x140023af0
lea r8, [rbp - 0x39]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x49]
call fcn.14000e7d8
mov r8, rax
lea rdx, [rbp - 0x39]
mov rcx, rdi
call fcn.14001ab7c
lea r8, [rbp - 0x39]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x49]
call fcn.14000e7d8
mov rcx, qword [rdi + 0x3d0]
lea rdx, [rbp - 0x39]
mov r8, rax
call fcn.14001ab7c
jmp 0x140023af0
xor r12b, r12b
mov rcx, rbx
call fcn.14000efdc
mov r15d, 0xf
test rdi, rdi
je 0x140023b7a
test al, al
je 0x140023b1f
mov r8, qword [rdi + 0x58]
xor r9d, r9d
mov rdx, qword [rdi + 0x50]
call fcn.140025b7c
mov rcx, rbx
call fcn.140025f4c
mov rcx, rbx
call fcn.14000f044
test al, al
je 0x140023b7a
test byte [rbx + 0xbc], 1
je 0x140023b7a
test esi, esi
jne 0x140023b7a
movss xmm1, dword [0x14008820c]
lea ecx, [rsi + 0x27]
call fcn.1400112d8
lea r8, [rbx + 0x48]
mov r9d, eax
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x49]
call fcn.14000e7b0
mov rcx, qword [rdi + 0x300]
lea rdx, [rbx + 0x40]
mov r8, rax
mov dword [rsp + 0x28], r15d
movss dword [rsp + 0x20], xmm7
call fcn.140030fd8
cmp byte [rbp - 0x59], 0
je 0x140023c4d
test byte [rbx + 0xbc], 1
je 0x140023c4d
mov rcx, qword [rdi + 0x300]
xor edx, edx
call fcn.14000e590
test r12b, r12b
je 0x140023bfd
lea rdx, [rbp - 0x21]
mov rcx, r13
call fcn.14000f05c
lea rdx, [rbp - 0x11]
mov rcx, rbx
movups xmm0, xmmword [rax]
movdqu xmmword [rbp - 0x39], xmm0
call fcn.14000f05c
movss xmm1, dword [0x14008820c]
mov ecx, 2
movups xmm0, xmmword [rax]
movdqu xmmword [rbp - 0x49], xmm0
call fcn.1400112d8
mov rcx, qword [rdi + 0x300]
lea r8, [rbp - 0x39]
mov r9d, eax
movss dword [rsp + 0x20], xmm7
lea rdx, [rbp - 0x49]
call fcn.140034f14
jmp 0x140023c41
movss xmm1, dword [0x14008820c]
mov ecx, 2
call fcn.1400112d8
lea r8, [rbx + 0x48]
mov r9d, eax
lea rdx, [rbx + 0x40]
lea rcx, [rbp - 0x49]
call fcn.14000e7b0
mov rcx, qword [rdi + 0x300]
lea rdx, [rbx + 0x40]
mov r8, rax
mov dword [rsp + 0x28], r15d
movss dword [rsp + 0x20], xmm7
call fcn.140030fd8
mov rcx, qword [rdi + 0x300]
call fcn.14000e580
test rdi, rdi
je 0x140023c65
cmp dword [r14], 0
jle 0x140023c65
mov rdx, rdi
mov rcx, rbx
call fcn.140023f00
jmp 0x140023c7c
mov al, byte [rbx + 0xbc]
and dword [rbx + 0xb4], 0
and al, 0xdf
and al, 0xfd
mov byte [rbx + 0xbc], al
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x140023c8c
mov eax, dword [rax + 0x18]
test eax, eax
jne 0x140023ca2
cmp dword [r14], 0
jle 0x140023ca8
xor edx, edx
mov rcx, r14
call fcn.140027b00
mov rcx, qword [rax]
mov eax, dword [rcx + 8]
mov dword [rbx + 0xb0], eax
test rdi, rdi
je 0x140023ce5
test byte [rbx + 0xbc], 1
je 0x140023ce5
mov rcx, rbx
call fcn.14000efdc
mov rsi, qword [rbp - 0x29]
test al, al
je 0x140023ce9
mov rax, qword [rsi + 0x1c18]
test rax, rax
je 0x140023cdb
cmp qword [rax + 0x3d8], rdi
je 0x140023ce9
mov rcx, rdi
call fcn.140026ca0
jmp 0x140023ce9
mov rsi, qword [rbp - 0x29]
mov eax, dword [rsi + 0x1b70]
mov dword [rbx + 0xa4], eax
test rdi, rdi
je 0x140023d2a
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140023d08
call fcn.14002346c
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x140023d16
call fcn.14002346c
mov rcx, rbx
call fcn.14000efdc
test al, al
je 0x140023d2a
mov rcx, rdi
call fcn.1400175b8
cmp byte [rbp - 0x58], 0
je 0x140023d35
call fcn.14001a330
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.14005bd30
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm7, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret