Function at 0x140051240
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov dword [rsp - 0x28], 0x668f463f
mov rdi, rcx
mov rsi, rdx
mov ecx, 0x2630d527
mov rdx, rdx
sub ecx, 0x24e94b71
xor ecx, 0x2e9c7ae4
sub ecx, 0x183e12e6
xchg rbp, rbp
xor ecx, 0x45bcb603
sub ecx, 0x517768cc
sub ecx, 0xa9ed5b
call fcn.140072200
mov r12, r12
mov rbx, rax
test rax, rax
je 0x1400513aa
xchg r12, r12
mov rcx, rax
call fcn.1400350b0
lea rax, [0x1400022a8]
mov qword [rbx + 0x20], rdi
xchg r8, r8
mov qword [rbx], rax
lea rdx, [rsp + 0x30]
mov rcx, rdi
mov dword [rbx + 0x30], 0x1e09fe6d
mov dword [rsp - 0x34], 0x26019327
xor dword [rbx + 0x30], 0x3480f729
add dword [rbx + 0x30], 0x507f6a37
sub dword [rbx + 0x30], 0x20446ad9
mov dword [rsp - 0x24], 0x640cefbb
sub dword [rbx + 0x30], 0x39fd9da7
add dword [rbx + 0x30], 0x286bc3a9
mov dword [rbx + 0x34], 0x69e2dcc1
mov dword [rsp - 0x34], esp
xor dword [rbx + 0x34], 0x54988a24
add dword [rbx + 0x34], 0x14a254a3
sub dword [rbx + 0x34], 0x2ab7f8c4
add dword [rbx + 0x34], 0x10adb810
xchg rdi, rdi
xor dword [rbx + 0x34], 0x13cbfd72
add dword [rbx + 0x34], 0x1d5896fe
mov qword [rbx + 0x28], rsi
mov dword [rsp - 0x38], 0x1942b1cb
call fcn.14004fd40
mov ecx, dword [rax + 4]
xor ecx, 0x49322ea4
mov dword [rbx + 0x38], 0x14bdd403
mov dword [rsp - 0x44], ebx
add dword [rbx + 0x38], 0x519f3eb3
xor dword [rbx + 0x38], 0x4faf6230
add dword [rbx + 0x38], 0xd05b948
add dword [rbx + 0x38], 0x17120449
mov r9, r9
sub dword [rbx + 0x38], 0x4d80013
mov dword [rbx + 0x3c], ecx
mov byte [rbx + 0x40], 0x41
mov dword [rsp - 0x30], esp
add byte [rbx + 0x40], 0x14
add byte [rbx + 0x40], 0
xor byte [rbx + 0x40], 0x51
mov dword [rsp - 0x24], 0x4d969395
add byte [rbx + 0x40], 0xe
sub byte [rbx + 0x40], 0x12
jmp 0x1400513ac
xor ebx, ebx
mov rdx, qword [rdi + 0x150]
mov rcx, rbx
mov qword [rsp + 0x30], rbx
xchg rcx, rcx
call fcn.140035610
lea rcx, [rdi + 0x148]
lea rdx, [rsp + 0x30]
mov r12, r12
call fcn.1400510c0
mov rcx, rdi
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov dword [rsp - 0xc], 0x59c8ba0f
add rsp, 0x20
pop rdi
jmp 0x140051670
push rbx
sub rsp, 0x20
cmp qword [rcx + 0x150], 0
mov rbx, rcx
mov dword [rsp - 0x30], ebx
je 0x14005179f
lea rdx, [rsp + 0x30]
call fcn.14004fd40
mov eax, dword [rsp + 0x30]
mov rsi, rsi
cdq
idiv dword [rbx + 0x150]
mov edx, 0x6886e9c4
sub edx, 0x4da4b6f5
mov dword [rsp - 0x28], ebp
xor edx, 0x4f38eb8f
sub edx, 0x37cd3301
xor edx, 0x38e5600d
xor edx, 0x26e8c692
xchg r10, r10
cmp eax, edx
cmovl edx, eax
xor r8d, r8d
mov dword [rsp + 0x30], edx
mov dword [rsp - 0x34], 0x96605a1
mov rdx, qword [rbx + 0x150]
test rdx, rdx
je 0x140051797
mov dword [rsp - 0x34], esi
mov rax, qword [rbx + 0x148]
lea r9, [rax + rdx*8]
cmp rax, r9
xchg rcx, rcx
je 0x140051797
nop dword [rax]
mov rdx, qword [rax]
mov ecx, r8d
xchg rsp, rsp
xor ecx, 0x49322ea4
add rax, 8
mov dword [rdx + 0x30], ecx
mov dword [rdx + 0x34], 0x48c27036
mov dword [rsp - 0x1c], edx
sub dword [rdx + 0x34], 0x3a18b7e4
add dword [rdx + 0x34], 0x6ac3e5c9
xor dword [rdx + 0x34], 0x704e6c09
add dword [rdx + 0x34], 0x413426be
mov dword [rsp - 0x30], 0x4f0ac5d6
sub dword [rdx + 0x34], 0x125ea2c
mov ecx, dword [rsp + 0x30]
xor ecx, 0x49322ea4
mov dword [rsp - 0x1c], 0x7708156c
mov dword [rdx + 0x38], ecx
mov ecx, dword [rsp + 0x34]
xor ecx, 0x49322ea4
mov dword [rsp - 0x2c], edx
mov dword [rdx + 0x3c], ecx
add r8d, dword [rsp + 0x30]
cmp rax, r9
jne 0x140051713
mov dword [rsp - 0xc], 0x40232c1a
mov rcx, rbx
call fcn.140034e10
add rsp, 0x20
mov r8, r8
pop rbx
ret