Function at 0x140095630
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r15
sub rsp, 0x20
mov rax, qword [rcx + 0x10]
lea rbx, [fcn.140095630]
xor r12d, r12d
mov ebp, r9d
mov r15, r8
mov rsi, rdx
mov rdi, rcx
cmp rbx, rax
je 0x1400956c9
test rax, rax
je 0x1400956c9
mov rax, qword [rcx + 0x20]
mov rcx, qword [rcx]
test rax, rax
je 0x140095680
call qword [case.0x140032886.0]
jmp 0x1400956a2
test rsi, rsi
je 0x14009569d
mov rax, qword [rdx + 8]
test rax, rax
je 0x14009569d
mov rdx, rcx
mov rcx, qword [rsi + 0x10]
call qword [case.0x140032886.0]
jmp 0x1400956a2
call fcn.1400e3bf4
mov qword [rdi], r12
mov qword [rdi + 8], 0xffffffffffffffff
mov qword [rdi + 0x18], r12
mov qword [rdi + 0x20], r12
mov qword [rdi + 0x28], r12
mov qword [rdi + 0x30], r12
mov qword [rdi + 0x38], r12
mov qword [rdi + 0x40], r12
mov qword [rdi + 0x48], r12
mov qword [rdi + 0x10], rbx
test r15, r15
je 0x140095925
mov rbx, qword [rdi]
test rbx, rbx
jne 0x1400957c6
test rsi, rsi
je 0x140095704
mov rax, qword [rsi]
test rax, rax
je 0x140095704
mov rcx, qword [rsi + 0x10]
lea edx, [rbx + 1]
mov r8d, 0x5e0
call qword [case.0x140032886.0]
jmp 0x14009570e
mov ecx, 0x5e0
call fcn.1400e9cb4
mov rbx, rax
test rax, rax
je 0x140095893
mov qword [rdi], rax
lea rax, [0x140094dd0]
mov qword [rdi + 0x18], rax
lea rax, [0x1400951f0]
mov qword [rdi + 0x20], rax
lea rax, [fcn.140095460]
mov qword [rdi + 0x40], rax
mov qword [rbx + 0x128], 0xffffffffffffffff
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], 0xffffffffffffffff
mov qword [rbx + 0x18], r12
mov qword [rbx + 0x20], r12
mov qword [rbx + 0x28], r12
mov qword [rbx + 0x30], r12
mov qword [rbx + 0x38], r12
mov qword [rbx + 0x40], r12
mov qword [rbx + 0x48], r12
mov qword [rbx + 0x50], r12
mov qword [rbx + 0x178], r12
mov qword [rbx + 0x180], 0xffffffffffffffff
mov qword [rbx + 0x188], r12
mov qword [rbx + 0x190], r12
mov qword [rbx + 0x198], r12
mov qword [rbx + 0x1a0], r12
mov qword [rbx + 0x1a8], r12
mov qword [rbx + 0x1b0], r12
mov qword [rbx + 0x1b8], r12
mov qword [rbx + 0x1c0], r12
mov qword [rbx + 0x1c8], r12
mov qword [rsp + 0x40], r14
mov r14, qword [rbx + 0x1c8]
mov dword [rbx], r12d
mov dword [rbx + 0x58], r12d
mov dword [rbx + 0x60], ebp
test r14, r14
je 0x14009587a
mov rdi, qword [r14]
test rdi, rdi
je 0x140095855
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x140095805
lea r8, [0x14009d6f0]
mov rdx, rsi
call fcn.14009d4b0
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x14009581d
lea r8, [0x14009d6f0]
mov rdx, rsi
call fcn.14009d4b0
lea rcx, [rdi + 0x38]
mov rdx, rsi
lea r8, [0x140092f90]
call fcn.14009d510
test rsi, rsi
je 0x14009584d
mov rax, qword [rsi + 8]
test rax, rax
je 0x14009584d
mov rcx, qword [rsi + 0x10]
mov rdx, rdi
call qword [case.0x140032886.0]
jmp 0x14009585a
mov rcx, rdi
call fcn.1400e3bf4
test rsi, rsi
je 0x140095872
mov rax, qword [rsi + 8]
test rax, rax
je 0x140095872
mov rcx, qword [rsi + 0x10]
mov rdx, r14
call qword [case.0x140032886.0]
jmp 0x14009587a
mov rcx, r14
call fcn.1400e3bf4
mov rcx, rsi
call fcn.14009d7b0
mov r14, qword [rsp + 0x40]
mov qword [rbx + 0x1c8], rax
test rax, rax
jne 0x14009589d
mov eax, 5
jmp 0x14009592a
mov eax, dword [0x14013a80c]
lea r8, [rbx + 0x1e6]
mov dword [rbx + 0x1e0], eax
movzx eax, word [0x14013a810]
mov word [rbx + 0x1e4], ax
cmp ebp, 0xf
ja 0x140095925
mov byte [r8], r12b
lea r10, [0x14013ca40]
mov byte [r8 + 1], bpl
mov edx, 0xffffffff
mov r9d, 2
nop dword [rax]
movzx eax, byte [r8]
lea r8, [r8 + 1]
movzx ecx, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r10 + rcx*4]
sub r9, 1
jne 0x1400958e0
not edx
mov r8, r15
mov dword [rbx + 0x1e8], edx
mov rcx, rbx
mov rdx, rsi
mov qword [rbx + 0x1d0], r12
mov qword [rbx + 0x1d8], 0xc
call fcn.140095460
jmp 0x14009592a
mov eax, 0xb
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rdi
ret