Function at 0x140054660
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r14, r9
mov r15, r8
mov rbx, rcx
mov rdi, qword [rsp + 0xc8]
nop word cs:[rax + rax]
mov eax, dword [0x141dcacc0]
imul eax, dword [0x141dcacc4]
imul eax, eax, 0x583355fb
or eax, 0xb1de37c7
cmp eax, 0xd200d5f5
je 0x140054690
test dl, dl
je 0x14005473a
nop word [rax + rax]
mov eax, dword [0x141dcacd0]
sub eax, dword [0x141dcacd4]
imul rcx, rax, 0x1d3b77d1
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1e
or eax, 0xfbc5782e
cmp eax, 0x4d63f921
jb 0x1400546c0
mov ecx, dword [rbx + 0x34]
mov edx, ecx
and edx, 1
mov r8d, 0x110000
mov rax, rdx
add rax, rdi
mov r9d, dword [0x141dcacd8]
imul r9d, dword [0x141dcacdc]
xor r9d, 0x19420022
or r9d, 0xe630edd8
imul r9d, r9d, 0xaee91e5a
test edx, edx
mov ebp, 0x2b
cmove ebp, r8d
cmp r9d, 0xdd274e34
ja 0x140054700
jmp 0x14005476d
lea rax, [rdi + 1]
nop
mov ecx, dword [0x141dcacc8]
and ecx, dword [0x141dcaccc]
imul rcx, rcx, 0x1e9a4a2f
shr rcx, 0x3c
or ecx, 0xf75efffa
cmp ecx, 0x42c03f15
jb 0x140054740
mov ecx, dword [rbx + 0x34]
mov ebp, 0x2d
mov edx, 0x97fb6f8d
nop word cs:[rax + rax]
mov r8d, dword [0x141dcace0]
mov r9d, dword [0x141dcace4]
add r8d, r9d
add r8d, 0x1b51f047
imul r8, rdx
shr r8, 0x3f
cmp r8d, 0x3477a4dc
ja 0x140054780
test cl, 4
jne 0x1400547c0
xor r15d, r15d
jmp 0x14005498a
mov edx, dword [0x141dcace8]
or edx, dword [0x141dcacec]
cmp edx, 0x6573cbc4
je 0x1400547c0
test r14, r14
je 0x14005480b
nop dword [rax]
mov edx, dword [0x141dcacf0]
imul edx, dword [0x141dcacf4]
add edx, 0x9287cfac
cmp edx, 0x28a854a2
jb 0x1400547e0
cmp r14, 4
jae 0x140054813
xor r8d, r8d
xor edx, edx
jmp 0x140054970
xor r8d, r8d
jmp 0x140054987
mov rdx, r14
and rdx, 0xfffffffffffffffc
nop word [rax + rax]
mov r8d, dword [0x141dcacf8]
add r8d, dword [0x141dcacfc]
or r8d, 0x2001
xor r8d, 0x20004500
and r8d, 0x28126f17
cmp r8d, 0x4f40cb4e
je 0x140054820
nop dword [rax]
mov r8d, dword [0x141dcad00]
or r8d, dword [0x141dcad04]
add r8d, 0xe4c6ea33
imul r8, r8, 0x78a68e47
shr r8, 0x3e
xor r8d, 0xb5c26def
cmp r8d, 0x78ab5227
jb 0x140054850
pxor xmm0, xmm0
xor r9d, r9d
mov r8d, 0xa8f3d785
movdqa xmm2, xmmword [0x140104720]
movdqa xmm3, xmmword [0x140104730]
pxor xmm1, xmm1
nop word cs:[rax + rax]
mov r10d, dword [0x141dcad08]
add r10d, dword [0x141dcad0c]
imul r10, r8
shr r10, 0x3f
or r10d, 0x48008400
cmp r10d, 0xdbda64c6
ja 0x1400548b0
movzx r10d, word [r15 + r9]
movzx r11d, word [r15 + r9 + 2]
lea rsi, [r9 + 4]
movd xmm4, r10d
movd xmm5, r11d
pcmpgtb xmm4, xmm2
punpcklbw xmm4, xmm4
pshuflw xmm4, xmm4, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm0, xmm4
pcmpgtb xmm5, xmm2
punpcklbw xmm5, xmm5
pshuflw xmm4, xmm5, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm1, xmm4
mov r9, rsi
cmp rdx, rsi
jne 0x1400548b0
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r8, xmm0
nop dword [rax]
mov r9d, dword [0x141dcad10]
mov r10d, dword [0x141dcad14]
add r9d, r10d
add r9d, 0x238332bb
or r9d, 0xb75b584
cmp r9d, 0x7b8e187d
ja 0x140054940
cmp rdx, r14
je 0x140054987
nop dword [rax]
xor r9d, r9d
cmp byte [r15 + rdx], 0xc0
setge r9b
add r8, r9
inc rdx
cmp r14, rdx
jne 0x140054970
add rax, r8
mov edx, 0x82b468f1
nop
mov r8d, dword [0x141dcad18]
add r8d, dword [0x141dcad1c]
or r8d, 0xd745e43a
xor r8d, 0x429c5670
imul r8, rdx
shr r8, 0x3c
cmp r8d, 0x53ec74be
je 0x140054990
cmp qword [rbx], 0
je 0x140054a74
nop word [rax + rax]
mov edx, dword [0x141dcad38]
sub edx, dword [0x141dcad3c]
add edx, 0x124833a3
and edx, 0x964e6154
imul edx, edx, 0x275e5698
cmp edx, 0xb399d636
ja 0x1400549d0
mov rdx, qword [rbx + 8]
sub rdx, rax
mov qword [rsp + 0x28], rdx
jbe 0x140054ad8
nop dword [rax + rax]
mov eax, dword [0x141dcad48]
xor edx, edx
div dword [0x141dcad4c]
xor eax, 0x62c1ff32
add eax, 0x4ff5d8b0
xor eax, 0xba74efd7
cmp eax, 0xc2b69fcf
ja 0x140054a10
test cl, 8
jne 0x140054b23
mov eax, dword [0x141dcad68]
xor edx, edx
div dword [0x141dcad6c]
xor eax, eax
nop dword [rax]
test al, al
jne 0x140054a50
movzx eax, byte [rbx + 0x38]
lea rcx, [0x141dbc50c]
movsxd rdx, dword [rcx + rax*4]
add rdx, rcx
jmp rdx
mov eax, 0x9711bccf
nop dword [rax]
mov ecx, dword [0x141dcad20]
imul ecx, dword [0x141dcad24]
or ecx, 0x10e035c7
xor ecx, 0x496fca70
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0xb4710e70
ja 0x140054a80
mov r12, qword [rbx + 0x20]
mov eax, dword [0x141dcad28]
sub eax, dword [0x141dcad2c]
and eax, 0xe8249484
or eax, 0x7c12a72
xor eax, 0x593c300e
cmp eax, 0x264793b6
jae 0x14005500d
jmp 0x140055044
mov r12, qword [rbx + 0x20]
nop dword [rax]
mov eax, dword [0x141dcad50]
and eax, dword [0x141dcad54]
add eax, 0x4ce607d6
or eax, 0x3faa2fb3
cmp eax, 0xc40ae953
ja 0x140054ae0
mov eax, dword [0x141dcad58]
xor eax, dword [0x141dcad5c]
add eax, 0xf95855d8
and eax, 0x8ad7c956
cmp eax, 0x6be25ac6
jne 0x1400550a3
jmp 0x1400550d8
mov eax, dword [0x141dcadb0]
and eax, dword [0x141dcadb4]
add eax, 0xcd78cce6
or eax, 0xf3972e33
imul eax, eax, 0xcfd52d14
cmp eax, 0x3a99e7c3
jne 0x140055151
jmp 0x140055186
mov eax, dword [0x141dcad30]
mov ecx, dword [0x141dcad34]
lea esi, [rax + rcx]
add esi, 0x3113e456
mov r13, qword [rbx + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, r15
call fcn.140055470
cmp esi, 0x73ecc8f7
jae 0x14005505d
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r12
mov r8d, ebp
mov r9, r15
call fcn.140055470
jmp 0x14005500d
mov bpl, 1
test al, al
jne 0x140055430
mov rcx, r12
mov rdx, qword [rsp + 0xc0]
mov r8, rdi
call qword [r13 + 0x18]
mov ebp, eax
nop dword [rax]
mov eax, dword [0x141dcad40]
sub eax, dword [0x141dcad44]
imul rax, rax, 0x631a4899
shr rax, 0x3d
cmp eax, 0x948114f
je 0x140055080
jmp 0x140055430
mov esi, dword [0x141dcad60]
imul esi, dword [0x141dcad64]
and esi, 0x13243414
mov r13, qword [rbx + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, r15
call fcn.140055470
cmp esi, 0x9719634e
jne 0x1400550f1
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r12
mov r8d, ebp
mov r9, r15
call fcn.140055470
jmp 0x1400550a3
mov bpl, 1
test al, al
jne 0x140055430
xor eax, eax
nop
test al, al
jne 0x140055100
mov rcx, r12
mov rdx, qword [rsp + 0xc0]
mov r8, rdi
call qword [r13 + 0x18]
mov ebp, eax
mov eax, 0x927c5d11
nop dword [rax]
mov ecx, dword [0x141dcae80]
mov edx, dword [0x141dcae84]
add ecx, edx
add ecx, 0x3023c4a9
shr ecx, 1
imul rcx, rax
shr rcx, 0x3d
or ecx, 0x7f6ada68
cmp ecx, 0x6748af91
jb 0x140055120
jmp 0x140055430
mov eax, dword [0x141dcadb8]
add eax, dword [0x141dcadbc]
and eax, 0xe25f50f6
imul eax, eax, 0x264d7230
add eax, 0x6cb8d970
mov edi, dword [rbx + 0x30]
mov dword [rbx + 0x30], 0x30
movzx ecx, byte [rbx + 0x38]
mov byte [rbx + 0x38], 1
cmp eax, 0xfa6ac849
jbe 0x140055193
mov dword [rbx + 0x30], 0x30
mov byte [rbx + 0x38], 1
jmp 0x140055151
mov byte [rsp + 0x38], cl
mov r12, qword [rbx + 0x20]
mov eax, dword [0x141dcadc0]
mov ecx, dword [0x141dcadc4]
add eax, ecx
add eax, 0x2fd94fb4
or eax, 0xe74970a
add eax, 0x8c264666
cmp eax, 0x73f7c9df
jae 0x1400551e0
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r12
mov r8d, ebp
mov r9, r15
call fcn.140055470
nop word cs:[rax + rax]
mov eax, dword [0x141dcadc8]
add eax, dword [0x141dcadcc]
or eax, 0x1693ff14
imul esi, eax, 0x34384b1b
and esi, 0xdae8c3e9
mov r13, qword [rbx + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, r15
call fcn.140055470
cmp esi, 0x628ae7e0
ja 0x1400551e0
mov bpl, 1
test al, al
jne 0x140055430
nop word [rax + rax]
mov eax, dword [0x141dcae30]
mov ecx, dword [0x141dcae34]
add eax, ecx
add eax, 0xa21bd3d2
or eax, 0xfffaff6a
cmp eax, 0xc5314649
jb 0x140055230
xor r14d, r14d
nop word cs:[rax + rax]
mov eax, dword [0x141dcae38]
and eax, dword [0x141dcae3c]
imul eax, eax, 0x1afb2488
add eax, 0x3eb9a9a0
and eax, 0xf603a020
cmp eax, 0xb0a5314e
ja 0x140055260
cmp r14, qword [rsp + 0x28]
je 0x140055330
mov eax, dword [0x141dcae40]
add eax, dword [0x141dcae44]
and eax, 0x405d62a9
imul eax, eax, 0x233979e4
xor eax, 0x50eac04e
cmp eax, 0x98d63ec7
jb 0x14005528e
mov r15, qword [r13 + 0x20]
mov eax, dword [0x141dcae48]
sub eax, dword [0x141dcae4c]
add eax, 0x2c3532d
imul rax, rax, 0x4afb97db
shr rax, 0x3e
cmp eax, 0xe5e8f5a3
jne 0x1400552e3
mov rcx, r12
mov edx, 0x30
call r15
inc r14
nop word cs:[rax + rax]
mov eax, dword [0x141dcae50]
sub eax, dword [0x141dcae54]
and eax, 0x43c80620
or eax, 0x9031f0de
imul esi, eax, 0xbd392e4d
mov rcx, r12
mov edx, 0x30
call r15
cmp esi, 0xacb2d25
jb 0x1400552f0
test al, al
je 0x140055260
jmp 0x140055430
mov eax, dword [0x141dcae58]
sub eax, dword [0x141dcae5c]
or eax, 0x9f7fdffb
add eax, 0x60cddc68
cmp eax, 0x6f483895
ja 0x140055330
mov rcx, r12
mov rdx, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xc8]
call qword [r13 + 0x18]
nop word cs:[rax + rax]
mov ecx, dword [0x141dcae60]
or ecx, dword [0x141dcae64]
and ecx, 0x9e8a3b3b
cmp ecx, 0x6e0076f6
je 0x140055370
test al, al
jne 0x140055430
mov eax, dword [0x141dcae68]
xor edx, edx
div dword [0x141dcae6c]
imul eax, eax, 0xd9058f99
and eax, 0x1b874cc6
cmp eax, 0x9d329c70
je 0x1400553bb
mov dword [rbx + 0x30], edi
xor eax, eax
test al, al
je 0x1400553c0
mov dword [rbx + 0x30], edi
jmp 0x1400553b2
mov eax, dword [str.e_2]
add eax, dword [0x141dcae74]
shr eax, 2
imul rax, rax, 0x459e274f
shr rax, 0x3c
or eax, 0xdc70df32
cmp eax, 0xda5013d0
movzx ecx, byte [rsp + 0x38]
jne 0x1400553f0
mov byte [rbx + 0x38], cl
nop
mov eax, dword [0x141dcae78]
or eax, dword [0x141dcae7c]
imul eax, eax, 0x80e283c
and eax, 0xb85297f4
imul eax, eax, 0x38920364
mov byte [rbx + 0x38], cl
cmp eax, 0x75b37ea0
jb 0x1400553f0
mov al, 1
xor ebp, ebp
nop dword [rax + rax]
test al, al
je 0x140055420
nop word cs:[rax + rax]
mov eax, dword [0x141dcae88]
or eax, dword [0x141dcae8c]
add eax, 0xc7a28d3d
imul rax, rax, 0x59fd8a3b
shr rax, 0x3e
cmp eax, 0xfb8a6a87
je 0x140055430
mov eax, ebp
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret