Function at 0x140052cc0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0x108
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x48], rcx
mov eax, 0x10
call fcn.1401c7680
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x40], rax
sub rsp, 0x20
call fcn.140043b19
mov rcx, qword [rbp + 0x48]
add rsp, 0x20
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x78], 0
lea rax, [rbp + 0x78]
add rax, 8
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x80], 0
mov rcx, qword [rcx]
movabs rdx, 0x2919ca7b922e2d22
movabs rax, 0x2919ca7b922e2d20
xor rdx, rax
lea r8, [rbp + 0x70]
sub rsp, 0x20
call fcn.140044820
add rsp, 0x20
test al, 1
jne 0x140052d55
jmp 0x140052df6
mov eax, dword [0x1401ca640]
mov edx, dword [0x1401ca644]
xor eax, 0xffffffff
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x3f3093e4
or eax, edx
or ecx, 0x3f3093e4
mov edx, 0x3f47ef9f
xor edx, 0xc0b81060
xor eax, edx
and eax, ecx
or eax, 0x36ad4342
xor eax, 0xaf415ad2
sub eax, 0xf3891a05
cmp eax, 0x94f9139c
je 0x140053802
mov eax, dword [0x1401ca648]
xor eax, 0x6e95195d
or eax, dword [0x1401ca64c]
mov ecx, 0x1f6cf843
xor ecx, 0xedf9b44b
sub eax, ecx
mov ecx, 0xd4d1f379
xor edx, edx
div ecx
mov ecx, 0x5bd2ce21
xor edx, edx
div ecx
mov dword [rbp + 0x3c], eax
sub rsp, 0x20
call fcn.140008024
mov eax, dword [rbp + 0x3c]
add rsp, 0x20
cmp eax, 0x5a69452f
jae 0x140052da3
jmp 0x1400537f8
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x30], rax
cmp rax, 0
jge 0x140052f0e
mov ecx, dword [0x1401ca650]
xor ecx, 0x81a8cd96
or ecx, dword [0x1401ca654]
mov eax, 0xc63d7100
xor eax, 0xeb598725
imul ecx, eax
mov eax, 0xe74b7cb0
xor eax, 0xe74b7cb0
mov edx, 0x5c27aa04
xor edx, 0xfcd109e0
sub eax, edx
sub ecx, eax
mov edx, 0xcfd9272d
xor edx, 0x3026d8d2
mov eax, ecx
xor eax, edx
and eax, 0x9ea5258d
mov edx, 0x2ecaaf0
xor edx, 0x9c498f7d
mov r8d, 0xa4a9181d
xor r8d, 0x5b56e7e2
xor edx, r8d
and ecx, edx
or eax, ecx
cmp eax, 0xcd6c05d5
je 0x14005380b
mov rcx, qword [rbp + 0x30]
mov eax, dword [0x1401ca658]
or eax, dword [0x1401ca65c]
add eax, 0x7fa6ad93
mov edx, 0x6d3580b8
xor edx, 0x801dd58a
or eax, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x8c59c4bf
mov r8d, 0xffffffff
xor r8d, 0x6b224508
or eax, edx
mov edx, 0xc6ba62de
xor edx, 0xad9827d6
or edx, r8d
mov r8d, 0x58698d90
xor r8d, 0xa796726f
xor eax, r8d
and eax, edx
mov dword [rbp + 0x2c], eax
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000c8ac
mov eax, dword [rbp + 0x2c]
add rsp, 0x20
cmp eax, 0x8dabc1b9
jae 0x14005380b
jmp 0x1400537f8
mov rdx, qword [rbp + 0x30]
lea rcx, [rbp + 0x78]
sub rsp, 0x20
call fcn.140021c12
mov r9, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x40]
add rsp, 0x20
mov r8, qword [r9]
mov qword [rbp + 8], r8
mov rdx, r9
add rdx, 8
mov qword [rbp + 0x10], rdx
mov rdx, qword [r9 + 8]
mov r10, qword [rbp + 0x78]
mov qword [r9], r10
mov r10, qword [rbp + 0x80]
mov qword [r9 + 8], r10
mov qword [rbp + 0x78], r8
mov qword [rcx], rdx
add rax, 8
mov qword [rbp + 0x18], rax
xor eax, eax
mov qword [rbp + 0x20], rax
mov rcx, qword [rbp + 8]
mov rax, qword [rbp + 0x20]
mov qword [rbp], rax
cmp rax, rcx
jge 0x1400537d4
mov rcx, qword [rbp]
test rcx, rcx
setns al
mov rdx, qword [rbp + 0x78]
mov qword [rbp - 8], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x140053147
mov eax, dword [0x1401ca660]
mov ecx, dword [0x1401ca664]
add eax, 0xe1b94ac4
sub eax, ecx
sub eax, 0xe1b94ac4
mov edx, eax
xor edx, 0xffffffff
and edx, 0x65415b5f
mov r8d, 0xffffffff
xor r8d, 0x65415b5f
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x65415b5f
or eax, 0x65415b5f
imul eax, edx
add eax, ecx
mov edx, 0xfda7be4f
xor edx, 0x29561685
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
and ecx, 0xd4f1a8ca
shl ecx, 1
mov edx, 0x12093b1
xor edx, 0xd5d13b7b
sub ecx, edx
sub eax, ecx
mov ecx, 0x4dc67289
xor ecx, 0x5b08c48c
xor edx, edx
div ecx
mov ecx, 0x4f5c4262
xor ecx, 0x449f3bf0
cmp eax, ecx
jae 0x140053814
mov rcx, qword [rbp]
mov rdx, qword [rbp - 8]
mov eax, dword [0x1401ca668]
mov r10d, dword [0x1401ca66c]
mov r9d, r10d
xor r9d, 0xffffffff
mov r8d, eax
and r8d, r9d
mov r9d, eax
xor r9d, r10d
add eax, r9d
sub eax, r8d
mov r8d, eax
and r8d, r8d
mov r9d, 0x37326af6
xor r9d, 0xc8cd9509
xor r8d, r9d
and r8d, 0xde0a3b0e
mov r9d, 0x1503e756
xor r9d, 0xeafc18a9
xor r8d, r9d
mov r9d, 0xde0a3b0e
and r9d, 0xde0a3b0e
mov r10d, 0x9ab33475
xor r10d, 0x654ccb8a
xor r9d, r10d
xor eax, 0xffffffff
mov r10d, 0x6fe21dc7
xor r10d, 0x901de238
xor r9d, r10d
or eax, r9d
mov r9d, 0xac648fdb
xor r9d, 0x539b7024
xor r8d, r9d
mov r9d, 0x7c1ce828
xor r9d, 0x83e317d7
xor eax, r9d
or r8d, eax
mov eax, 0xdfebfa81
xor eax, 0x5970ae69
xor r8d, eax
mov eax, r8d
and eax, 0x2bd17ffe
xor eax, 0xffffffff
xor r8d, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x2bd17ffe
or r8d, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
or eax, r8d
mov dword [rbp - 0xc], eax
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.1400122ad
mov eax, dword [rbp - 0xc]
add rsp, 0x20
cmp eax, 0x62f5dd3f
jae 0x140053039
jmp 0x1400537f8
mov rax, qword [rbp + 0x50]
mov rdx, qword [rbp]
mov rcx, qword [rbp + 0x58]
mov rcx, qword [rcx]
shl rdx, 5
mov rcx, qword [rcx + rdx + 8]
mov qword [rbp - 0x18], rcx
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rbp - 0xd], al
or al, cl
test al, 1
jne 0x140053642
mov rdx, qword [rbp - 0x18]
mov rax, qword [rbp + 0x48]
mov rax, qword [rax]
movabs rcx, 0x3ffa81d49a58dee6
movabs r8, 0xc0057e2b65a72119
xor rcx, r8
add rax, rcx
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
movabs rcx, 0x7717ccaf09e8e8ae
movabs r8, 0x2097bc62623b8a57
xor rcx, r8
movabs r8, 0x971902b48b6664cd
movabs r9, 0x68e6fd4b74999b32
xor r8, r9
xor rcx, r8
or rax, rdx
movabs rdx, 0x578070cd6bd362f9
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x28], rax
mov eax, dword [0x1401ca670]
mov ecx, dword [0x1401ca674]
xor ecx, 0xeb36b646
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0xffffffff
xor edx, 0x33f89c1c
mov eax, ecx
xor eax, edx
and eax, ecx
imul eax, eax, 0x2f711583
and eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x25f83f8d
mov edx, 0xffffffff
xor edx, 0x25f83f8d
or ecx, edx
and eax, ecx
mov ecx, 0x45dab64b
xor ecx, 0xba2549b4
xor eax, ecx
cmp eax, 0x4632a0d5
ja 0x14005381d
mov r8, qword [rbp - 0x28]
mov r9, qword [rbp + 0x48]
mov r10d, dword [0x1401ca678]
xor r10d, 0x8da92070
mov eax, dword [0x1401ca67c]
mov edx, r10d
add edx, eax
mov ecx, eax
mov eax, r10d
lea ecx, [rax + rcx + 0x6648e5a]
not ecx
or ecx, 0x358d010a
mov eax, ecx
mov ecx, edx
lea eax, [rax + rcx + 0x6648e5b]
xor eax, 0xc001cb63
mov ecx, 0x6793862
test r8, r8
setns dl
mov r9, qword [r9]
mov qword [rbp - 0x38], r9
sub r8, r9
setl r8b
and dl, r8b
mov byte [rbp - 0x29], dl
cmp eax, ecx
jb 0x140053264
mov al, byte [rbp - 0x29]
test al, 1
jne 0x14005332e
jmp 0x1400532e0
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x38]
movabs rax, 0x1e768c8c4575700e
movabs r8, 0x1e768c8c4575700e
xor rax, r8
movabs r8, 0xbfb4a20f2b1bd075
movabs r9, 0x404b5df0d4e42f8a
xor r8, r9
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.1400122ad
add rsp, 0x20
jmp 0x1400537f8
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
add rax, 8
shl rcx, 5
add rax, rcx
cmp qword [rax], 0
je 0x140053383
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140044970
mov rcx, qword [rbp + 0x50]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xa5
xor dl, 0xa5
cmp cl, dl
mov qword [rbp - 0x20], rax
je 0x1400531f6
jmp 0x1400537f8
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x78]
mov qword [rbp - 0x40], rcx
cmp rax, rcx
jl 0x1400534c4
mov eax, dword [0x1401ca680]
mov edx, dword [0x1401ca684]
mov r8d, 0x7a850a81
xor r8d, 0x7a850a80
mov ecx, eax
add ecx, r8d
xor eax, 0xffffffff
or eax, edx
add eax, ecx
and eax, 0x8b5af4d4
mov ecx, 0xabfb9468
xor ecx, 0x8b71d1ef
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x6b45b9a4
xor edx, 0xbd7f9c44
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0xd63a25e0
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xd63a25e0
mov r8d, 0xf189a118
xor r8d, 0x27b384f8
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x724fc162
xor ecx, 0x32537226
cmp eax, ecx
ja 0x140053826
mov rcx, qword [rbp]
mov rdx, qword [rbp - 0x40]
mov r8d, dword [0x1401ca688]
mov eax, dword [0x1401ca68c]
xor eax, 0xffffffff
add r8d, eax
add r8d, 1
mov r9d, 0xffffffff
xor r9d, 0x39d369fb
mov eax, r8d
xor eax, r9d
and eax, r8d
mov r8d, 0xd2062574
xor r8d, 0x36f8022a
mov r9d, 0x43c20f8d
xor r9d, 0xbc3df072
xor r8d, r9d
xor r9d, r9d
sub r9d, 1
sub r8d, r9d
sub eax, r8d
mov r8d, eax
xor r8d, 0xe253943
xor r8d, 0xffffffff
or eax, 0xe253943
and eax, r8d
mov dword [rbp - 0x44], eax
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.1400122ad
mov eax, dword [rbp - 0x44]
add rsp, 0x20
cmp eax, 0xcb58a877
ja 0x140053428
jmp 0x1400537f8
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x58]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
add rcx, 8
mov rax, qword [rcx]
mov qword [rbp - 0x60], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 0x58], rax
sub rsp, 0x20
call fcn.14000f979
mov rax, qword [rbp]
add rsp, 0x20
mov rcx, qword [rbp + 0x78]
mov qword [rbp - 0x50], rcx
cmp rax, rcx
jl 0x140053532
mov rcx, qword [rbp]
mov rdx, qword [rbp - 0x50]
xor eax, eax
sub rax, 0xffffffffffffffff
sub rdx, rax
sub rsp, 0x20
call fcn.1400122ad
add rsp, 0x20
jmp 0x1400537f8
mov rsi, qword [rbp - 0x60]
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x58]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
add rcx, 0x18
mov rax, qword [rcx]
mov qword [rbp - 0x68], rax
sub rsp, 0x20
call fcn.140112d07
mov r11, qword [rbp - 0x58]
mov rcx, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x48]
mov r8, qword [rbp + 0x40]
mov r9, qword [rbp - 0x68]
mov r10, qword [rbp - 0x18]
mov rax, qword [rbp - 0x28]
add rsp, 0x20
mov qword [r8], rsi
mov qword [rcx], r11
sub rsp, 0x30
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.140052a10
mov rax, qword [rbp + 0x50]
add rsp, 0x30
mov al, byte [rax]
mov cl, 0x6c
xor cl, 0x6c
cmp al, cl
jne 0x1400537f8
mov rax, qword [rbp - 0x58]
cmp rax, 0
je 0x14005374b
mov rax, qword [rbp - 0x58]
mov rcx, qword [rax]
mov rax, rcx
xor rax, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
or rax, rdx
xor rcx, 0xffffffffffffffff
movabs rdx, 0x77e8f13d6b790b7e
movabs r8, 0x37e8f13d6b790b7e
xor rdx, r8
movabs r8, 0xa606ecc6363b3763
movabs r9, 0x59f91339c9c4c89c
xor r8, r9
xor rdx, r8
or rcx, rdx
and rax, rcx
xor rax, 0xffffffffffffffff
cmp rax, 0
jne 0x14005374b
mov rcx, qword [rbp - 0x58]
sub rsp, 0x20
call fcn.14000e572
add rsp, 0x20
jmp 0x14005374b
mov ecx, dword [0x1401ca690]
mov eax, dword [0x1401ca694]
xor eax, 0x9020df16
and ecx, eax
mov edx, 0xdaf764c4
xor edx, 0x76f85e02
mov eax, ecx
or eax, edx
xor eax, 0xffffffff
or ecx, 0xac0f3ac6
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xf2e35e9f
xor edx, edx
div ecx
sub eax, 0x898dd354
add eax, 0xb259b98
add eax, 0x898dd354
mov ecx, 0xfa600d0a
xor ecx, 0xc36dd884
cmp eax, ecx
jae 0x14005382f
mov ecx, dword [0x1401ca698]
imul ecx, dword [0x1401ca69c]
xor ecx, 0xc70c72c3
sub ecx, 0x812d7aa2
mov edx, 0xc8b9393c
xor edx, 0x3746c6c3
mov eax, ecx
xor eax, edx
mov r8d, 0x5106f955
xor r8d, 0xaef906aa
mov edx, ecx
xor edx, r8d
and eax, edx
mov edx, 0xffffffff
xor edx, 0x1d589a2f
mov r8d, 0x23743044
xor r8d, 0x3e2caa6b
mov r9d, 0x45719c99
xor r9d, 0xba8e6366
xor r8d, r9d
and edx, r8d
or eax, edx
xor eax, 0xffffffff
or ecx, 0x1d589a2f
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xfb1c8544
xor ecx, 0x9086de56
cmp eax, ecx
je 0x14005382f
mov rcx, qword [rbp]
mov dl, byte [rbp - 0xd]
xor eax, eax
test dl, 1
mov qword [rbp - 0x78], rcx
mov byte [rbp - 0x69], al
jne 0x1400537bb
jmp 0x14005374b
mov rax, qword [rbp]
mov rcx, rax
and rcx, 1
movabs r8, 0x73174ed0bca669f2
movabs rdx, 0x73174ed0bca669f3
xor r8, rdx
mov rdx, rax
or rdx, r8
add rcx, rdx
mov rdx, rax
xor rdx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rdx, 0xffffffffffffffff
shl rdx, 1
sub rdx, 0xffffffffffffffff
sub rax, rdx
mov rdx, rcx
and rdx, rax
mov al, 1
cmp rdx, 0
mov qword [rbp - 0x78], rcx
mov byte [rbp - 0x69], al
jge 0x1400537bb
sub rsp, 0x20
call fcn.140008024
add rsp, 0x20
jmp 0x1400537f8
mov rax, qword [rbp - 0x78]
mov cl, byte [rbp - 0x69]
test cl, 1
mov qword [rbp + 0x20], rax
jne 0x140052f6c
jmp 0x1400537f8
mov rax, qword [rbp + 0x78]
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x80]
mov qword [rbp + 0x68], rax
lea rcx, [rbp + 0x60]
sub rsp, 0x20
call fcn.14004b870
add rsp, 0x20
lea rsp, [rbp + 0x88]
pop rsi
pop rbp
ret
loopne 0x140053785
movabs byte ds:[0xa438a6fffff598e9], al
cmp ebp, ecx
push 0xfffffffffffffff6
cmpsb byte [rsi], byte [rdi]
cmp byte [rbx + rdi - 0x99517], ah
jmp qword [rsi - 0x16fe3174]
invalid
cmpsb byte [rsi], byte [rdi]
mov esi, cs
add ecx, ebp
sbb al, 0xf8
invalid
cmc
mov edi, 0x3ee94f0b
cli
invalid
and edx, dword [rdx + 0x1f]
imul ecx
stc
sti
invalid
jle 0x140053812
cmp ch, cl
push 0xffffffe
invalid