Function at 0x140053970
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rbx, r9
mov r14, r8
mov r15, rcx
mov rdi, qword [rsp + 0xb8]
mov r13, qword [rsp + 0xb0]
nop dword [rax]
mov eax, dword [0x141dc6c10]
xor eax, dword [0x141dc6c14]
and eax, 0x704524
imul eax, eax, 0x2465952b
cmp eax, 0x198d8a58
je 0x1400539a0
test dl, dl
je 0x140053a30
mov eax, 0x110000
nop word [rax + rax]
mov ecx, dword [0x141dc6c18]
and ecx, dword [0x141dc6c1c]
imul edx, ecx, 0x8f51126c
add edx, 0xb269fe6e
mov ecx, dword [r15 + 0x34]
mov r8d, ecx
and r8d, 1
mov ebp, 0x2b
cmove ebp, eax
cmp edx, 0x68ec238f
ja 0x1400539d0
add r8, rdi
nop word cs:[rax + rax]
mov eax, dword [0x141dc6c20]
sub eax, dword [0x141dc6c24]
imul eax, eax, 0xe1c47313
or eax, 0x40a58e12
cmp eax, 0xabcaec64
je 0x140053a10
jmp 0x140053a3d
lea r8, [rdi + 1]
mov ecx, dword [r15 + 0x34]
mov ebp, 0x2d
mov eax, dword [0x141dc6c28]
xor edx, edx
div dword [0x141dc6c2c]
xor eax, eax
nop dword [rax]
test al, al
jne 0x140053a50
test cl, 4
jne 0x140053a6b
xor r14d, r14d
cmp qword [r15], 0
jne 0x140053c64
jmp 0x140053da0
test rbx, rbx
je 0x140053a93
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140053a80
cmp rbx, 4
jae 0x140053a9a
xor edx, edx
xor eax, eax
jmp 0x140053c10
xor edx, edx
jmp 0x140053c57
mov eax, dword [0x141dc6c30]
xor edx, edx
div dword [0x141dc6c34]
mov rax, rbx
and rax, 0xfffffffffffffffc
nop
mov edx, dword [0x141dc6c38]
xor edx, dword [0x141dc6c3c]
add edx, 0xa3b54b20
imul rdx, rdx, 0x5331fca9
shr rdx, 0x3d
add edx, 0x246d73d5
cmp edx, 0x6ff810c6
ja 0x140053ab0
nop dword [rax + rax]
mov edx, dword [0x141dc6c40]
add edx, dword [0x141dc6c44]
xor edx, 0xca664834
imul edx, edx, 0xa6d899c5
and edx, 0xe23b1dbb
cmp edx, 0xf0d40a83
je 0x140053ae0
pxor xmm0, xmm0
xor edx, edx
movdqa xmm2, xmmword [0x140101720]
movdqa xmm3, xmmword [0x140101730]
pxor xmm1, xmm1
mov r9d, dword [0x141dc6c48]
mov r10d, dword [0x141dc6c4c]
add r9d, r10d
add r9d, 0xe3d2641f
xor r9d, 0xa6708a98
shr r9d, 1
imul r9, r9, 0x95cdd83
shr r9, 0x3a
cmp r9d, 0x33a6327b
ja 0x140053b20
movzx r9d, word [r14 + rdx]
movzx r10d, word [r14 + rdx + 2]
lea r11, [rdx + 4]
movd xmm4, r9d
movd xmm5, r10d
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 rdx, r11
cmp r11, rax
jne 0x140053b20
mov r9d, 0x86fe00a9
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rdx, xmm0
nop word [rax + rax]
mov r10d, dword [0x141dc6c50]
sub r10d, dword [0x141dc6c54]
imul r10d, r10d, 0x827faf52
imul r10, r9
shr r10, 0x3e
imul r10d, r10d, 0x98a05e4
cmp r10d, 0x1dc5fbe1
ja 0x140053bd0
cmp rax, rbx
je 0x140053c57
nop word cs:[rax + rax]
mov r9d, dword [0x141dc6c58]
sub r9d, dword [0x141dc6c5c]
or r9d, 0x390dd767
add r9d, 0xd930b628
cmp r9d, 0x867c5b44
jb 0x140053c10
nop word cs:[rax + rax]
xor r9d, r9d
cmp byte [r14 + rax], 0xc0
setge r9b
add rdx, r9
inc rax
cmp rbx, rax
jne 0x140053c40
add r8, rdx
cmp qword [r15], 0
je 0x140053da0
mov r9, qword [r15 + 8]
xor eax, eax
nop word [rax + rax]
test al, al
jne 0x140053c70
sub r9, r8
jbe 0x140053f14
nop dword [rax]
mov eax, dword [0x141dc6c98]
add eax, dword [0x141dc6c9c]
xor eax, 0x414c9482
and eax, 0xcb7eb79b
add eax, 0xda151baf
cmp eax, 0x75163435
ja 0x140053c80
nop word cs:[rax + rax]
mov eax, dword [0x141dc6ca0]
and eax, dword [0x141dc6ca4]
add eax, 0xc2c37d3d
or eax, 0x43be02d9
cmp eax, 0xde37f71b
je 0x140053cb0
nop dword [rax]
mov eax, dword [0x141dc6ca8]
add eax, dword [0x141dc6cac]
imul eax, eax, 0xd9e2caae
add eax, 0xefe52504
or eax, 0x78ced9cf
cmp eax, 0x8d06a80d
je 0x140053cd0
test cl, 8
jne 0x140054008
nop dword [rax]
mov eax, dword [0x141dc6cb8]
or eax, dword [0x141dc6cbc]
imul rax, rax, 0x5ab8eaed
shr rax, 0x3d
not eax
and eax, 0x40993543
cmp eax, 0xf33b6e
je 0x140053d00
nop word cs:[rax + rax]
mov eax, dword [0x141dc6cc0]
add eax, dword [0x141dc6cc4]
xor eax, 0x9013cdb5
add eax, 0xf81e734c
xor eax, 0x859a077f
cmp eax, 0x77d39347
ja 0x140053d30
movzx ecx, byte [r15 + 0x38]
nop word [rax + rax]
mov eax, dword [0x141dc6cc8]
xor edx, edx
div dword [0x141dc6ccc]
or eax, 0xafd2d06b
imul eax, eax, 0x408171d3
cmp eax, 0xb626c787
je case.0x14002b60c.13
lea rax, [0x141db92ec]
movsxd rdx, dword [rax + rcx*4]
add rdx, rax
jmp rdx
mov eax, dword [0x141dc6c60]
sub eax, dword [0x141dc6c64]
imul eax, eax, 0xd3d362e1
xor eax, 0xb86689e4
add eax, 0x8d915fc5
cmp eax, 0xee392bd4
ja 0x140053da0
nop word cs:[rax + rax]
mov eax, dword [0x141dc6c68]
or eax, dword [0x141dc6c6c]
add eax, 0x890a871d
xor eax, 0xbdf3c7a
imul eax, eax, 0x2e41d4db
cmp eax, 0x86ad6b24
jb 0x140053dd0
mov r12, qword [r15 + 0x20]
mov eax, dword [0x141dc6c70]
xor edx, edx
div dword [0x141dc6c74]
imul rax, rax, 0x29dac923
shr rax, 0x3d
or eax, 0x528ef710
cmp eax, 0xa0c5ba6d
jbe 0x140053e40
mov rdx, qword [r15 + 0x28]
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov r8d, ebp
mov r9, r14
call fcn.140054580
nop word cs:[rax + rax]
mov esi, dword [0x141dc6c78]
or esi, dword [0x141dc6c7c]
xor esi, 0x1b77b993
add esi, 0xa7308c7e
mov r13, qword [r15 + 0x28]
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, r14
call fcn.140054580
cmp esi, 0x166d317a
jb 0x140053e40
mov bl, 1
test al, al
jne 0x140054568
mov rsi, qword [r13 + 0x18]
mov eax, dword [0x141dc6c80]
or eax, dword [0x141dc6c84]
add eax, 0x4191e0a0
cmp eax, 0x51815bd9
mov r14, rdi
mov r15, qword [rsp + 0xb0]
jbe 0x140053ec0
mov rcx, r12
mov rdx, r15
mov r8, r14
call rsi
nop word cs:[rax + rax]
mov edi, dword [0x141dc6c88]
sub edi, dword [0x141dc6c8c]
add edi, 0x7e7b6b7a
and edi, 0xe91f5844
mov rcx, r12
mov rdx, r15
mov r8, r14
call rsi
cmp edi, 0x7271cf58
jb 0x140053ec0
mov ebx, eax
nop dword [rax]
mov eax, dword [0x141dc6c90]
mov ecx, dword [0x141dc6c94]
add eax, ecx
add eax, 0x70b5f6f2
and eax, 0xf65725bd
cmp eax, 0xa44e791b
je 0x140053ef0
jmp 0x140054568
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140053f20
mov r12, qword [r15 + 0x20]
mov eax, dword [0x141dc6cb0]
sub eax, dword [0x141dc6cb4]
mov r15, qword [r15 + 0x28]
or eax, 0xff9b94f8
and eax, 0xff9f96fa
cmp eax, 0x9cea8a8
jne 0x140053f5f
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r15
mov r8d, ebp
mov r9, r14
call fcn.140054580
xor esi, esi
nop word cs:[rax + rax]
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r15
mov r8d, ebp
mov r9, r14
call fcn.140054580
test sil, sil
jne 0x140053f70
mov bl, 1
test al, al
jne 0x140054568
mov eax, dword [0x141dc6d78]
xor eax, dword [0x141dc6d7c]
mov rsi, qword [r15 + 0x18]
imul eax, eax, 0xbe2403e1
or eax, 0xfe02954b
cmp eax, 0xd9e608f7
mov r14, rdi
mov r15, r13
jne 0x140053fd0
mov rcx, r12
mov rdx, r15
mov r8, r14
call rsi
nop dword [rax + rax]
mov edi, dword [0x141dc6d80]
and edi, dword [str.m6_vnR]
or edi, 0x33f1b269
add edi, 0x4bb26537
or edi, 0x99c45ee9
mov rcx, r12
mov rdx, r15
mov r8, r14
call rsi
cmp edi, 0xcf3e318c
je 0x140053fd0
mov ebx, eax
jmp 0x140054568
mov rdi, r9
mov eax, dword [r15 + 0x30]
mov dword [rsp + 0x38], eax
mov dword [r15 + 0x30], 0x30
movzx eax, byte [r15 + 0x38]
mov byte [rsp + 0x40], al
mov byte [r15 + 0x38], 1
nop dword [rax]
mov eax, dword [0x141dc6cf8]
xor eax, dword [0x141dc6cfc]
or eax, 0x478b5e56
add eax, 0x7a053028
xor eax, 0x791bbe7b
cmp eax, 0xdbdb3a47
ja 0x140054030
mov r12, qword [r15 + 0x20]
mov eax, dword [0x141dc6d00]
sub al, 0xd7
add dword [rcx], esi
sal bh, cl
xor eax, 0x1d72ca0
or eax, 0x61f2f3d8
shr eax, 1
mov ecx, 0x8bb1f41f
imul rcx, rax
shr rcx, 0x3e
cmp ecx, 0x527d6306
jne 0x1400541fc
jmp 0x14005423b
mov eax, dword [0x141dc6d08]
or eax, dword [0x141dc6d0c]
and eax, 0x127a87f0
imul esi, eax, 0x4d465d4
add esi, 0xb24b70b8
mov r13, qword [r15 + 0x28]
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, r14
call fcn.140054580
cmp esi, 0xeb28fcb0
jbe 0x140054254
mov rdx, qword [r15 + 0x28]
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov r8d, ebp
mov r9, r14
call fcn.140054580
jmp 0x1400541fc
mov bl, 1
test al, al
jne 0x140054568
nop
mov eax, dword [0x141dc6d50]
and eax, dword [0x141dc6d54]
add eax, 0xf5932a75
or eax, 0x87b70b32
cmp eax, 0x3635f232
jb 0x140054260
xor esi, esi
mov rcx, rdi
nop word cs:[rax + rax]
mov eax, dword [0x141dc6d58]
xor edx, edx
div dword [0x141dc6d5c]
nop
mov eax, dword [0x141dc6d60]
imul eax, dword [0x141dc6d64]
imul rax, rax, 0x54498905
shr rax, 0x3e
imul eax, eax, 0x680f6ead
xor eax, 0x84322765
cmp eax, 0xceb834a7
ja 0x1400542a0
cmp rsi, rcx
je 0x140054302
mov eax, dword [0x141dc6d68]
add eax, dword [0x141dc6d6c]
and eax, 0xe7ead634
cmp eax, 0xa42e074f
je 0x1400542cf
inc rsi
mov rcx, r12
mov edx, 0x30
call qword [r13 + 0x20]
test al, al
mov rcx, rdi
je 0x140054290
jmp 0x140054568
mov rcx, r12
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
call qword [r13 + 0x18]
test al, al
movzx ecx, byte [rsp + 0x40]
jne 0x140054568
mov eax, dword [rsp + 0x38]
mov dword [r15 + 0x30], eax
mov eax, dword [0x141dc6d70]
sub eax, dword [0x141dc6d74]
add eax, 0xa047d40e
xor eax, 0x70550a25
or eax, 0x8f2841ca
cmp eax, 0xbe5f2e36
jae 0x140054354
mov byte [r15 + 0x38], cl
mov al, 1
xor ebx, ebx
nop dword [rax + rax]
mov byte [r15 + 0x38], cl
test al, al
je 0x140054360
jmp 0x140054568
mov eax, ebx
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret