Function at 0x1400ebd70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
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.1401ffc50
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x28], rax
sub rsp, 0x20
call fcn.1400dd554
mov rcx, qword [rbp - 0x28]
add rsp, 0x20
mov edx, 8
sub rsp, 0x20
call fcn.1400e1f84
mov rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x18]
add rsp, 0x20
sub rdx, r8
mov qword [rbp - 0x10], rdx
cmp rdx, 1
jl 0x1400ec812
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 0x1400ebe1d
mov ecx, dword [rbp - 0x34]
sub rsp, 0x20
call fcn.1400ec844
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400ec812
mov eax, dword [0x1402069f0]
mov ecx, dword [0x1402069f4]
xor ecx, 0xd9fae3c7
add eax, ecx
sub eax, 0x606ba10f
mov ecx, 0xa7de2295
xor ecx, 0x81ff429b
sub eax, ecx
add eax, 0x606ba10f
or eax, 0xe18852c2
mov ecx, 0x6727d2e4
xor ecx, 0x251b0e47
add eax, ecx
cmp eax, 0x98f5eb56
jae 0x1400ec820
mov rcx, qword [rbp - 0x10]
mov eax, dword [0x1402069f8]
mov edx, dword [str._yv_AA]
mov r8d, 0x8947eede
xor r8d, 0xefbd905a
add eax, r8d
add eax, edx
sub eax, 0x66fa7e84
mov r9d, 0xffffffff
xor r9d, 0xf7737f66
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
xor edx, 0xffffffff
imul edx, r8d
mov r8d, eax
and r8d, 0xf7737f66
or eax, 0xf7737f66
imul eax, r8d
add eax, edx
mov r9d, 0xa57225cc
xor r9d, 0x7d36c346
mov edx, 0x742c660c
xor edx, 0x8bd399f3
xor r9d, edx
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
xor edx, 0xffffffff
imul edx, r8d
mov r8d, eax
and r8d, 0xd844e68a
mov r9d, 0xb37aa21d
xor r9d, 0x6b3e4497
or eax, r9d
imul eax, r8d
add eax, edx
mov edx, 0xa525e670
xor edx, 0x56ed0545
mov r8d, eax
and r8d, edx
mov edx, 0x762d8ade
xor edx, 0x762d8adc
imul edx, r8d
add eax, 0xf3c8e335
sub eax, edx
cmp rcx, 1
sete cl
mov byte [rbp - 0x41], cl
cmp eax, 0x39c6a2fe
jb 0x1400ec820
mov al, byte [rbp - 0x41]
test al, 1
jne 0x1400ec812
jmp 0x1400ebf59
mov rax, qword [rbp - 0x10]
movabs rcx, 0xf6822619af75d9d8
movabs rdx, 0xf6822619af75d9db
xor rcx, rdx
cmp rax, rcx
jbe 0x1400ec34d
mov rdx, qword [rbp - 0x40]
mov dword [rbp - 4], 0
lea rcx, [rbp - 4]
mov r8d, 4
sub rsp, 0x20
call fcn.1400dfc60
add rsp, 0x20
mov ecx, dword [rbp - 4]
mov dword [rbp - 0x4c], ecx
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xac6a8faa
xor edx, 0xac6a4f4a
mov r8d, 0xc9c81458
xor r8d, 0x3637eba7
xor edx, r8d
or eax, edx
mov r8d, 0x5798b703
xor r8d, 0x579877e3
mov edx, ecx
and edx, r8d
mov r8d, 0x81b33f91
xor r8d, 0x7e4cc06e
xor edx, r8d
and eax, edx
xor eax, 0xffffffff
mov edx, ecx
add edx, 1
xor ecx, 0xffffffff
or ecx, 0xc0c0c0f8
add ecx, edx
mov dword [rbp - 0x48], ecx
mov ecx, 0x84d68392
xor ecx, 0x84d60352
cmp eax, ecx
jne 0x1400ec081
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x18]
mov ecx, dword [rbp - 0x34]
shl ecx, 6
and ecx, 0x7c0
movabs r8, 0x8c61ab2d60402c1d
add rdx, r8
add rdx, 1
movabs r8, 0x8c61ab2d60402c1d
sub rdx, r8
mov al, byte [rax + rdx]
and al, 0x3f
movzx edx, al
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov dword [rbp - 0x50], eax
cmp eax, 0x7f
jbe 0x1400ec348
mov ecx, dword [rbp - 0x50]
sub rsp, 0x20
call fcn.1400ec844
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400ec348
mov eax, dword [rbp - 0x4c]
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x1400ec1f4
mov rdx, qword [rbp - 0x18]
mov r9d, dword [rbp - 0x34]
mov ecx, 0x690e3c08
xor ecx, 0x690e3c04
shl r9d, cl
mov rcx, qword [rbp - 0x30]
xor r9d, 0xffffffff
mov eax, 0xffffffff
xor eax, 0xf000
mov r8d, 0xffffffff
xor r8d, 0xcc3550d8
or r9d, eax
mov eax, 0xfb06d7c
xor eax, 0xc3853da4
or eax, r8d
xor r9d, 0xffffffff
and r9d, eax
mov al, byte [rcx + rdx + 1]
mov r8b, 0x22
xor r8b, 0x1d
and al, r8b
movzx r8d, al
shl r8d, 6
mov eax, r8d
xor eax, 0xffffffff
mov r11d, 0xf1e938ae
xor r11d, 0xe16c751
mov r10d, r9d
xor r10d, r11d
and eax, r10d
xor r8d, 0xffffffff
xor r9d, 0xffffffff
and r8d, r9d
mov r9d, 0xbbf4771d
xor r9d, 0x440b88e2
xor eax, r9d
xor r8d, 0xffffffff
and eax, r8d
mov cl, byte [rcx + rdx + 2]
xor cl, 0xff
mov dl, 0xff
xor dl, 0x3f
mov r8b, 0xff
xor r8b, 7
or cl, dl
mov dl, 0x78
xor dl, 0x7f
or dl, r8b
mov r8b, 0x42
xor r8b, 0xbd
xor cl, r8b
and cl, dl
movzx edx, cl
mov ecx, eax
or ecx, edx
mov dword [rbp - 0x54], ecx
cmp ecx, 0x800
setb r11b
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0xf800
add eax, ecx
cmp eax, 0xd800
sete r10b
mov al, 1
xor al, 0
mov cl, r11b
xor cl, al
xor eax, eax
xor al, 1
mov dl, r10b
xor dl, al
mov r8b, 1
xor r8b, 0
mov al, cl
and al, 0
and r11b, r8b
mov r9b, dl
and r9b, 0
and r10b, r8b
or al, r11b
or r9b, r10b
xor al, r9b
or cl, dl
xor cl, 0xff
mov dl, 1
xor dl, 1
or dl, r8b
and cl, dl
or al, cl
test al, 1
jne 0x1400ec348
mov ecx, dword [rbp - 0x54]
sub rsp, 0x20
call fcn.1400ec844
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400ec348
mov eax, dword [rbp - 0x48]
cmp eax, 0x808080f0
jne 0x1400ec348
mov rdx, qword [rbp - 0x18]
mov r8d, dword [rbp - 0x34]
mov ecx, 0xdf7e2e5c
xor ecx, 0xdf7e2e4e
shl r8d, cl
mov rcx, qword [rbp - 0x30]
and r8d, 0x1c0000
movabs r9, 0x884bf1131c434b7c
movabs rax, 0x884bf1131c434b7d
xor r9, rax
mov rax, rdx
add rax, r9
mov al, byte [rcx + rax]
mov r9b, 0x7e
xor r9b, 0x41
and al, r9b
movzx eax, al
shl eax, 0xc
or eax, r8d
movabs r9, 0x7e61c2a6fd1077ba
movabs r8, 0x7e61c2a6fd1077b8
xor r9, r8
mov r8, rdx
add r8, r9
mov cl, byte [rcx + r8]
xor cl, 0xff
mov r9b, 0xff
xor r9b, 0x3f
mov r8b, 0xff
xor r8b, 0xf3
or cl, r9b
or r8b, 0xf3
xor cl, 0xff
and cl, r8b
movzx r9d, cl
mov ecx, 0xc27e43ef
xor ecx, 0xc27e43e9
shl r9d, cl
mov rcx, qword [rbp - 0x30]
and eax, eax
mov r8d, 0x6923b1d6
xor r8d, 0x96dc4e29
xor eax, r8d
mov r8d, r9d
xor r8d, 0xffffffff
xor r9d, 0xffffffff
or r8d, r9d
and eax, r8d
xor eax, 0xffffffff
movabs r8, 0xb548048a20fb15b4
movabs r9, 0xb548048a20fb15b7
xor r8, r9
add rdx, r8
mov cl, byte [rcx + rdx]
mov dl, cl
xor dl, 0x3f
xor dl, 0xff
mov r8b, 0xee
xor r8b, 0xd1
or cl, r8b
and cl, dl
movzx ecx, cl
or eax, ecx
mov dword [rbp - 0x58], eax
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0xffff0001
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0xc917423e
xor ecx, 0xc907423f
cmp eax, ecx
jae 0x1400ec348
mov ecx, dword [rbp - 0x58]
sub rsp, 0x20
call fcn.1400ec844
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400ec812
mov eax, dword [0x140206a00]
mov ecx, dword [0x140206a04]
xor ecx, 0x8e7da5e2
or eax, ecx
xor eax, 0xa5b2c8a0
xor eax, 0x2b639459
and eax, 0x9699ed1
cmp eax, 0xea9bb9fb
ja 0x1400ec829
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x18]
mov eax, dword [0x140206a08]
mov r8d, dword [0x140206a0c]
mov edi, eax
and edi, r8d
xor eax, r8d
or edi, eax
mov eax, 0x40e57de8
xor eax, 0xf3d6d12c
xor edi, eax
mov r8d, edi
xor r8d, 0xffffffff
mov r10d, 0xffffffff
xor r10d, 0x11dda459
mov r9d, 0xffffffff
xor r9d, 0xc629dc46
mov eax, r8d
and eax, 0xc629dc46
and edi, r9d
mov esi, 0x8947ee87
xor esi, 0x4f6e32c1
mov r11d, r10d
and r11d, esi
mov esi, r9d
and esi, 0x11dda459
or eax, edi
or r11d, esi
xor eax, r11d
or r8d, r10d
mov r10d, 0x2bc3cd1f
xor r10d, 0xd43c32e0
xor r8d, r10d
or r9d, 0xc629dc46
and r8d, r9d
or eax, r8d
xor eax, 0x63f22730
movabs r9, 0x95a4d6afeb46962
movabs r8, 0x95a4d6afeb46963
xor r9, r8
mov r8, rdx
and r8, r9
shl r8, 1
movabs r9, 0x69a72fc4a4134436
movabs r10, 0x69a72fc4a4134437
xor r9, r10
xor rdx, r9
add rdx, r8
mov dl, byte [rcx + rdx]
movzx ecx, dl
mov dword [rbp - 0x60], ecx
mov r8b, 0xff
xor r8b, 0xc0
mov cl, dl
xor cl, r8b
and cl, dl
cmp cl, 0x80
sete cl
mov byte [rbp - 0x59], cl
cmp eax, 0x62f8234c
ja 0x1400ec829
mov al, byte [rbp - 0x59]
test al, 1
jne 0x1400ec492
jmp 0x1400ec812
mov eax, dword [0x140206a10]
xor edx, edx
div dword [0x140206a14]
sub eax, 0x9d563911
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0xeb0c590e
xor edx, 0x803149c8
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x6b3d10c6
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xd1826042
xor r8d, 0xbabf7084
mov edx, eax
and edx, r8d
mov r8d, 0xc302d9f3
xor r8d, 0xa83fc935
or eax, r8d
imul eax, edx
add eax, ecx
add eax, 0xf73240f1
cmp eax, 0xbdce12fd
jae 0x1400ec832
mov cl, byte [rbp - 0x35]
mov eax, dword [0x140206a18]
mov edx, 0x75ff3b29
xor edx, 0xcab057f8
xor eax, edx
mov r8d, dword [0x140206a1c]
xor edx, edx
sub edx, r8d
add eax, edx
mov r8d, 0xa7943256
xor edx, edx
div r8d
imul eax, eax, 0x6d243325
mov r8d, eax
xor r8d, 0xffffffff
and r8d, 0xe001af1d
mov r9d, 0xffffffff
xor r9d, 0xe001af1d
mov edx, eax
and edx, r9d
imul edx, r8d
mov r8d, eax
and r8d, 0xe001af1d
or eax, 0xe001af1d
imul eax, r8d
add eax, edx
and cl, 0xe0
cmp cl, 0xc0
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0xedcc6c80
jae 0x1400ec832
mov al, byte [rbp - 0x61]
test al, 1
jne 0x1400ec598
jmp 0x1400ec632
mov eax, dword [rbp - 0x60]
mov edx, dword [rbp - 0x34]
shl edx, 6
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
and ecx, edx
mov edx, 0x7c0
or edx, 0x7c0
mov r8d, 0x9bd1da70
xor r8d, 0x642e258f
xor edx, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
and ecx, edx
xor eax, 0xffffffff
mov r8d, 0x96f634f7
xor r8d, 0x96f634c8
mov edx, 0x4079b97a
xor edx, 0xbf864685
xor r8d, edx
mov edx, 0xffffffff
xor edx, 0x9a1b1e88
or eax, r8d
or edx, 0x9a1b1e88
xor eax, 0xffffffff
and eax, edx
or eax, ecx
mov dword [rbp - 0x68], eax
cmp eax, 0x7f
jbe 0x1400ec812
mov ecx, dword [rbp - 0x68]
sub rsp, 0x20
call fcn.1400ec844
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
jmp 0x1400ec812
mov eax, dword [0x140206a20]
mov r8d, dword [0x140206a24]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
mov r9d, 0x5a3b23c4
xor r9d, 0xa5c4dc3b
xor ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
xor eax, 0xeaaff3da
mov ecx, 0x55592618
xor ecx, 0xfb25bfe9
or eax, ecx
sub eax, 0x9ae90413
cmp eax, 0x5ccfbcc7
je 0x1400ec83b
mov r8b, byte [rbp - 0x35]
mov rcx, qword [rbp - 0x10]
mov r9d, dword [0x140206a28]
mov edx, dword [0x140206a2c]
mov eax, r9d
not eax
mov r10d, edx
not r10d
or r9d, r10d
or eax, edx
not r9d
not eax
or r9d, eax
not r9d
or r9d, 0x8a29674
mov eax, r9d
not eax
and r9d, 0xea908d00
mov edx, eax
and edx, 0x154d608b
imul edx, r9d
mov r9d, eax
and r9d, 0xe2100900
or eax, 0xea908d00
imul eax, r9d
add eax, edx
imul rax, rax, 0x155419b9
shr rax, 0x3c
sub rcx, 3
sete cl
mov dl, r8b
xor dl, 0xf
and dl, r8b
sub dl, 0xe0
sete dl
and cl, dl
mov byte [rbp - 0x69], cl
cmp eax, 0xb3b10a
je 0x1400ec692
mov al, byte [rbp - 0x69]
test al, 1
jne 0x1400ec737
jmp 0x1400ec812
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x18]
movabs rdx, 0x2ad4c20c05606796
add rcx, rdx
add rcx, 2
movabs rdx, 0x2ad4c20c05606796
sub rcx, rdx
mov al, byte [rax + rcx]
mov byte [rbp - 0x6a], al
and al, 0xc0
cmp al, 0x80
jne 0x1400ec812
mov cl, byte [rbp - 0x6a]
mov eax, dword [rbp - 0x60]
mov r8d, dword [rbp - 0x34]
shl r8d, 0xc
mov r9d, 0xffffffff
xor r9d, 0xf000
mov edx, r8d
xor edx, r9d
and edx, r8d
shl eax, 6
and eax, 0xfc0
or eax, edx
mov dl, 0x51
xor dl, 0x6e
and cl, dl
movzx edx, cl
mov ecx, eax
or ecx, edx
mov dword [rbp - 0x70], ecx
mov edx, 0xb56b6b5c
xor edx, 0xb56b635c
cmp ecx, edx
setb dl
mov ecx, 0xc88b53e0
xor ecx, 0xc88babe0
and eax, ecx
cmp eax, 0xd800
sete cl
xor eax, eax
mov r8b, al
xor r8b, 1
mov al, dl
xor al, r8b
xor dl, 0xff
or al, dl
and cl, cl
xor cl, 0xff
xor al, 0xff
xor cl, 0xff
or al, cl
test al, 1
jne 0x1400ec812
mov ecx, dword [rbp - 0x70]
sub rsp, 0x20
call fcn.1400ec844
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rax], rcx
mov rax, qword [rbp - 0x28]
mov rax, qword [rax]
mov rsp, rbp
pop rdi
pop rsi
pop rbp
ret
jp 0x1400ec843
add al, 0x26
jmp 0x1400ebe65
or byte [rdx], al
lea esi, [rdx]
jmp 0x1400ec37b
cmp esp, ebx
lahf
xor ecx, ebp
enter 0xfffffffffffffffc, 0xffffffffffffffff
retf 0xe8bb
call qword [rbp + 0x48]
sub esp, 0x10