Function at 0x140116020
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x70
lea rbp, [rsp + 0x70]
mov qword [rbp - 0x18], r8
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x30], rcx
mov eax, 0x10
call fcn.1401f0aa0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x28], rax
sub rsp, 0x20
call fcn.140115c90
add rsp, 0x20
lea rcx, [rbp - 8]
mov edx, 8
sub rsp, 0x20
call fcn.140116c20
mov rax, qword [rbp - 0x20]
mov r8, qword [rbp - 0x18]
add rsp, 0x20
movabs rcx, 0x7b25fd07ca45e072
sub rax, rcx
sub rax, r8
movabs rcx, 0x7b25fd07ca45e072
add rax, rcx
mov qword [rbp - 0x10], rax
cmp rax, 1
jl 0x140116be2
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x18]
mov rdx, rax
add rdx, rcx
mov qword [rbp - 0x40], rdx
mov al, byte [rax + rcx]
mov byte [rbp - 0x35], al
movzx ecx, al
mov dword [rbp - 0x34], ecx
cmp al, 0xff
jle 0x1401160df
mov ecx, dword [rbp - 0x34]
sub rsp, 0x20
call fcn.140116e50
add rsp, 0x20
mov qword [rbp - 8], rax
jmp 0x140116be2
mov rax, qword [rbp - 0x10]
movabs rcx, 0x8f732d886d211114
movabs rdx, 0x8f732d886d211115
xor rcx, rdx
cmp rax, rcx
je 0x140116be2
mov rax, qword [rbp - 0x10]
movabs rcx, 0x86ae6f9851dd58a7
movabs rdx, 0x86ae6f9851dd58a4
xor rcx, rdx
cmp rax, rcx
jbe 0x1401165c3
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x40]
mov eax, 0xbbb65dd5
xor eax, 0xbbb65dd5
mov dword [rcx], eax
movabs r8, 0x9b06b419b0ec013c
movabs rax, 0x9b06b419b0ec0138
xor r8, rax
sub rsp, 0x20
call fcn.140116f50
mov rax, qword [rbp - 0x28]
add rsp, 0x20
mov ecx, dword [rax]
mov dword [rbp - 0x48], ecx
mov eax, ecx
and eax, 0xc0e0
xor ecx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0xc0c0c0f8
mov edx, 0xbcd809a5
xor edx, 0x4711ae1c
mov r9d, 0x14676621
xor r9d, 0xeb9899de
xor edx, r9d
or ecx, r8d
or edx, 0xfbc9a7b9
xor ecx, 0xffffffff
and ecx, edx
mov dword [rbp - 0x44], ecx
cmp eax, 0x80c0
jne 0x14011627e
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x18]
mov r8d, dword [rbp - 0x34]
mov ecx, 0x66d1b61
xor ecx, 0x66d1b67
shl r8d, cl
mov ecx, r8d
mov r8d, ecx
xor r8d, 0x7c0
xor r8d, 0xffffffff
mov r9d, 0xd5d3b764
xor r9d, 0xd5d3b0a4
or ecx, r9d
and ecx, r8d
movabs r8, 0xdb48af243a2b814c
sub rdx, r8
add rdx, 1
movabs r8, 0xff502ec6b840fc76
movabs r9, 0x241881e2826b7d3a
xor r8, r9
add rdx, r8
mov al, byte [rax + rdx]
and al, 0x3f
movzx edx, al
mov eax, ecx
or eax, edx
mov r8d, 0x202cdaf7
xor r8d, 0xdfd32508
xor eax, r8d
or ecx, edx
mov edx, 0x33bf8c7b
xor edx, 0xcc407384
xor ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov dword [rbp - 0x4c], eax
mov ecx, 0xf4b6a60d
xor ecx, 0xf4b6a672
cmp eax, ecx
jbe 0x1401164a7
mov ecx, dword [rbp - 0x4c]
sub rsp, 0x20
call fcn.140116e50
add rsp, 0x20
mov qword [rbp - 8], rax
jmp 0x1401164a7
mov eax, dword [rbp - 0x48]
mov ecx, eax
xor ecx, 0xc0c0f0
mov edx, 0xd66d3db8
xor edx, 0x2992c247
xor ecx, edx
or eax, 0xc0c0f0
and eax, ecx
mov ecx, 0x399f57c1
xor ecx, 0x391fd721
cmp eax, ecx
jne 0x1401163ab
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x18]
mov r8d, dword [rbp - 0x34]
shl r8d, 0xc
and r8d, 0xf000
movabs rdx, 0x3daabcb088c2d523
movabs r9, 0x3daabcb088c2d522
xor rdx, r9
add rcx, rdx
mov cl, byte [rax + rcx]
mov dl, 0x56
xor dl, 0x69
and cl, dl
movzx edx, cl
mov ecx, 0xeabb0c0e
xor ecx, 0xeabb0c08
shl edx, cl
mov rcx, qword [rbp - 0x18]
or edx, r8d
mov r8, rcx
and r8, 2
shl r8, 1
xor rcx, 2
add rcx, r8
mov al, byte [rax + rcx]
mov cl, 0x46
xor cl, 0x79
and al, cl
movzx eax, al
mov r8d, eax
xor r8d, 0xffffffff
mov ecx, edx
and ecx, r8d
mov r8d, edx
xor r8d, eax
mov eax, edx
add eax, r8d
sub eax, ecx
mov dword [rbp - 0x50], eax
cmp eax, 0x800
setb al
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
and ecx, edx
mov edx, 0xffffffff
xor edx, 0xf800
mov r8d, 0xffffffff
xor r8d, 0xf800
and edx, r8d
mov r8d, 0xd8ddec1d
xor r8d, 0x272213e2
xor ecx, r8d
xor edx, 0xffffffff
and ecx, edx
cmp ecx, 0xd800
sete cl
or al, cl
test al, 1
jne 0x1401164a7
mov ecx, dword [rbp - 0x50]
sub rsp, 0x20
call fcn.140116e50
add rsp, 0x20
mov qword [rbp - 8], rax
jmp 0x1401164a7
mov eax, dword [rbp - 0x44]
cmp eax, 0x808080f0
jne 0x1401164a7
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x18]
mov r9d, dword [rbp - 0x34]
mov ecx, 0x3170b375
xor ecx, 0x3170b367
shl r9d, cl
mov ecx, r9d
add ecx, 1
mov r8d, 0xd241696e
xor r8d, 0x2dbe9691
xor r9d, r8d
or r9d, 0x1c0000
add r9d, ecx
movabs rcx, 0x4ca8ae4e7784f11f
movabs r8, 0x492890c7f6a361cd
xor rcx, r8
mov r8, rdx
sub r8, rcx
movabs rcx, 0x226dbe18bc4528fc
movabs r10, 0x226dbe18bc4528fd
xor rcx, r10
add r8, rcx
movabs rcx, 0x5803e89812790d2
add r8, rcx
mov rcx, rax
add rcx, r8
mov cl, byte [rcx]
and cl, 0x3f
movzx ecx, cl
shl ecx, 0xc
mov r8d, r9d
and r8d, ecx
xor r8d, 0xffffffff
add ecx, r9d
add ecx, 1
add ecx, r8d
mov r8b, byte [rax + rdx + 2]
and r8b, 0x3f
movzx r8d, r8b
shl r8d, 6
or ecx, r8d
mov al, byte [rax + rdx + 3]
and al, 0x3f
movzx edx, al
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov dword [rbp - 0x54], eax
add eax, 0xffff0001
cmp eax, 0x100001
jae 0x1401164a7
mov ecx, dword [rbp - 0x54]
sub rsp, 0x20
call fcn.140116e50
add rsp, 0x20
mov qword [rbp - 8], rax
mov eax, dword [0x1401f9078]
mov ecx, 0xec15c870
xor ecx, 0xaf8f660d
xor eax, ecx
mov r8d, dword [0x1401f907c]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xef178ced
xor ecx, 0xc1d05f57
add eax, ecx
mov ecx, 0xdfb00985
xor ecx, 0xdfb00985
mov edx, 0xfb02b38e
xor edx, 0x4e036286
sub ecx, edx
add eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x19ba9f2b
xor edx, 0xb2ae6e85
and edx, ecx
mov r8d, 0x318c05a
xor r8d, 0xa80c31f4
mov ecx, 0xedd5097f
xor ecx, 0x122af680
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xab14f1ae
or eax, 0xab14f1ae
imul eax, edx
add eax, ecx
cmp eax, 0x93263fee
ja 0x140116beb
mov eax, dword [0x1401f9080]
mov r8d, dword [0x1401f9084]
mov edx, r8d
xor edx, 0xffffffff
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
mov ecx, 0x6539c792
xor edx, edx
div ecx
mov ecx, eax
mov eax, 0x7c77101f
xor eax, 0x4a060cb9
add ecx, eax
mov edx, 0xf4e565d7
xor edx, 0xb21bd1f4
mov eax, ecx
and eax, edx
mov edx, 0xe49f7f34
xor edx, 0xa261cb17
or ecx, edx
add eax, ecx
cmp eax, 0x8fe3e273
jae 0x140116beb
jmp 0x140116be2
mov eax, dword [0x1401f9088]
xor eax, 0x5bdc1936
add eax, dword [0x1401f908c]
or eax, 0x21f48b2c
or eax, 0x1fe15df7
mov ecx, 0xf0037f1c
xor edx, edx
div ecx
mov ecx, 0x2984175b
xor ecx, 0x2ad1b69e
cmp eax, ecx
je 0x140116bf4
mov rdx, qword [rbp - 0x30]
mov r8, qword [rbp - 0x18]
mov ecx, dword [0x1401f9090]
mov r9d, dword [0x1401f9094]
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
mov r10d, 0x3d32dc09
xor r10d, 0xc2cd23f6
xor eax, r10d
mov r11d, 0x3738111
xor r11d, 0xfc8c7eee
mov r10d, r9d
xor r10d, r11d
or eax, r10d
and r9d, r9d
xor r9d, 0xffffffff
and ecx, r9d
xor ecx, 0xffffffff
mov r9d, 0xb804066b
xor r9d, 0x47fbf994
xor eax, r9d
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xd5b189af
xor ecx, 0x9fc09011
sub eax, ecx
mov ecx, 0x2f8568f
xor ecx, 0x9dd6e53e
sub eax, ecx
add eax, 0x4a7119be
mov ecx, 0x16ff1a77
xor ecx, 0x38be9790
or eax, ecx
mov r9d, 0xfdced82
xor r9d, 0x5403055d
mov ecx, eax
and ecx, r9d
mov r9d, 0x845de15a
xor r9d, 0x845de158
imul ecx, r9d
xor eax, 0x5bdfe8df
add eax, ecx
mov ecx, 0x1d0dab90
xor ecx, 0xf5ea95e3
mov dl, byte [rdx + r8 + 1]
movzx r8d, dl
mov dword [rbp - 0x5c], r8d
and dl, 0xc0
mov r8b, 0xe4
xor r8b, 0x64
cmp dl, r8b
sete dl
mov byte [rbp - 0x55], dl
cmp eax, ecx
ja 0x1401165fa
mov al, byte [rbp - 0x55]
test al, 1
jne 0x1401166f7
jmp 0x140116be2
mov al, byte [rbp - 0x35]
and al, 0xe0
cmp al, 0xc0
jne 0x140116785
mov eax, dword [rbp - 0x5c]
mov edx, dword [rbp - 0x34]
mov ecx, 0xe8c21ff5
xor ecx, 0xe8c21ff3
shl edx, cl
mov ecx, 0x530fcdf4
xor ecx, 0x530fca34
and edx, ecx
mov ecx, eax
add ecx, 1
mov r8d, 0xe9f1473e
xor r8d, 0x160eb8c1
xor eax, r8d
or eax, 0x3f
add eax, ecx
mov ecx, edx
and ecx, eax
xor ecx, 0xffffffff
add eax, edx
mov edx, 0xbf70956f
xor edx, 0xbf70956e
add eax, edx
add eax, ecx
mov dword [rbp - 0x60], eax
mov ecx, 0x5cc4bff4
xor ecx, 0x5cc4bf8b
cmp eax, ecx
jbe 0x140116be2
mov ecx, dword [rbp - 0x60]
sub rsp, 0x20
call fcn.140116e50
add rsp, 0x20
mov qword [rbp - 8], rax
jmp 0x140116be2
mov cl, byte [rbp - 0x35]
mov rax, qword [rbp - 0x10]
sub rax, 3
sete al
not cl
or cl, 0xf
sub cl, 0x1f
sete cl
and al, cl
test al, 1
jne 0x1401167ad
jmp 0x140116be2
mov eax, dword [str.4yI_y]
mov ecx, 0x32140c08
xor ecx, 0x230f14e3
xor eax, ecx
or eax, dword [0x1401f909c]
mov ecx, 0x83c5dc8d
xor ecx, 0x876e0d8
xor edx, edx
div ecx
mov r8d, eax
mov eax, r8d
xor eax, 0xffffffff
mov ecx, 0x524dd1f8
xor ecx, 0xbe2f6bdf
and ecx, eax
mov edx, 0xb34ed6b6
xor edx, 0x5f2c6c91
mov eax, 0xbe858ea9
xor eax, 0x417a7156
xor edx, eax
mov eax, r8d
and eax, edx
imul eax, ecx
mov edx, 0x655a7972
xor edx, 0x8938c355
mov ecx, r8d
and ecx, edx
or r8d, 0xec62ba27
imul r8d, ecx
add r8d, eax
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x30d1b25
mov edx, 0xffffffff
xor edx, 0x30d1b25
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0x9719f801
and ecx, 0x30d1b25
and edx, 0x9719f801
or eax, r8d
or ecx, edx
xor eax, ecx
cmp eax, 0xd2c806cd
ja 0x140116bfd
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x18]
mov eax, dword [0x1401f90a0]
and eax, dword [0x1401f90a4]
and eax, 0xb537be51
mov r8d, 0x2792cdb2
xor r8d, 0x8cec1673
and eax, r8d
add eax, 0xaf180783
sub eax, 0x91a8f356
sub eax, 0xaf180783
mov cl, byte [rcx + rdx + 2]
mov byte [rbp - 0x62], cl
and cl, 0xc0
mov dl, 0x34
xor dl, 0xb4
cmp cl, dl
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0x588b4af2
je 0x14011686a
mov al, byte [rbp - 0x61]
test al, 1
jne 0x1401168d4
jmp 0x140116be2
mov ecx, dword [0x1401f90a8]
mov edx, dword [0x1401f90ac]
mov r8d, 0xdb0b8bee
xor r8d, 0x24f47411
mov eax, ecx
xor eax, r8d
mov r8d, edx
xor r8d, 0xffffffff
or eax, r8d
and ecx, edx
mov edx, 0x7a235a69
xor edx, 0x85dca596
xor ecx, edx
and eax, ecx
mov ecx, 0x9a24bc31
xor ecx, 0x65db43ce
xor eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x8feafc3a
mov ecx, 0xffffffff
xor ecx, 0x46953545
or eax, edx
or ecx, 0x46953545
mov edx, 0xd7c65856
xor edx, 0x2839a7a9
xor eax, edx
and eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0xe4feac7
mov r8d, 0xffffffff
xor r8d, 0xe4feac7
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0x609dcd34
xor r8d, 0x6ed227f3
mov edx, eax
and edx, r8d
or eax, 0xe4feac7
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x68c00794
mov edx, 0x7c1d122b
xor edx, 0x83e2edd4
xor ecx, edx
and ecx, 0x68c00794
shl ecx, 1
sub ecx, 0x68c00794
sub eax, ecx
mov ecx, 0x2f09068e
xor ecx, 0x777c908b
cmp eax, ecx
jae 0x140116c06
mov dl, byte [rbp - 0x62]
mov r8d, dword [rbp - 0x5c]
mov r9d, dword [rbp - 0x34]
mov eax, dword [0x1401f90b0]
xor eax, 0x59a8da
mov ecx, dword [0x1401f90b4]
mov r10d, 0x1410d4d1
xor r10d, 0x3a04f961
xor ecx, r10d
xor eax, ecx
or eax, 0x7d757e1e
mov r10d, 0xb3b48a02
xor r10d, 0xe38159c2
mov ecx, 0xe73668f1
xor ecx, 0x18c9970e
xor r10d, ecx
mov ecx, eax
and ecx, r10d
mov r10d, eax
xor r10d, 0x5035d3c0
add eax, r10d
sub eax, ecx
mov ecx, 0x11de7026
xor ecx, 0x175aef06
add eax, ecx
mov ecx, 0x2622e50f
xor ecx, 0x943fb92f
mov dword [rbp - 0x6c], ecx
shl r9d, 0xc
mov ecx, r9d
xor ecx, 0xf000
mov r10d, 0x3eb81a3c
xor r10d, 0xc147e5c3
xor ecx, r10d
mov r10d, 0xefc56338
xor r10d, 0xefc59338
or r9d, r10d
and r9d, ecx
mov ecx, 0xcb646f0b
xor ecx, 0xcb646f0d
shl r8d, cl
mov ecx, dword [rbp - 0x6c]
and r8d, 0xfc0
or r8d, r9d
mov r9b, 0xef
xor r9b, 0xd0
and dl, r9b
movzx r9d, dl
mov edx, r8d
or edx, r9d
mov dword [rbp - 0x68], edx
mov r9d, 0xe60a2b00
xor r9d, 0xe60a2300
cmp edx, r9d
setb dl
and r8d, 0xf800
mov r9d, 0x2f8407cb
xor r9d, 0x2f84dfcb
cmp r8d, r9d
sete r8b
or dl, r8b
mov byte [rbp - 0x63], dl
cmp eax, ecx
je 0x140116c06
mov al, byte [rbp - 0x63]
test al, 1
jne 0x140116be2
jmp 0x140116aea
mov eax, dword [0x1401f90b8]
mov r8d, dword [0x1401f90bc]
xor r8d, 0xd5448ec5
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
and eax, 0xe4278d27
mov ecx, 0x15153f61
xor ecx, 0x26be1e49
and eax, ecx
xor ecx, ecx
sub ecx, eax
mov eax, 0xe4f7dd9f
xor eax, 0xe4f7dd9f
mov edx, 0x6d4cdcc8
xor edx, 0xc7dafbd9
sub eax, edx
add ecx, eax
mov eax, 0x5858b20
xor eax, 0x5858b20
sub eax, ecx
cmp eax, 0xeef38582
je 0x140116c0f
mov ecx, dword [rbp - 0x68]
mov eax, dword [0x1401f90c0]
xor eax, 0x22e1a72f
imul eax, dword [0x1401f90c4]
mov edx, 0xe5b828a1
xor edx, 0x607c1636
sub eax, edx
mov r8d, 0xa4e61fdc
xor r8d, 0x78c730dc
mov edx, eax
xor edx, r8d
mov r8d, 0xffffffff
xor r8d, 0xdc212f00
and eax, r8d
shl eax, 1
sub eax, edx
add eax, 0xfd7f5790
mov dword [rbp - 0x70], eax
sub rsp, 0x20
call fcn.140116e50
add rsp, 0x20
mov rcx, rax
mov eax, dword [rbp - 0x70]
mov qword [rbp - 8], rcx
cmp eax, 0x227f518c
je 0x140116b6a
jmp 0x140116be2
mov rax, qword [rbp - 8]
mov rsp, rbp
pop rbp
ret
rcr byte [rdi - 0x3b], 1
jmp 0x14011655e
mov ebp, ss
and dword [rsi - 0x60217], edi
inc ebx
xchg edx, eax
lodsd eax, dword [rsi]
xchg edi, eax
jmp 0x14011686a
ret
out dx, eax
mov dword [0x13dc25563], esi
invalid
js 0x140116c3f
invalid
ret 0x8948