Function at 0x140055340
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov r12, qword [rsp + 0x100]
movzx eax, byte [rcx + 8]
mov r13, r9
mov r14, r8
mov r15, rdx
mov rsi, rcx
nop dword [rax + rax]
mov ecx, dword [0x141dc6f48]
imul ecx, dword [0x141dc6f4c]
imul ecx, ecx, 0x90c9d533
add ecx, 0x5e64db07
cmp ecx, 0x11699c7e
jb 0x140055370
mov bpl, 1
test al, al
je 0x1400553f0
mov eax, dword [0x141dc6ff0]
or eax, dword [0x141dc6ff4]
and eax, 0x2c7e289a
add eax, 0xbb192594
cmp eax, 0xd8d3695e
jae 0x1400553bd
mov byte [rsi + 8], bpl
mov byte [rsi + 9], 1
xor eax, eax
nop
mov byte [rsi + 8], bpl
mov byte [rsi + 9], 1
test al, al
jne 0x1400553c0
mov rax, rsi
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141dc6f50]
xor edx, edx
div dword [0x141dc6f54]
and eax, 0xc1aa3f60
imul eax, eax, 0xd9cfb972
add eax, 0x5a44d01e
cmp eax, 0xd57debe5
ja 0x1400553f0
mov rax, qword [rsi]
mov qword [rsp + 0x30], rax
mov eax, dword [rax + 0x34]
xor ecx, ecx
nop word cs:[rax + rax]
test cl, cl
jne 0x140055430
movzx ecx, byte [rsi + 9]
test al, 4
jne 0x140055675
mov qword [rsp + 0x38], r13
xor r12d, r12d
test cl, cl
lea rax, [0x141db4f54]
lea r13, [0x141db4f57]
cmove r13, rax
sete r12b
or r12, 2
mov rax, qword [rsp + 0x30]
mov rbp, qword [rax + 0x20]
mov rax, qword [rax + 0x28]
mov rdi, qword [rax + 0x18]
mov eax, dword [0x141dc6f58]
add eax, dword [0x141dc6f5c]
and eax, 0x73ebc5c1
add eax, 0xfc7ea20f
xor eax, 0x240d84bf
cmp eax, 0xe6b7aae
jae 0x1400554b0
mov rcx, rbp
mov rdx, r13
mov r8, r12
call rdi
nop word cs:[rax + rax]
mov eax, dword [0x141dc6f60]
and eax, dword [0x141dc6f64]
imul ebx, eax, 0x122e0999
add ebx, 0x46fc96b9
or ebx, 0x5311cc9
mov rcx, rbp
mov rdx, r13
mov r8, r12
call rdi
cmp ebx, 0x219f9d43
je 0x1400554b0
mov bpl, 1
test al, al
jne 0x140055398
mov rax, qword [rsp + 0x30]
mov r12, qword [rax + 0x20]
mov rax, qword [rax + 0x28]
mov ecx, dword [0x141dc6f68]
xor ecx, dword [0x141dc6f6c]
mov rdi, qword [rax + 0x18]
imul eax, ecx, 0xd6494054
add eax, 0xf198900
cmp eax, 0x88bcbbf9
jbe 0x140055526
mov rcx, r12
mov rdx, r15
mov r8, r14
call rdi
mov r13, qword [rsp + 0x38]
nop dword [rax + rax]
mov ebx, dword [0x141dc6f70]
xor ebx, dword [0x141dc6f74]
mov rcx, r12
mov rdx, r15
mov r8, r14
call rdi
cmp ebx, 0x84f7b30f
je 0x140055530
mov ecx, 0x8378c9f3
nop word cs:[rax + rax]
mov edx, dword [0x141dc6f78]
imul edx, dword [0x141dc6f7c]
add edx, 0x2ffd85ef
imul rdx, rcx
shr rdx, 0x3f
add edx, 0xc4725be5
cmp edx, 0x30fae838
jb 0x140055560
test al, al
mov rbx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x30]
jne 0x140055398
nop
mov eax, dword [0x141dc6f80]
or eax, dword [0x141dc6f84]
or eax, 0xf4fff5fe
cmp eax, 0xa69466f8
je 0x1400555a0
mov rcx, qword [rdx + 0x20]
mov r9, qword [rdx + 0x28]
mov eax, dword [0x141dc6f88]
xor edx, edx
div dword [0x141dc6f8c]
imul eax, eax, 0xcce67d40
imul rax, rax, 0x7f635d93
shr rax, 0x3d
or eax, 0xd704e7b0
cmp eax, 0xf8b6b0cf
ja 0x1400555c0
lea rdx, [0x141db4f59]
mov r8d, 2
call qword [r9 + 0x18]
test al, al
jne 0x140055398
mov eax, dword [0x141dc6f90]
imul eax, dword [0x141dc6f94]
add eax, 0x40136515
and eax, 0xde0bd5e4
add eax, 0x609f005
cmp eax, 0x612ef775
mov r14, qword [rsp + 0x30]
jbe 0x140055640
mov rcx, r13
mov rdx, r14
call rbx
nop word cs:[rax + rax]
mov eax, dword [0x141dc6f98]
add eax, dword [0x141dc6f9c]
imul edi, eax, 0x44ccc7bb
xor edi, 0x44902100
and edi, 0x4e90239a
mov rcx, r13
mov rdx, r14
call rbx
cmp edi, 0x68718a92
ja 0x140055640
mov ebp, eax
jmp 0x140055398
test cl, cl
jne 0x140055740
mov eax, dword [0x141dc6fa0]
xor edx, edx
div dword [0x141dc6fa4]
nop dword [rax + rax]
mov eax, dword [0x141dc6fa8]
xor edx, edx
div dword [0x141dc6fac]
xor eax, 0x5e44bad2
imul eax, eax, 0x560caf5b
or eax, 0x47eef9f1
cmp eax, 0xe7209b9e
je 0x140055690
mov rax, qword [rsp + 0x30]
mov r12, qword [rax + 0x20]
mov rax, qword [rax + 0x28]
mov rdi, qword [rax + 0x18]
mov eax, dword [0x141dc6fb0]
add eax, dword [0x141dc6fb4]
cmp eax, 0x78bdc26c
je 0x140055711
mov ebx, dword [0x141dc6fb8]
add ebx, dword [0x141dc6fbc]
xor ebx, 0x2000200
and ebx, 0x96000382
add ebx, 0x330e738
lea rdx, [0x141db4f5b]
mov r8d, 3
mov rcx, r12
call rdi
cmp ebx, 0xfb7c3932
jbe 0x140055725
lea rdx, [0x141db4f5b]
mov r8d, 3
mov rcx, r12
call rdi
jmp 0x1400556d9
mov bpl, 1
test al, al
mov r12, qword [rsp + 0x100]
jne 0x140055398
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x34]
mov byte [rsp + 0x2f], 1
mov r8, qword [rsp + 0x30]
movups xmm0, xmmword [r8 + 0x20]
movaps xmmword [rsp + 0x80], xmm0
lea rcx, [rsp + 0x2f]
mov qword [rsp + 0x90], rcx
mov ecx, dword [r8 + 0x30]
movzx edx, byte [r8 + 0x38]
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x70], ecx
mov byte [rsp + 0x78], dl
movups xmm0, xmmword [r8]
movaps xmmword [rsp + 0x40], xmm0
movups xmm0, xmmword [r8 + 0x10]
movaps xmmword [rsp + 0x50], xmm0
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x60], rcx
lea rax, [0x141db4f20]
mov qword [rsp + 0x68], rax
mov rdx, r15
mov r8, r14
call fcn.140055910
test al, al
jne 0x140055889
lea rdx, [0x141db4f59]
lea rcx, [rsp + 0x80]
mov r8d, 2
call fcn.140055910
mov ecx, eax
nop word cs:[rax + rax]
mov eax, dword [0x141dc6fc0]
xor edx, edx
div dword [0x141dc6fc4]
and eax, 0x93b9362c
cmp eax, 0x9054f912
je 0x1400557e0
test cl, cl
jne 0x140055889
mov eax, dword [0x141dc6fc8]
add eax, dword [0x141dc6fcc]
or eax, 0xe3bbf5cb
cmp eax, 0x71cf3488
jne 0x140055825
lea rdx, [rsp + 0x40]
mov rcx, r13
call r12
lea rbx, [rsp + 0x40]
nop word [rax + rax]
mov edi, dword [0x141dc6fd0]
or edi, dword [0x141dc6fd4]
add edi, 0x2c286777
and edi, 0xd1c4b4ac
add edi, 0x35be32db
mov rcx, r13
mov rdx, rbx
call r12
cmp edi, 0xc6e99edd
ja 0x140055830
nop
mov ecx, dword [0x141dc6fd8]
sub ecx, dword [0x141dc6fdc]
imul ecx, ecx, 0xca992733
imul rcx, rcx, 0x2441f0e3
shr rcx, 0x3b
cmp ecx, 0xfcba1817
je 0x140055860
test al, al
je 0x1400558c0
mov eax, 0xc688aecd
nop
mov ecx, dword [0x141dc6fe8]
sub ecx, dword [0x141dc6fec]
and ecx, 0xa040c8a
or ecx, 0xd5abb364
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x6cd50c9f
ja 0x140055890
mov bpl, 1
jmp 0x140055398
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
lea rdx, [0x141db4f5e]
mov r8d, 2
call qword [rax + 0x18]
mov ebp, eax
nop dword [rax]
mov eax, dword [0x141dc6fe0]
sub eax, dword [0x141dc6fe4]
xor eax, 0x6e2e09de
imul eax, eax, 0x83191b0f
cmp eax, 0xc203a2e6
jae 0x1400558e0
jmp 0x140055398