Function at 0x1400523c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x110
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x80], rdx
mov qword [rbp + 0x88], rcx
mov eax, dword [0x1401d7610]
imul eax, dword [0x1401d7614]
imul eax, eax, 0xdc72fe8b
mov ecx, 0xa02afae3
xor ecx, 0x25b55f9d
xor eax, ecx
mov ecx, 0x6c3b16ac
xor ecx, 0x93c4e953
xor eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x104ae804
mov edx, 0xffffffff
xor edx, 0xf32dd43b
or eax, ecx
mov ecx, 0x7180c86d
xor ecx, 0x82ad1c56
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0x535d1e78
xor ecx, 0x54526af6
cmp eax, ecx
jae 0x140052f07
mov edx, dword [0x1401d7618]
xor edx, 0x5f154329
mov eax, dword [0x1401d761c]
mov ecx, eax
mov eax, edx
lea eax, [rax + rcx - 0x588dfc6b]
or eax, 0x9c1f593f
mov dword [rbp + 0x6c], eax
mov eax, 0x10
mov qword [rbp + 0x50], rax
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x20], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x28], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x30], rax
mov eax, 0x20
mov qword [rbp + 0x40], rax
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x38], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp + 0x40]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp + 0x50]
mov rcx, rsp
mov qword [rbp + 0x58], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x60], rax
sub rsp, 0x20
call fcn.1400476b5
mov rcx, qword [rbp + 0x88]
mov rdx, qword [rbp + 0x80]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp + 0x6c]
mov qword [rbp + 0x70], r8
test rcx, rcx
sete cl
test rdx, rdx
sete dl
setne r8b
mov r9b, cl
and r9b, r8b
mov r10b, cl
xor r10b, dl
mov r8b, cl
add r8b, r10b
sub r8b, r9b
mov byte [rbp + 0x7e], r8b
and cl, dl
mov byte [rbp + 0x7f], cl
cmp eax, 0x9e11ad13
jbe 0x140052448
mov al, byte [rbp + 0x7f]
mov cl, byte [rbp + 0x7e]
test cl, 1
mov byte [rbp + 0x1f], al
jne 0x140052ef6
jmp 0x140052571
mov rdx, qword [rbp + 0x80]
mov rax, qword [rbp + 0x88]
mov rcx, qword [rax + 0x10]
xor eax, eax
cmp rcx, qword [rdx + 0x10]
mov byte [rbp + 0x1f], al
jne 0x140052ef6
mov rax, qword [rbp + 0x70]
mov rcx, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x20]
mov qword [rdx], 0
mov r8, rdx
add r8, 8
mov qword [rbp + 0x10], r8
mov qword [rdx + 8], 0
mov qword [rcx], 0
cmp byte [rax], 0
jne 0x140052d12
mov rax, qword [rbp + 0x88]
mov rcx, qword [rax]
mov qword [rbp - 8], rcx
add rax, 8
mov qword [rbp], rax
xor eax, eax
mov qword [rbp + 8], rax
mov rcx, qword [rbp - 8]
mov rax, qword [rbp + 8]
mov qword [rbp - 0x10], rax
cmp rax, rcx
jge 0x140052d12
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x88]
mov rcx, qword [rcx]
mov qword [rbp - 0x18], rcx
cmp rax, rcx
jl 0x140052659
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x18]
movabs rax, 0x4f1793025314f422
movabs r8, 0x74b6bb262365b8e3
xor rax, r8
add rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x3ba1282470714cc1
sub rdx, rax
sub rsp, 0x20
call fcn.140013580
add rsp, 0x20
jmp 0x140052d12
mov rcx, qword [rbp - 0x10]
mov rax, qword [rbp]
mov rax, qword [rax]
mov qword [rbp - 0x20], rax
add rax, 8
shl rcx, 5
add rax, rcx
cmp qword [rax], 0
je 0x140052c9d
mov r8, qword [rbp - 0x10]
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x20]
mov rax, qword [rbp - 0x20]
add rax, 8
shl r8, 5
add rax, r8
add rax, 8
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001976a
mov rcx, qword [rbp + 0x88]
mov rax, qword [rbp - 0x10]
add rsp, 0x20
mov rcx, qword [rcx]
mov qword [rbp - 0x28], rcx
cmp rax, rcx
jl 0x1400527a2
mov ecx, dword [0x1401d7620]
mov edx, dword [0x1401d7624]
xor edx, 0x76f65430
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
sub eax, 0x702306bc
sub eax, 0x69ae2bf4
mov ecx, 0xc698b5a7
xor ecx, 0x88652b9a
xor edx, edx
div ecx
cmp eax, 0xed9cd7e8
je 0x140052f10
mov rcx, qword [rbp - 0x10]
mov eax, dword [0x1401d7628]
mov edx, dword [0x1401d762c]
xor edx, 0x59937716
or eax, edx
imul eax, eax, 0xdc9e7e84
imul eax, eax, 0xd160a3f9
mov r8d, 0x75b3a0fc
xor edx, edx
div r8d
mov rdx, qword [rbp - 0x28]
mov dword [rbp - 0x30], eax
mov eax, 0xfc157abf
xor eax, 0x3c5c9b5c
mov dword [rbp - 0x34], eax
movabs rax, 0x262aeba9f960675d
movabs r8, 0xd9d51456069f98a2
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.140013580
mov rdx, qword [rbp + 0x70]
mov ecx, dword [rbp - 0x34]
mov eax, dword [rbp - 0x30]
add rsp, 0x20
mov dl, byte [rdx]
mov byte [rbp - 0x29], dl
cmp eax, ecx
jae 0x140052f10
mov cl, byte [rbp - 0x29]
xor eax, eax
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jmp 0x140052c61
mov rcx, qword [rbp + 0x28]
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp]
mov rax, qword [rax]
add rax, 8
shl rdx, 5
add rax, rdx
add rax, 0x18
mov rdx, qword [rax]
xor r8d, r8d
sub rsp, 0x20
call fcn.140122bb6
mov rdx, qword [rbp + 0x70]
add rsp, 0x20
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x140052c61
mov ecx, dword [0x1401d7630]
mov eax, dword [0x1401d7634]
add ecx, 0x926aaa0a
sub ecx, eax
mov eax, 0x41d4729a
xor eax, 0xd3bed890
sub ecx, eax
sub ecx, 0xd7ffe526
mov eax, ecx
and eax, 0xb36d0ee0
mov edx, 0xb7cbaca9
xor edx, 0x4a6a249
or ecx, edx
add eax, ecx
mov ecx, 0xf88b0708
xor edx, edx
div ecx
cmp eax, 0x5750f03
je 0x140052f19
mov rdx, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x38]
mov rax, qword [rbp + 0x20]
mov r8, qword [rbp + 0x80]
mov r9d, dword [0x1401d7638]
mov r10d, dword [0x1401d763c]
or r9d, r10d
shr r9d, 1
imul r9, r9, 0x44f27ad5
shr r9, 0x3c
and r9d, 1
imul r9d, r9d, 0x89d86933
mov dword [rbp - 0x48], r9d
mov r9d, 0x870d98bb
mov dword [rbp - 0x4c], r9d
mov r9, qword [r8 + 0x10]
mov qword [rcx + 0x10], r9
movups xmm0, xmmword [r8]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rdx], xmm0
sub rsp, 0x20
call fcn.1400521ff
mov rdx, qword [rbp + 0x70]
mov ecx, dword [rbp - 0x4c]
add rsp, 0x20
mov r8b, al
mov eax, dword [rbp - 0x48]
mov dl, byte [rdx]
test dl, dl
setne dl
mov byte [rbp - 0x43], dl
or dl, r8b
mov byte [rbp - 0x42], dl
cmp eax, ecx
jbe 0x140052f19
mov al, byte [rbp - 0x42]
test al, 1
jne 0x1400529c2
jmp 0x1400528dd
xor eax, eax
mov ecx, eax
sub rsp, 0x20
call fcn.1401221f9
mov rax, qword [rbp + 0x70]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140052d12
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.1401221f9
mov rax, qword [rbp + 0x70]
add rsp, 0x20
mov cl, byte [rax]
mov dl, 0x8b
xor dl, 0x8b
xor eax, eax
cmp cl, dl
mov byte [rbp - 0x4d], al
jne 0x140052ef0
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
mov qword [rbp - 0x58], rcx
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x4d], al
je 0x140052ef0
mov rax, qword [rbp - 0x58]
mov rax, qword [rax]
mov rcx, rax
xor rcx, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
or rcx, rdx
movabs rdx, 0x4000000000000000
and rax, rdx
movabs rdx, 0xf8f31a5d3dd1f4c3
movabs r8, 0x70ce5a2c22e0b3c
xor rdx, r8
xor rax, rdx
xor rcx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
or rcx, rax
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x4d], al
jne 0x140052ef0
mov rcx, qword [rbp - 0x58]
sub rsp, 0x20
call fcn.14000eb2e
add rsp, 0x20
xor eax, eax
mov byte [rbp - 0x4d], al
jmp 0x140052ef0
mov dl, byte [rbp - 0x43]
mov cl, 1
xor eax, eax
test dl, 1
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x140052c61
jmp 0x1400529de
mov rdx, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x20]
mov r8, qword [rbp + 0x80]
mov r9, qword [r8 + 0x10]
mov qword [rcx + 0x10], r9
movups xmm0, xmmword [r8]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rdx], xmm0
sub rsp, 0x20
call fcn.14005227b
mov rcx, qword [rbp + 0x70]
mov r9, qword [rbp + 0x28]
add rsp, 0x20
mov r8, rax
mov rax, r8
mov qword [rbp - 0x60], rax
mov cl, byte [rcx]
test cl, cl
setne dl
mov r9, qword [r9]
sub r8, r9
sete r8b
or dl, r8b
test dl, 1
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x140052c61
mov rcx, qword [rbp - 0x60]
sub rsp, 0x20
call fcn.1401221f9
mov rax, qword [rbp + 0x70]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x14
xor cl, 0x14
cmp al, cl
jne 0x140052d12
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.1401221f9
mov rcx, qword [rbp + 0x70]
add rsp, 0x20
xor eax, eax
cmp byte [rcx], 0
mov byte [rbp - 0x4d], al
jne 0x140052ef0
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
mov qword [rbp - 0x68], rcx
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x4d], al
je 0x140052ef0
mov ecx, dword [str._01]
mov eax, dword [0x1401d7644]
xor eax, 0x114e9a74
and ecx, eax
mov eax, ecx
or eax, eax
xor eax, 0xffffffff
mov edx, 0xc9d4f58d
or edx, 0xc9d4f58d
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
mov edx, 0x12e1bc6f
xor edx, 0xed1e4390
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xc9d4f58d
and ecx, edx
or eax, ecx
mov ecx, 0x8bcfc151
xor ecx, 0x74303eae
xor eax, ecx
and eax, 0xfd34130
sub eax, 0x8bf04b6c
cmp eax, 0x44293d4a
jbe 0x140052f22
mov rcx, qword [rbp - 0x68]
mov eax, dword [0x1401d7648]
xor eax, 0x3d926ea4
mov r9d, dword [0x1401d764c]
mov r10d, r9d
xor r10d, 0xffffffff
mov r8d, eax
and r8d, r10d
mov edx, eax
or edx, r10d
mov r10d, 0x4cc791
xor r10d, 0xffb3386e
xor edx, r10d
imul edx, r8d
mov r8d, eax
and r8d, r9d
or eax, r9d
imul eax, r8d
add eax, edx
mov edx, 0xebdb6cde
xor edx, 0xa5317355
add eax, edx
add eax, 0x84d0eeba
sub eax, 0x4eea1f8b
add eax, 0xc1ad7c4d
mov edx, 0x257b9906
xor edx, 0x6f603c7a
xor eax, edx
mov rcx, qword [rcx]
movabs rdx, 0x8db86e844b8a9e46
movabs r8, 0x7247917bb47561b9
xor rdx, r8
xor rcx, rdx
movabs r8, 0xce7eb5dc67137975
movabs rdx, 0x8e7eb5dc67137975
xor r8, rdx
movabs rdx, 0x1917392cda9ce29
movabs r9, 0xfe6e8c6d325631d6
xor rdx, r9
xor r8, rdx
mov rdx, 0xffffffffffffffff
movabs r9, 0x7b79b3a695df50bf
xor rdx, r9
or rcx, r8
movabs r8, 0x7b79b3a695df50bf
or rdx, r8
xor rcx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0xd3262e1cae8efda6
movabs r8, 0xd3262e1cae8efda6
xor rdx, r8
cmp rcx, rdx
sete cl
mov byte [rbp - 0x69], cl
cmp eax, 0x7c6b986b
jae 0x140052b18
mov cl, byte [rbp - 0x69]
xor eax, eax
test cl, 1
mov byte [rbp - 0x4d], al
jne 0x140052c46
jmp 0x140052ef0
mov rcx, qword [rbp - 0x68]
sub rsp, 0x20
call fcn.14000eb2e
add rsp, 0x20
xor eax, eax
mov byte [rbp - 0x4d], al
jmp 0x140052ef0
mov rax, qword [rbp + 0x70]
mov dl, byte [rbp - 0x41]
mov rcx, qword [rbp - 0x40]
mov byte [rbp - 0x6a], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401221f9
mov rax, qword [rbp + 0x70]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140052d12
mov al, byte [rbp - 0x6a]
mov rcx, qword [rbp + 0x70]
mov byte [rcx], al
cmp al, 0
jne 0x140052d12
mov rax, qword [rbp - 0x10]
movabs rcx, 0x31e9e76eaec08216
movabs rdx, 0x31e9e76eaec08217
xor rcx, rdx
movabs rdx, 0x6be44463160e6e8a
movabs r8, 0x941bbb9ce9f19175
xor rdx, r8
xor rcx, rdx
movabs rdx, 0xf9bf53ce44235b79
movabs r8, 0xf9bf53ce44235b79
xor rdx, r8
movabs r8, 0xcf546b6fec888ec
movabs r9, 0xcf546b6fec888ed
xor r8, r9
sub rdx, r8
sub rcx, rdx
sub rax, rcx
mov qword [rbp + 8], rax
jmp 0x1400525e4
mov eax, dword [0x1401d7650]
xor edx, edx
div dword [0x1401d7654]
mov ecx, eax
mov eax, 0x2cd67f8b
xor eax, 0x20388a27
mov edx, 0xbab93c5e
xor edx, 0x4546c3a1
xor eax, edx
mov edx, 0xf5ba7508
xor edx, 0xf5ba7508
mov r8d, 0x689701c7
xor r8d, 0x689701c6
sub edx, r8d
sub eax, edx
sub ecx, eax
sub ecx, 0xcdf8d882
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
and eax, 0xfd00e927
xor eax, 0xffffffff
mov edx, 0x1e8a3f79
xor edx, 0xe38ad65e
mov r8d, 0x83583525
xor r8d, 0x7ca7cada
xor edx, r8d
mov r8d, 0xffffffff
xor r8d, 0xfd00e927
or edx, r8d
and ecx, edx
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0x6010e60
je 0x140052f2b
mov rcx, qword [rbp + 0x70]
mov rax, qword [rbp + 0x28]
mov r8d, dword [0x1401d7658]
add r8d, dword [0x1401d765c]
mov edx, r8d
and edx, 0x36428bac
xor r8d, 0x36428bac
or edx, r8d
mov r10d, 0xffffffff
xor r10d, 0xc5f1c2c8
mov r9d, edx
and r9d, r10d
mov r8d, edx
or r8d, r10d
xor r8d, 0xffffffff
imul r8d, r9d
mov r9d, edx
and r9d, 0xc5f1c2c8
or edx, 0xc5f1c2c8
imul edx, r9d
add edx, r8d
mov r8d, 0x87f9af41
xor r8d, 0xf2168045
mov r9d, edx
xor r9d, r8d
xor r9d, 0xffffffff
and r9d, 0x75ef2f04
mov r8d, 0x6bab171d
xor r8d, 0x6bab171f
imul r8d, r9d
sub r8d, 0x75ef2f04
sub edx, r8d
mov dword [rbp - 0x70], edx
mov dl, byte [rcx]
mov byte [rbp - 0x72], dl
cmp dl, 0
sete dl
mov byte [rbp - 0x71], dl
mov dl, 0xee
xor dl, 0xee
mov byte [rcx], dl
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.1401221f9
mov rcx, qword [rbp + 0x70]
mov eax, dword [rbp - 0x70]
add rsp, 0x20
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x6b], cl
cmp eax, 0x9a198cf4
jb 0x140052dad
mov cl, byte [rbp - 0x6b]
xor eax, eax
test cl, 1
mov byte [rbp - 0x4d], al
jne 0x140052ea0
jmp 0x140052ef0
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp rax, 0
je 0x140052ee1
mov rcx, qword [rbp - 0x80]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x140052ee1
mov rcx, qword [rbp - 0x80]
sub rsp, 0x20
call fcn.14000eb2e
add rsp, 0x20
mov al, byte [rbp - 0x71]
mov rcx, qword [rbp + 0x70]
mov dl, byte [rbp - 0x72]
mov byte [rcx], dl
mov byte [rbp - 0x4d], al
mov al, byte [rbp - 0x4d]
mov byte [rbp + 0x1f], al
mov al, byte [rbp + 0x1f]
and al, 1
movzx eax, al
lea rsp, [rbp + 0x90]
pop rbp
ret
invalid
int1
shl dword [rax], 0x72
jmp 0x140052710
retf 0xafc8
push rcx
out 0xf5, eax
jmp 0x140052b18
and bl, byte [rcx + 0x79e9b1ba]
invalid