Function at 0x100120d40
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rdi
push r14
push r15
sub rsp, 0x50
mov qword [r11 - 0x30], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
mov r14, r9
mov r15, r8
mov esi, edx
mov rbp, rcx
mov qword [r11 - 0x38], 0xffffffffffffffff
mov eax, dword [0x10029a8b0]
and eax, 0x20004
cmp eax, 0x20004
jne 0x100120daf
mov rax, qword [0x1004e2ce8]
test rax, rax
je 0x100120daf
mov qword [r11 - 0x40], r9
mov qword [r11 - 0x48], r8
mov r9d, edx
mov r8, rcx
mov rdx, qword [0x1004e2ce8]
lea rcx, [r11 - 0x38]
call fcn.100126900
call fcn.100058d10
mov rcx, qword [rax + 0x38]
mov rcx, qword [rcx]
mov qword [rsp + 0x40], rcx
mov rax, qword [rcx]
mov byte [rsp + 0x20], 6
mov r9d, 0xf22
lea r8, [0x100030e70]
mov edx, 0x78
call qword [rax + 0x48]
mov rbx, rax
mov qword [rsp + 0x48], rax
xor edi, edi
test rax, rax
je 0x100120e1d
mov qword [rax + 0x10], rdi
mov qword [rax], rdi
mov qword [rax + 8], rdi
call fcn.1000669d0
mov rcx, qword [rax + 0xae0]
mov qword [rbx + 0x18], rcx
mov qword [rbx + 0x20], rdi
mov qword [rbx + 0x28], rdi
mov qword [rbx + 0x30], rdi
mov qword [rbx + 0x38], rdi
mov qword [rbx + 0x40], rdi
jmp 0x100120e20
mov rbx, rdi
test rbx, rbx
jne 0x100120ee5
mov qword [r14], rdi
test byte [0x10029a8b0], 2
je 0x100120e72
mov rax, qword [0x1004e2970]
test rax, rax
je 0x100120e72
mov ecx, 0xc3b4
call fcn.10011bd50
mov dword [rsp + 0x28], ntohs
mov dword [rsp + 0x20], eax
mov r9d, esi
mov r8, qword [0x1004e2970]
mov edx, 0x3c9c00
mov rcx, qword [0x1004e23a8]
call fcn.100126850
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
xor r9d, r9d
lea edx, [r9 + 0xe]
mov r8d, 0xc3b4
mov ecx, esi
call fcn.100128b90
mov r11d, dword [0x10029a8b0]
and r11d, 0x20002
cmp r11d, 0x20002
jne 0x100120ed1
mov rcx, qword [0x1004e2978]
test rcx, rcx
je 0x100120ed1
mov r9d, ntohs
mov r8, qword [0x1004e2978]
mov edx, 0x3ca400
mov rcx, qword [0x1004e23b0]
call fcn.100126850
nop
lea rcx, [rsp + 0x30]
call fcn.100126960
mov eax, ntohs
jmp 0x100121005
lock inc dword [rbp + 0x58]
mov dword [rbx + 0x58], esi
mov qword [rbx + 0x68], r15
mov qword [rbx + 0x70], rbp
call fcn.100058d10
movzx ecx, byte [rax + 0x88]
mov esi, 1
shl rsi, cl
mov eax, dword [rbx + 0x58]
cmp eax, 1
je 0x100120f48
cmp eax, 4
je 0x100120f48
cmp eax, 7
je 0x100120f1f
cmp eax, 8
jne 0x100120f3b
call fcn.100058d10
test byte [rax + 0x590], 4
jne 0x100120f3b
mov rax, qword [rbp + 0x40]
cmp rsi, rax
je 0x100120f3b
test rax, rax
jne 0x100120f48
mov qword [rbx + 0x60], rsi
lea rax, [0x100120d20]
jmp 0x100120f91
mov rcx, qword [rbp + 0x40]
mov eax, dword [rbx + 0x58]
cmp eax, 1
je 0x100120f83
cmp eax, 4
je 0x100120f83
lea rax, [rcx - 1]
xor rax, rcx
not rax
and rax, rcx
je 0x100120f86
nop dword [rax + rax]
mov rcx, rax
dec rax
xor rax, rcx
not rax
and rax, rcx
jne 0x100120f70
jmp 0x100120f86
mov rcx, rsi
mov qword [rbx + 0x60], rcx
lea rax, [0x1001233e0]
mov qword [rbx + 0x40], rbx
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x30], 0
mov qword [rbx + 0x28], rdi
mov qword [rbx + 0x20], rdi
mov qword [rbx + 0x18], rdi
mov qword [rbx + 8], rdi
mov qword [rbx], rdi
mov qword [rbx + 0x10], 0
mov qword [r14], rbx
mov eax, dword [0x10029a8b0]
and eax, 0x20002
cmp eax, 0x20002
jne 0x100120ff9
mov rax, qword [0x1004e2980]
test rax, rax
je 0x100120ff9
xor r9d, r9d
mov r8, qword [0x1004e2980]
mov edx, 0x3dc000
mov rcx, qword [0x1004e23b8]
call fcn.100126850
nop
lea rcx, [rsp + 0x30]
call fcn.100126960
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
ret