Function at 0x140052950
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 rdi, r8
mov r14, rcx
mov r10, qword [rsp + 0xb8]
test dl, dl
je 0x140052a23
nop dword [rax]
mov eax, dword [0x141dc4d08]
and eax, dword [0x141dc4d0c]
add eax, 0x1ca4ab41
and eax, 0xf7cc8c30
cmp eax, 0x40ce5705
je 0x140052980
nop dword [rax]
mov eax, dword [0x141dc4d10]
xor edx, edx
div dword [0x141dc4d14]
xor eax, 0xb0016030
and eax, 0xf08bfd75
add eax, 0x7a77b813
cmp eax, 0xc6a57a35
ja 0x1400529a0
mov r8d, dword [r14 + 0x34]
mov eax, r8d
and eax, 1
mov edx, 0x887a864b
mov r9d, 0x110000
mov rcx, rax
add rcx, r10
nop
mov r10d, dword [0x141dc4d18]
mov r11d, dword [0x141dc4d1c]
add r10d, r11d
add r10d, 0xe3ddaff4
imul r10, rdx
shr r10, 0x3e
test eax, eax
mov ebp, 0x2b
cmove ebp, r9d
cmp r10d, 0xde865d20
je 0x1400529e0
test r8b, 4
jne 0x140052ac0
jmp 0x140052ab3
lea rcx, [r10 + 1]
nop word [rax + rax]
mov eax, dword [0x141dc4cf0]
imul eax, dword [0x141dc4cf4]
add eax, 0x95e6c91d
or eax, 0x996d0355
cmp eax, 0x56a11032
jb 0x140052a30
nop
mov eax, dword [0x141dc4cf8]
or eax, dword [0x141dc4cfc]
imul eax, eax, 0xb11913b8
xor eax, 0x8a8f6a8f
imul rax, rax, 0x56b13ce7
shr rax, 0x3e
cmp eax, 0xb5c8f184
je 0x140052a50
nop dword [rax]
mov eax, dword [0x141dc4d00]
xor edx, edx
div dword [0x141dc4d04]
or eax, 0xd0341088
and eax, 0xd834728c
xor eax, 0x3418edc1
cmp eax, 0x606639f4
jb 0x140052a80
mov r8d, dword [r14 + 0x34]
mov ebp, 0x2d
test r8b, 4
jne 0x140052ac0
xor edi, edi
jmp 0x140052cd9
mov eax, dword [0x141dc4d20]
and eax, dword [0x141dc4d24]
add eax, 0xe2fb4aa1
xor eax, 0x9016b9bb
imul eax, eax, 0x85d9e9bd
cmp eax, 0xa3103d86
jb 0x140052ac0
nop word cs:[rax + rax]
mov eax, dword [0x141dc4d28]
and eax, dword [0x141dc4d2c]
xor eax, 0x40000210
or eax, 0x2336b10c
and eax, 0x6336b35e
cmp eax, 0xbb0e8913
je 0x140052af0
test rbx, rbx
je 0x140052b83
nop word [rax + rax]
mov eax, dword [0x141dc4d30]
xor edx, edx
div dword [0x141dc4d34]
add eax, 0xc0c59c81
xor eax, 0xda9d65da
imul eax, eax, 0x525c2f10
cmp eax, 0x12d1cfa
jb 0x140052b20
nop word cs:[rax + rax]
mov eax, dword [str.nW_u]
imul eax, dword [0x141dc4d3c]
imul eax, eax, 0x3e4f9bba
or eax, 0xe3c07dcd
add eax, 0x85a7de05
cmp eax, 0x9f282078
ja 0x140052b50
cmp rbx, 4
jae 0x140052b8a
xor edx, edx
xor eax, eax
jmp 0x140052ca0
xor edx, edx
jmp 0x140052cd6
mov eax, dword [str.w7rh]
xor edx, edx
div dword [0x141dc4d44]
mov rax, rbx
and rax, 0xfffffffffffffffc
nop
mov edx, dword [0x141dc4d48]
xor edx, dword [0x141dc4d4c]
imul edx, edx, 0x4363f9aa
xor edx, 0x10807408
or edx, 0x4d7d00a3
cmp edx, 0xf6801df
je 0x140052ba0
pxor xmm0, xmm0
xor edx, edx
movdqa xmm2, xmmword [0x1400ff720]
movdqa xmm3, xmmword [0x1400ff730]
pxor xmm1, xmm1
mov r9d, dword [0x141dc4d50]
imul r9d, dword [0x141dc4d54]
shr r9d, 2
imul r9, r9, 0x2367843
shr r9, 0x31
add r9d, 0x9c87a7b4
imul r10, r9, 0x2c29a6d1
shr r10, 0x20
sub r9d, r10d
shr r9d, 1
add r9d, r10d
shr r9d, 0x1b
cmp r9d, 0x72e8ffa0
ja 0x140052be0
movzx r9d, word [rdi + rdx]
movzx r10d, word [rdi + 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 rax, r11
jne 0x140052be0
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rdx, xmm0
cmp rax, rbx
je 0x140052cd6
nop word cs:[rax + rax]
mov r9d, dword [0x141dc4d58]
add r9d, dword [0x141dc4d5c]
xor r9d, 0xc6f6ae2c
cmp r9d, 0xaf809a39
jb 0x140052ca0
nop
xor r9d, r9d
cmp byte [rdi + rax], 0xc0
setge r9b
add rdx, r9
inc rax
cmp rbx, rax
jne 0x140052cc0
add rcx, rdx
mov r15, qword [rsp + 0xb0]
mov eax, dword [0x141dc4d60]
xor r9d, r9d
xor edx, edx
div dword [0x141dc4d64]
nop word cs:[rax + rax]
test r9b, r9b
jne 0x140052d00
cmp qword [r14], 0
je 0x140052e0e
mov rax, qword [r14 + 8]
sub rax, rcx
mov qword [rsp + 0x30], rax
jbe 0x140052e89
nop word cs:[rax + rax]
mov eax, dword [0x141dc4d70]
or eax, dword [0x141dc4d74]
xor eax, 0x420520b0
add eax, 0xc68fee33
and eax, 0x604c1393
cmp eax, 0x5d32eeda
ja 0x140052d30
test r8b, 8
jne 0x140052f73
nop dword [rax]
mov eax, dword [0x141dc4d88]
imul eax, dword [0x141dc4d8c]
and eax, 0x42737af1
add eax, 0xe64c2d3f
or eax, 0x53ffbcf7
cmp eax, 0xd5f59aac
je 0x140052d60
nop word cs:[rax + rax]
mov eax, dword [0x141dc4d90]
xor edx, edx
div dword [0x141dc4d94]
add eax, 0xbd9a105f
or eax, 0x9361ae74
imul eax, eax, 0xb067d8ea
cmp eax, 0x2d85c732
je 0x140052d90
movzx eax, byte [r14 + 0x38]
lea rcx, [0x141db730c]
movsxd rdx, dword [rcx + rax*4]
add rdx, rcx
jmp rdx
mov r12, qword [r14 + 0x20]
mov r14, qword [r14 + 0x28]
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r14
mov r8d, ebp
mov r9, rdi
call fcn.1400534e0
nop dword [rax]
mov ecx, dword [0x141dc4d68]
imul ecx, dword [0x141dc4d6c]
or ecx, 0x2240de8
and ecx, 0x2255df8
cmp ecx, 0xa8bb4fda
je 0x140052e30
mov dil, 1
test al, al
mov r8, qword [rsp + 0xb8]
jne 0x1400534b2
mov rcx, r12
mov rdx, r15
call qword [r14 + 0x18]
mov edi, eax
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x140052e80
jmp 0x1400534b2
mov r12, qword [r14 + 0x20]
mov r14, qword [r14 + 0x28]
mov eax, dword [0x141dc4d78]
xor eax, dword [0x141dc4d7c]
or eax, 0xedfdb6fb
cmp eax, 0x616baa92
jne 0x140052ec0
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r14
mov r8d, ebp
mov r9, rdi
call fcn.1400534e0
nop
mov eax, dword [0x141dc4d80]
xor eax, dword [0x141dc4d84]
imul rcx, rax, 0xf735819
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
imul esi, eax, 0x4746ce60
add esi, 0x16d1e600
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r14
mov r8d, ebp
mov r9, rdi
call fcn.1400534e0
cmp esi, 0xddaae524
ja 0x140052ec0
mov dil, 1
test al, al
mov r8, qword [rsp + 0xb8]
jne 0x1400534b2
nop dword [rax]
mov eax, dword [0x141dc4e48]
and eax, dword [0x141dc4e4c]
xor eax, 0xd06dc8ed
imul rax, rax, 0x37881b3d
shr rax, 0x3d
cmp eax, 0x2c324af4
je 0x140052f20
mov rcx, r12
mov rdx, r15
call qword [r14 + 0x18]
mov edi, eax
nop
mov eax, dword [0x141dc4e50]
imul eax, dword [0x141dc4e54]
add eax, 0x8ccbf857
or eax, 0xa3f8557e
cmp eax, 0xe19a4a36
je 0x140052f50
jmp 0x1400534b2
mov eax, dword [r14 + 0x30]
mov dword [rsp + 0x40], eax
mov dword [r14 + 0x30], 0x30
mov eax, dword [0x141dc4dc8]
sub eax, dword [0x141dc4dcc]
imul eax, eax, 0x9b5679cd
add eax, 0xcff5bb9
and eax, 0xf2b808aa
cmp eax, 0x84d63458
jne 0x14005326f
jmp 0x140053297
mov eax, dword [0x141dc4dd0]
imul eax, dword [0x141dc4dd4]
xor eax, 0x11ff2c70
add eax, 0x1ca1f0fa
movzx r15d, byte [r14 + 0x38]
mov byte [r14 + 0x38], 1
cmp eax, 0xb39e1db4
jae 0x14005329e
mov byte [r14 + 0x38], 1
jmp 0x14005326f
mov r12, qword [r14 + 0x20]
mov eax, dword [0x141dc4dd8]
xor edx, edx
div dword [0x141dc4ddc]
imul eax, eax, 0xba65877a
xor eax, 0x25020254
or eax, 0x4ab541ab
cmp eax, 0xc09c8a2a
jne 0x1400532e0
mov rdx, qword [r14 + 0x28]
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov r8d, ebp
mov r9, rdi
call fcn.1400534e0
nop
mov eax, dword [0x141dc4de0]
and eax, dword [0x141dc4de4]
and eax, 0x66431b5e
xor eax, 0xc8c9ad7
imul rsi, rax, 0x19cccd75
shr rsi, 0x38
mov r13, qword [r14 + 0x28]
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, rdi
call fcn.1400534e0
cmp esi, 0xa1da1e25
ja 0x1400532e0
mov dil, 1
test al, al
jne 0x1400534b2
xor ebx, ebx
mov eax, dword [0x141dc4e08]
and eax, dword [0x141dc4e0c]
add eax, 0x83b68740
xor eax, 0xca13311f
cmp eax, 0xf0f678c3
ja 0x140053330
mov esi, 0x8614e9f3
mov rbp, qword [rsp + 0xb8]
nop word [rax + rax]
mov eax, dword [0x141dc4e10]
xor edx, edx
div dword [0x141dc4e14]
nop
mov eax, dword [0x141dc4e18]
xor eax, dword [0x141dc4e1c]
shr eax, 1
imul rax, rsi
shr rax, 0x3e
add eax, 0x776a4827
cmp eax, 0x2975e3f9
jb 0x140053370
cmp rbx, qword [rsp + 0x30]
je 0x1400533ce
mov eax, dword [0x141dc4e20]
add eax, dword [0x141dc4e24]
or eax, 0x6d8d86ec
add eax, 0xea513165
cmp eax, 0x6008653c
jb 0x140053399
inc rbx
mov rcx, r12
mov edx, 0x30
call qword [r13 + 0x20]
test al, al
je 0x140053360
jmp 0x1400534b2
mov eax, dword [0x141dc4e28]
imul eax, dword [0x141dc4e2c]
mov rsi, qword [r13 + 0x18]
or eax, 0x7bd3fefb
imul eax, eax, 0xb8a07f68
cmp eax, 0x8186606
jae 0x140053401
mov rcx, r12
mov rdx, qword [rsp + 0xb0]
mov r8, rbp
call rsi
mov rbx, rbp
mov rbp, qword [rsp + 0xb0]
nop dword [rax]
mov eax, dword [0x141dc4e30]
sub eax, dword [0x141dc4e34]
imul r13d, eax, 0xa680ad9d
add r13d, 0xeac82c1f
mov eax, 0x9b173b5f
imul r13, rax
shr r13, 0x3f
mov rcx, r12
mov rdx, rbp
mov r8, rbx
call rsi
cmp r13d, 0x1227cd5c
ja 0x140053410
test al, al
jne 0x1400534b2
mov eax, dword [0x141dc4e38]
imul eax, dword [0x141dc4e3c]
and eax, 0x29220000
add eax, 0x436c8f66
cmp eax, 0xcc1fb989
mov ecx, dword [rsp + 0x40]
jbe 0x140053480
mov dword [r14 + 0x30], ecx
nop word cs:[rax + rax]
mov eax, dword [0x141dc4e40]
or eax, dword [0x141dc4e44]
add eax, 0xbc5eb096
imul rax, rax, 0x53c2d735
shr rax, 0x3e
add eax, 0xbad3eb91
mov dword [r14 + 0x30], ecx
cmp eax, 0x307caa7d
jb 0x140053480
mov byte [r14 + 0x38], r15b
xor edi, edi
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x1400534c0
mov eax, edi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret