Function at 0x140054a00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x50], xmm6
mov rdi, rdx
xor r12d, r12d
mov eax, dword [0x141dc50d0]
and eax, dword [str._Sz]
or eax, 0x5b12aeb3
imul rdx, rax, 0x555476f3
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1c
or eax, 0xdbeb61d6
cmp eax, 0x6a6b52ca
jb 0x140054a20
mov r13, qword [rcx + 0x10]
mov rbx, qword [rcx]
mov rbp, qword [rcx + 8]
xor r14d, r14d
movdqa xmm6, xmmword [0x1400ff750]
movdqa xmm7, xmmword [0x1400ff760]
movabs rsi, 0x8080808080808080
mov r15d, 0xa66a81b1
xor r9d, r9d
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x38], rdi
nop dword [rax]
cmp r12, r8
mov qword [rsp + 0x28], r9
jbe 0x140054ab0
mov r10, r12
jmp 0x140054e28
mov eax, dword [0x141dc50d8]
xor edx, edx
div dword [str.XlgE]
nop
mov eax, dword [0x141dc50e0]
xor eax, dword [0x141dc50e4]
add eax, 0x36425300
and eax, 0xc950c897
cmp eax, 0xc4bdc18a
je 0x140054ac0
mov rcx, r8
sub rcx, r12
lea r11, [rdi + r12]
cmp rcx, 0xf
ja 0x140054bb0
mov eax, dword [0x141dc50e8]
imul eax, dword [0x141dc50ec]
imul eax, eax, 0xe1b725d7
add eax, 0x2b6b166e
xor eax, 0x8f64fd78
cmp eax, 0xdff71103
ja 0x140054af1
cmp r8, r12
je 0x140054e20
xor eax, eax
mov edx, dword [0x141dc5128]
sub edx, dword [0x141dc512c]
imul edx, edx, 0xc03fd64
add edx, 0x546ce975
cmp edx, 0xa1f63fd9
ja 0x140054b20
cmp byte [r11 + rax], 0xa
je 0x140054d8e
nop dword [rax + rax]
test r14b, r14b
jne 0x140054b50
inc rax
mov edx, dword [0x141dc5130]
add edx, dword [0x141dc5134]
or edx, 0xe4aefa13
imul edx, edx, 0x8ed9ead7
xor edx, 0x3de8742e
cmp edx, 0x7613d774
jb 0x140054b58
nop
mov edx, dword [0x141dc5138]
mov r9d, dword [0x141dc513c]
add edx, r9d
add edx, 0x750592e4
cmp edx, 0x6c1bb5a1
jb 0x140054b80
cmp rax, rcx
jne 0x140054b20
jmp 0x140054e20
lea r9, [r11 + 7]
nop word cs:[rax + rax]
mov eax, dword [0x141dc50f0]
xor edx, edx
div dword [0x141dc50f4]
imul eax, eax, 0x7589d3dd
add eax, 0x18014db0
shr eax, 1
imul rax, rax, 0x2481f981
shr rax, 0x3c
cmp eax, 0xa21ca4ac
ja 0x140054bc0
and r9, 0xfffffffffffffff8
sub r9, r11
je 0x140054c60
je 0x140054c60
xor eax, eax
nop word [rax + rax]
cmp byte [r11 + rax], 0xa
je 0x140054d8e
inc rax
nop
mov edx, dword [0x141dc5120]
imul edx, dword [0x141dc5124]
add edx, 0x6321388
cmp edx, 0xa6eec252
ja 0x140054c10
cmp rax, r9
jne 0x140054c00
mov eax, dword [0x141dc5100]
xor eax, dword [0x141dc5104]
or eax, 0x39affa17
imul rax, r15
shr rax, 0x3e
cmp eax, 0x8b0ee7a3
je 0x140054c30
lea r10, [rcx - 0x10]
jmp 0x140054ca0
lea r10, [rcx - 0x10]
nop word cs:[rax + rax]
mov eax, dword [0x141dc50f8]
xor edx, edx
div dword [0x141dc50fc]
imul eax, eax, 0x23f576ac
or eax, 0xdd3f67e0
add eax, 0xd0fcfd46
cmp eax, 0x712b1b0b
jb 0x140054c70
xor r9d, r9d
jmp 0x140054ca5
cmp r9, r10
ja 0x140054d10
movdqu xmm0, xmmword [r11 + r9]
movdqa xmm1, xmm0
pxor xmm1, xmm6
paddq xmm1, xmm7
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rax, xmm1
test rax, rsi
jne 0x140054d10
add r9, 0x10
mov eax, dword [0x141dc5108]
xor edx, edx
div dword [0x141dc510c]
add eax, 0x79614cbc
shr eax, 2
imul rax, rax, 0x25dfd625
shr rax, 0x3a
or eax, 0xfd9dafd0
cmp eax, 0x8f101f7e
je 0x140054cd2
jmp 0x140054ca0
sub rcx, r9
je 0x140054e20
add r11, r9
xor eax, eax
nop
cmp byte [r11 + rax], 0xa
je 0x140054d8b
inc rax
nop word [rax + rax]
mov edx, dword [0x141dc5110]
mov r10d, dword [0x141dc5114]
add edx, r10d
add edx, 0x7046e5db
or edx, 0x18504104
and edx, 0x1e5859c4
cmp edx, 0xa4939067
je 0x140054d30
nop word [rax + rax]
mov edx, dword [0x141dc5118]
imul edx, dword [0x141dc511c]
add edx, 0x74758978
or edx, 0xeedde96b
cmp edx, 0x592aef4e
je 0x140054d60
cmp rax, rcx
jne 0x140054d20
jmp 0x140054e20
add rax, r9
mov r9, qword [rsp + 0x28]
lea r10, [r12 + rax]
inc r10
add r12, rax
cmp r12, r8
jae 0x140054dd4
movzx ecx, byte [rdi + r12]
nop word [rax + rax]
mov eax, dword [0x141dc5150]
xor edx, edx
div dword [0x141dc5154]
imul eax, eax, 0x7781bbf6
cmp eax, 0xb1879877
je 0x140054db0
cmp cl, 0xa
je 0x14005504c
mov eax, dword [0x141dc5140]
xor eax, dword [0x141dc5144]
add eax, 0x53095d6d
cmp eax, 0x65ae465f
ja 0x140054dd4
nop dword [rax]
mov eax, dword [0x141dc5148]
and eax, dword [0x141dc514c]
and eax, 0x561800a0
cmp eax, 0x90b3ee35
je 0x140054df0
mov r12, r10
cmp r10, r8
jbe 0x140054ab0
jmp 0x140054e28
mov r10, r8
mov r9, qword [rsp + 0x28]
mov r12b, 1
mov r15, r10
mov rax, r9
mov rsi, r8
cmp r9, r8
je 0x14005505d
mov qword [rsp + 0x48], rax
nop word cs:[rax + rax]
mov eax, dword [0x141dc5158]
or eax, dword [0x141dc515c]
or eax, 0x4bfb4857
add eax, 0x706f489a
or eax, 0x20f2e63a
cmp eax, 0x663b2c2
je 0x140054e50
cmp byte [r13], 0
je 0x140054ed5
mov eax, dword [0x141dc5198]
and eax, dword [0x141dc519c]
cmp eax, 0x174b9d8e
je 0x140054e79
mov r8d, 4
mov rcx, rbx
lea rdx, [0x141db2f70]
call qword [rbp + 0x18]
nop
mov ecx, dword [0x141dc51a0]
mov edx, dword [0x141dc51a4]
add ecx, edx
add ecx, 0x76d489e5
xor ecx, 0xdddd0622
imul ecx, ecx, 0x520a2156
cmp ecx, 0x9ff05c59
je 0x140054ea0
test al, al
mov r9, qword [rsp + 0x28]
jne 0x140055061
mov dword [rsp + 0x34], r12d
mov qword [rsp + 0x28], r15
mov r15, rsi
sub r15, r9
lea r12, [rdi + r9]
mov eax, dword [0x141dc5168]
and eax, dword [0x141dc516c]
add eax, 0xdd25222e
or eax, 0xa35d4af
imul rax, rax, 0x3b188bc3
shr rax, 0x3d
cmp eax, 0x536fcc53
ja 0x140054ee9
nop word cs:[rax + rax]
mov eax, dword [0x141dc5170]
and eax, dword [0x141dc5174]
imul rcx, rax, 0x55efc999
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
imul eax, eax, 0x2a6fce26
add eax, 0x7b51a562
cmp eax, 0x77ce921f
jb 0x140054f20
cmp rsi, r9
jne 0x140054f60
xor esi, esi
jmp 0x140054faa
mov eax, dword [str.Ymg_IA]
imul eax, dword [0x141dc517c]
add eax, 0x3c912204
or eax, 0x6dba0ed1
and eax, 0x6dba0edf
cmp eax, 0xe4cfba3e
ja 0x140054f60
mov eax, dword [0x141dc5180]
add eax, dword [0x141dc5184]
and eax, 0x54000880
add eax, 0xe79691cb
cmp eax, 0x5f1c3bbb
jb 0x140054f83
cmp byte [r12 + r15 - 1], 0xa
sete sil
mov eax, dword [0x141dc5188]
add eax, dword [0x141dc518c]
imul eax, eax, 0x760d09cf
add eax, 0x9ef76ca8
cmp eax, 0x9ef3e60f
jbe 0x140054fe0
mov byte [r13], sil
mov rcx, rbx
mov rdx, r12
mov r8, r15
call qword [rbp + 0x18]
nop dword [rax + rax]
mov eax, dword [0x141dc5190]
imul eax, dword [0x141dc5194]
add eax, 0x97ea266
and eax, 0x54eaca68
imul rdi, rax, 0x3bf212e7
shr rdi, 0x3c
mov byte [r13], sil
mov rcx, rbx
mov rdx, r12
mov r8, r15
call qword [rbp + 0x18]
cmp edi, 0x89662b19
ja 0x140054fe0
mov ecx, dword [rsp + 0x34]
or cl, al
mov r9, qword [rsp + 0x48]
mov r8, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
movabs rsi, 0x8080808080808080
mov r15d, 0xa66a81b1
mov r12, qword [rsp + 0x28]
je 0x140054a90
jmp 0x140055070
xor r12d, r12d
mov rax, r10
mov r15, r10
mov rsi, r10
jmp 0x140054e3d
xor eax, eax
jmp 0x140055070
mov al, 1
nop word cs:[rax + rax]
mov ecx, dword [0x141dc5160]
sub ecx, dword [0x141dc5164]
add ecx, 0x3b380f54
or ecx, 0x1584e501
and ecx, 0x1584e525
cmp ecx, 0x92a48396
je 0x140055070
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret