Function at 0x140054270
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov r14, r8
mov r8, rdx
mov rsi, rcx
mov eax, dword [0x141dc5010]
add eax, dword [0x141dc5014]
imul eax, eax, 0x9035cfb9
add eax, 0x70b1d4ad
mov ecx, 0x9e03e133
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x3d266521
je 0x1400542fe
mov eax, dword [0x141dc5018]
xor edx, edx
div dword [0x141dc501c]
mov ecx, eax
add ecx, 0xacff5e63
and ecx, 0x60251424
mov eax, 0x40
call fcn.1400ed360
sub rsp, rax
mov r15, rsp
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
mov rbx, rsp
cmp ecx, 0xab816146
jbe 0x14005431a
mov eax, 0x40
call fcn.1400ed360
sub rsp, rax
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
jmp 0x1400542ba
mov eax, 0x20
call fcn.1400ed360
sub rsp, rax
mov rdi, rsp
xor eax, eax
nop dword [rax]
test al, al
jne 0x140054330
mov r13b, 1
cmp byte [rsi + 8], 0
jne 0x140054887
mov r12, qword [rsi]
mov edx, dword [r12 + 0x34]
movzx eax, byte [rsi + 9]
test dl, 4
mov qword [rbp], r8
mov qword [rbp - 0x18], r9
jne 0x140054537
lea rcx, [0x141db2f74]
lea r8, [0x141db2f77]
nop dword [rax]
mov edx, dword [0x141dc5020]
and edx, dword [0x141dc5024]
imul r9, rdx, 0xe81bb4d
shr r9, 0x3b
or r9d, 0xe399c7e
test al, al
mov rdx, r8
cmove rdx, rcx
cmp r9d, 0xfbe22d38
je 0x140054370
xor r8d, r8d
cmp al, 1
adc r8, 2
mov rcx, qword [r12 + 0x20]
mov rax, qword [r12 + 0x28]
sub rsp, 0x20
call qword [rax + 0x18]
add rsp, 0x20
mov r13b, 1
test al, al
jne 0x140054856
nop dword [rax]
mov eax, dword [0x141dc5028]
or eax, dword [0x141dc502c]
xor eax, 0xa0080087
and eax, 0xb23bb587
cmp eax, 0xfa5efb71
je 0x1400543d0
mov rbx, qword [r12 + 0x20]
mov rax, qword [r12 + 0x28]
mov r15, qword [rax + 0x18]
mov eax, dword [0x141dc5030]
or eax, dword [0x141dc5034]
mov edx, 0x9d748077
imul rdx, rax
shr rdx, 0x3f
or edx, 0x409c25d0
imul eax, edx, 0xe89908d4
cmp eax, 0xd39ad0b9
jbe 0x14005443f
sub rsp, 0x20
mov rcx, rbx
mov rdi, rbx
mov rdx, qword [rbp]
mov r8, r14
call r15
add rsp, 0x20
mov qword [rbp - 8], r14
mov rdi, qword [rbp]
nop word [rax + rax]
mov eax, dword [0x141dc5038]
mov edx, dword [0x141dc503c]
lea r14d, [rax + rdx]
add r14d, 0x71aa2387
or r14d, 0xd5e49084
xor r14d, 0x54a1d215
sub rsp, 0x20
mov rcx, rbx
mov rdx, rdi
mov r8, qword [rbp - 8]
call r15
add rsp, 0x20
cmp r14d, 0x200e70d8
jb 0x140054450
nop word cs:[rax + rax]
mov ecx, dword [0x141dc5040]
and ecx, dword [0x141dc5044]
imul ecx, ecx, 0xc07e6691
cmp ecx, 0xeb63e20e
je 0x1400544a0
test al, al
jne 0x140054856
mov rcx, qword [r12 + 0x20]
mov rax, qword [r12 + 0x28]
sub rsp, 0x20
lea rdx, [0x141db2f79]
mov r8d, 2
call qword [rax + 0x18]
add rsp, 0x20
test al, al
jne 0x140054856
sub rsp, 0x20
mov rcx, qword [rbp - 0x18]
mov rdx, r12
call qword [rbp + 0x70]
add rsp, 0x20
mov r13d, eax
nop word cs:[rax + rax]
mov eax, dword [0x141dc5048]
xor eax, dword [0x141dc504c]
and eax, 0x1ffc110a
add eax, 0xf9e02c77
or eax, 0xeb233783
cmp eax, 0x93345f18
jbe 0x140054510
jmp 0x140054856
test al, al
mov qword [rbp - 8], r14
jne 0x14005462d
nop word cs:[rax + rax]
mov eax, dword [0x141dc5050]
sub eax, dword [0x141dc5054]
or eax, 0x3e9cee13
imul eax, eax, 0x74944832
xor eax, 0x14bcd8c7
cmp eax, 0xe2a8695e
jb 0x140054550
mov r13, qword [r12 + 0x20]
mov rax, qword [r12 + 0x28]
mov r9, qword [rax + 0x18]
mov eax, dword [0x141dc5058]
imul eax, dword [0x141dc505c]
and eax, 0x106cbdc5
imul eax, eax, 0x16bcccf8
xor eax, 0xffcecb5c
cmp eax, 0x48a0d289
jbe 0x1400545d0
sub rsp, 0x20
lea rdx, [0x141db2f7b]
mov r8d, 3
mov r14, r13
mov rcx, r13
mov r13, r9
call r9
mov r9, r13
mov r13, r14
add rsp, 0x20
nop dword [rax]
mov eax, dword [0x141dc5060]
sub eax, dword [0x141dc5064]
add eax, 0x3560824e
and eax, 0x32aa9d7d
imul eax, eax, 0x35890546
mov dword [rbp - 0xc], eax
sub rsp, 0x20
mov r8d, 3
mov rcx, r13
lea rdx, [0x141db2f7b]
mov r14, r9
call r9
mov r9, r14
add rsp, 0x20
cmp dword [rbp - 0xc], 0xf253c2df
ja 0x1400545d0
mov r13b, 1
test al, al
jne 0x140054856
mov edx, dword [r12 + 0x34]
mov r8, qword [rbp]
mov eax, dword [0x141dc5068]
mov ecx, dword [0x141dc506c]
add eax, ecx
add eax, 0x7b99e5
or eax, 0x60040
and eax, 0xa862540
cmp eax, 0x70a3f03e
mov r13d, edx
je 0x1400546e5
mov r14d, dword [str.xb]
or r14d, dword [0x141dc5074]
xor r14d, 0x414091
or r14d, 0xddbebf6e
mov byte [rbx], 1
movups xmm0, xmmword [r12 + 0x20]
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x10], rbx
mov eax, dword [r12 + 0x30]
movzx ecx, byte [r12 + 0x38]
mov dword [r15 + 0x34], edx
mov dword [r15 + 0x30], eax
mov byte [r15 + 0x38], cl
movups xmm0, xmmword [r12]
movaps xmmword [r15], xmm0
movups xmm0, xmmword [r12 + 0x10]
movaps xmmword [r15 + 0x10], xmm0
mov qword [r15 + 0x20], rdi
lea rax, [0x141db2f40]
mov qword [r15 + 0x28], rax
sub rsp, 0x20
mov rcx, rdi
mov rdx, r8
mov r8, qword [rbp - 8]
call fcn.140054a00
mov edx, r13d
mov r8, qword [rbp]
add rsp, 0x20
cmp r14d, 0xc80fc738
jne 0x140054752
mov byte [rbx], 1
movups xmm0, xmmword [r12 + 0x20]
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x10], rbx
mov eax, dword [r12 + 0x30]
movzx ecx, byte [r12 + 0x38]
mov dword [r15 + 0x34], edx
mov dword [r15 + 0x30], eax
mov byte [r15 + 0x38], cl
movups xmm0, xmmword [r12]
movaps xmmword [r15], xmm0
movups xmm0, xmmword [r12 + 0x10]
movaps xmmword [r15 + 0x10], xmm0
mov qword [r15 + 0x20], rdi
lea rax, [0x141db2f40]
mov qword [r15 + 0x28], rax
sub rsp, 0x20
mov rcx, rdi
mov rdx, r8
mov r8, qword [rbp - 8]
call fcn.140054a00
mov edx, r13d
mov r8, qword [rbp]
add rsp, 0x20
jmp 0x140054658
test al, al
jne 0x1400547f3
sub rsp, 0x20
lea rdx, [0x141db2f79]
mov r8d, 2
mov rcx, rdi
call fcn.140054a00
add rsp, 0x20
nop word [rax + rax]
mov ecx, dword [0x141dc5078]
xor ecx, dword [0x141dc507c]
or ecx, 0x241e9cca
add ecx, 0x5a2ebc49
cmp ecx, 0x9a368215
ja 0x140054780
test al, al
jne 0x1400547f3
sub rsp, 0x20
mov rcx, qword [rbp - 0x18]
mov rdx, r15
call qword [rbp + 0x70]
add rsp, 0x20
mov ecx, eax
nop dword [rax + rax]
mov eax, dword [0x141dc5080]
xor edx, edx
div dword [0x141dc5084]
imul eax, eax, 0x15e745db
add eax, 0xb62cf76b
imul rax, rax, 0x3aa4d1ed
shr rax, 0x3d
cmp eax, 0xff4d5832
je 0x1400547c0
test cl, cl
je 0x1400548b3
mov eax, 0x8624955b
nop dword [rax + rax]
mov ecx, dword [0x141dc50a8]
imul ecx, dword [0x141dc50ac]
imul rcx, rax
shr rcx, 0x3e
and ecx, 1
imul ecx, ecx, 0x716d2999
cmp ecx, 0x82c4239b
ja 0x140054800
nop word cs:[rax + rax]
mov eax, dword [0x141dc50b0]
and eax, dword [0x141dc50b4]
and eax, 0x741b1dd6
imul eax, eax, 0xfa4e97d9
add eax, 0x4c24ce16
cmp eax, 0x3046f981
jb 0x140054830
mov r13b, 1
mov ecx, 0xa6f322ff
nop dword [rax + rax]
mov eax, dword [0x141dc50b8]
xor edx, edx
div dword [0x141dc50bc]
imul rax, rcx
shr rax, 0x3c
or eax, 0xc408506
and eax, 0xc408507
cmp eax, 0xa0730dc5
ja 0x140054860
mov eax, dword [0x141dc50c0]
and eax, dword [0x141dc50c4]
xor eax, 0xcf23e3a0
imul eax, eax, 0x8833ed37
add eax, 0xb62f8d23
cmp eax, 0x2c7274ca
jae 0x1400549a7
jmp 0x1400549d4
mov eax, 0xf95fc6d5
nop dword [rax + rax]
mov ecx, dword [0x141dc5088]
or ecx, dword [0x141dc508c]
and ecx, 0x96acb2ff
imul rcx, rax
shr rcx, 0x3c
and ecx, 7
cmp ecx, 0x1d3003f7
ja 0x1400548c0
mov rdi, qword [r15 + 0x20]
mov eax, dword [0x141dc5090]
imul eax, dword [0x141dc5094]
cmp eax, 0x3b7465a3
jne 0x14005491c
mov rax, qword [r15 + 0x28]
sub rsp, 0x20
lea rdx, [0x141db2f7e]
mov r8d, 2
mov rcx, rdi
call qword [rax + 0x18]
add rsp, 0x20
lea rbx, [0x141db2f7e]
nop word cs:[rax + rax]
mov r14d, dword [0x141dc5098]
or r14d, dword [0x141dc509c]
or r14d, 0x86242854
and r14d, 0x86742875
mov rax, qword [r15 + 0x28]
sub rsp, 0x20
mov r8d, 2
mov rcx, rdi
mov rdx, rbx
call qword [rax + 0x18]
add rsp, 0x20
cmp r14d, 0x89deff56
je 0x140054930
mov r13d, eax
nop word cs:[rax + rax]
mov eax, dword [0x141dc50a0]
sub eax, dword [0x141dc50a4]
and eax, 0xe5a0e273
add eax, 0xf5c7bda
or eax, 0x18fc42e3
cmp eax, 0x3c15cc64
jb 0x140054980
jmp 0x140054856
mov eax, dword [0x141dc50c8]
xor edx, edx
div dword [0x141dc50cc]
add eax, 0x6a30fa20
or eax, 0xd0b75f04
imul eax, eax, 0x9b12fa3c
mov byte [rsi + 8], r13b
mov byte [rsi + 9], 1
cmp eax, 0xff1d0807
jbe 0x1400549de
mov byte [rsi + 8], r13b
mov byte [rsi + 9], 1
jmp 0x1400549a7
mov rax, rsi
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret