Function at 0x140013cd0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x90
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rcx
mov rdx, qword [rcx]
mov qword [rsp + 0x68], rdx
mov rax, rcx
add rax, 8
mov qword [rsp + 0x70], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x78], rax
movabs r8, 0x70c41989f1b8c1d9
mov rcx, rdx
add rcx, r8
add rcx, 1
movabs r8, 0x70c41989f1b8c1d9
sub rcx, r8
mov qword [rsp + 0x80], rcx
movabs r8, 0xaa32184355bcdc28
movabs r9, 0x55cde7bcaa4323d7
xor r8, r9
xor rdx, r8
and rcx, rdx
mov qword [rsp + 0x88], rcx
cmp rax, 0
je 0x140013e7c
mov rax, qword [rsp + 0x88]
cmp rax, 0
jl 0x140013da6
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rax]
movabs r8, 0xcf39711383d754fb
movabs r9, 0x70c68eec7c28ab04
xor r8, r9
and rcx, r8
cmp rcx, rdx
mov qword [rsp + 0x50], rax
jl 0x140013e7c
jmp 0x140013fb1
mov eax, dword [str._mz_]
mov ecx, 0xeb7b184f
xor ecx, 0xd85a5f32
xor eax, ecx
mov edx, dword [0x140216bac]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
mov ecx, 0x68c1ec17
xor ecx, 0xa2b86287
mov edx, eax
xor edx, ecx
xor edx, 0xffffffff
mov ecx, 0x8904643f
xor ecx, 0x437deaaf
and ecx, edx
shl ecx, 1
mov edx, 0xdd8db04c
xor edx, 0x17f43edc
sub ecx, edx
sub eax, ecx
mov ecx, 0x73ad2461
xor ecx, 0x696efcf4
sub eax, ecx
sub eax, 0xb32ec5e1
add eax, 0x1ac3d895
mov ecx, 0x5f2bc5c1
xor ecx, 0x6fe69332
and eax, ecx
mov ecx, 0xb8650ca6
xor ecx, 0x684af338
cmp eax, ecx
ja 0x140014219
mov eax, dword [0x140216bb0]
mov ecx, dword [0x140216bb4]
xor ecx, 0x77d7fa0
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
mov ecx, 0x2ac3b692
xor edx, edx
div ecx
xor eax, 0xc1b59d78
sub eax, 0x9a2941bf
mov dword [rsp + 0x4c], eax
call fcn.140008bc6
mov eax, dword [rsp + 0x4c]
cmp eax, 0x9265f67e
ja 0x140013e32
jmp 0x1400140fa
mov ecx, dword [0x140216bb8]
mov edx, dword [0x140216bbc]
mov eax, 0x32511495
xor eax, 0x23546062
xor edx, eax
mov r8d, 0x205eec0b
xor r8d, 0xdfa113f4
mov eax, ecx
xor eax, r8d
mov r8d, ecx
xor r8d, 0xffffffff
or eax, r8d
and eax, edx
xor eax, 0xffffffff
and edx, edx
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
mov edx, 0x972aef30
xor edx, 0x68d510cf
xor ecx, edx
or eax, ecx
and eax, 0x142038b6
mov ecx, 0xd74590b6
xor edx, edx
div ecx
mov ecx, 0xa2e10e0
xor ecx, 0xd33e6caf
add eax, ecx
cmp eax, 0x3a5df215
je 0x140014222
mov rcx, qword [rsp + 0x68]
mov eax, dword [0x140216bc0]
or eax, dword [0x140216bc4]
mov r8d, 0xf1b04650
xor edx, edx
div r8d
mov r8d, 0x7f9c9d4e
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x78]
imul eax, eax, 0xb3030f84
mov dword [rsp + 0x3c], eax
mov eax, 0x3841cd1
xor eax, 0xfc66ca0c
mov dword [rsp + 0x38], eax
mov r8d, 1
mov r9d, 0x18
mov qword [rsp + 0x20], 8
call fcn.140013020
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x88]
mov ecx, dword [rsp + 0x38]
mov r9, rax
mov eax, dword [rsp + 0x3c]
mov qword [rsp + 0x40], r9
mov qword [r8], r9
cmp rdx, 0
setl dl
mov byte [rsp + 0x4b], dl
cmp eax, ecx
je 0x140013efa
mov rax, qword [rsp + 0x40]
mov cl, byte [rsp + 0x4b]
test cl, 1
mov qword [rsp + 0x50], rax
jne 0x140013fa7
jmp 0x140013fb1
call fcn.140008bc6
jmp 0x1400140fa
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov ecx, dword [0x140216bc8]
mov r8d, dword [0x140216bcc]
mov eax, 0xfa6f167f
xor eax, 0x590e980
mov r9d, r8d
xor r9d, eax
mov edx, ecx
and edx, r9d
mov eax, ecx
or eax, r9d
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, r8d
or ecx, r8d
imul ecx, edx
add ecx, eax
mov eax, ecx
and eax, 0xcf993501
shl eax, 1
xor ecx, 0xcf993501
add ecx, eax
mov eax, ecx
and eax, 0xf27df9c3
mov edx, 0x154a7b50
xor edx, 0xe7378293
xor ecx, edx
or eax, ecx
mov ecx, 0x52dce780
xor edx, edx
div ecx
cmp eax, 0x1f7cb701
je 0x14001422b
mov r8, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x60]
mov r10, qword [rsp + 0x80]
mov esi, dword [0x140216bd0]
mov eax, 0x9c914112
xor eax, 0x14d10042
xor esi, eax
mov eax, dword [0x140216bd4]
sub esi, 0x9cc25d2b
sub esi, eax
add esi, 0x9cc25d2b
mov edx, 0xe9bfb098
xor edx, 0x16404f67
mov eax, esi
xor eax, edx
and eax, 0x7bb35b0
mov r11d, 0xffffffff
xor r11d, 0x7bb35b0
and esi, r11d
mov edx, 0xffffffff
xor edx, 0x3ec91294
and edx, 0x7bb35b0
and r11d, 0x3ec91294
or eax, esi
or edx, r11d
xor eax, edx
and eax, 0x8f135cca
mov r11d, 0x3fe78fb7
xor edx, edx
div r11d
mov rdx, qword [rsp + 0x58]
mov qword [r9], r10
add rcx, 8
imul r8, r8, 0x18
add rcx, r8
mov r8, qword [rdx]
mov qword [rcx], r8
mov r8, qword [rdx + 8]
mov qword [rcx + 8], r8
mov rdx, qword [rdx + 0x10]
mov qword [rcx + 0x10], rdx
cmp eax, 0xfe10341e
je 0x14001422b
jmp 0x1400140fa
mov ecx, dword [0x140216bd8]
mov edx, dword [0x140216bdc]
xor edx, 0x3aaf6d64
mov eax, ecx
and eax, edx
mov r8d, 0xeab5d3b5
xor r8d, 0x154a2c4a
xor eax, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0xb1f6db87
xor edx, edx
div ecx
mov ecx, 0x27900f34
xor ecx, 0xa6dae484
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
and eax, edx
mov edx, 0x2851d4b0
xor edx, 0xbf6aa273
mov r8d, 0x14633d3e
xor r8d, 0xeb9cc2c1
xor edx, r8d
mov r8d, 0xffffffff
xor r8d, 0x973b76c3
and edx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x973b76c3
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0x18862ef0
jb 0x140014234
mov ecx, dword [0x140216be0]
xor ecx, 0xbd915e34
mov edx, dword [0x140216be4]
mov eax, ecx
xor eax, 0xffffffff
mov r8d, ecx
xor r8d, 0xffffffff
or eax, r8d
xor eax, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
or eax, r8d
and edx, edx
xor edx, 0xffffffff
and ecx, edx
mov edx, 0x3573c10b
xor edx, 0xca8c3ef4
xor ecx, edx
and eax, ecx
xor eax, 0xffffffff
imul eax, eax, 0xbf7a4409
or eax, 0x31504607
mov ecx, 0x87e209c6
xor ecx, 0x7ae9c3ab
sub eax, ecx
cmp eax, 0x76a538d8
jbe 0x1400141a6
add rsp, 0x90
pop rsi
ret
lodsd eax, dword [rsi]
rol ch, cl
xchg esi, eax
jmp 0x140013e32
sub byte [rbx], ah
test al, 0x10
jmp 0x140013efa
cli
cmp esi, dword [rax + 0x5f]
jmp 0x140014031
jge 0x140014252
jp 0x140014222
imul edi, edi, 0x1f0fffff
add byte [rax - 0x7d], cl
sub rsp, 0x58
mov dword [rsp + 0x50], eax