Function at 0x14005ad50
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x60], rcx
mov eax, dword [0x140202bf0]
mov r8d, dword [0x140202bf4]
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
mov ecx, 0x9315d2b2
xor edx, edx
div ecx
mov ecx, 0x2e7c2b62
xor ecx, 0xbb64bdd2
mov edx, 0x3320071d
xor edx, 0xccdff8e2
xor ecx, edx
add eax, ecx
mov ecx, 0x9e9cf36e
xor ecx, 0x9e9cf36f
add eax, ecx
mov ecx, 0x682092a1
xor ecx, 0x3a33545f
mov edx, 0x47fb15c1
xor edx, 0xb804ea3e
xor ecx, edx
add eax, ecx
add eax, 1
cmp eax, 0x50754df3
ja 0x14005b8c0
mov eax, dword [0x140202bf8]
mov ecx, dword [0x140202bfc]
xor eax, ecx
add eax, 0xf8e4f981
shr eax, 3
imul rax, rax, 0x1779f8d7
shr rax, 0x37
imul eax, eax, 0x9fc7063b
mov dword [rbp + 0x58], eax
mov eax, 0x9abaa0e6
mov dword [rbp + 0x54], eax
mov eax, 0x10
mov qword [rbp + 0x20], rax
call fcn.1401ffc50
sub rsp, rax
mov rax, qword [rbp + 0x20]
mov rcx, rsp
mov qword [rbp + 0x30], rcx
call fcn.1401ffc50
sub rsp, rax
mov rax, qword [rbp + 0x20]
mov rcx, rsp
mov qword [rbp + 0x38], rcx
call fcn.1401ffc50
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x28], rax
sub rsp, 0x20
call fcn.14004b700
mov rcx, qword [rbp + 0x30]
mov r8, qword [rbp + 0x38]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x40], rdx
mov qword [rcx], 0
mov rdx, rcx
add rdx, 8
mov qword [rbp + 0x48], rdx
mov qword [rcx + 8], 0
mov rcx, qword [rax]
mov edx, 2
sub rsp, 0x20
call fcn.14004c6b0
mov ecx, dword [rbp + 0x54]
add rsp, 0x20
mov dl, al
mov eax, dword [rbp + 0x58]
mov byte [rbp + 0x5f], dl
cmp eax, ecx
ja 0x14005adf2
mov al, byte [rbp + 0x5f]
test al, 1
jne 0x14005aed4
jmp 0x14005aee6
sub rsp, 0x20
call fcn.140007f57
add rsp, 0x20
jmp 0x14005b8b7
mov eax, dword [0x140202c00]
xor eax, 0xd55742cc
mov ecx, dword [0x140202c04]
mov edx, 0xbaf5e7a8
xor edx, 0xdd40c73e
xor ecx, edx
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0x4383aa60
xor edx, 0xaed3adfe
mov eax, ecx
xor eax, edx
xor eax, 0xffffffff
or ecx, 0xed50079e
and ecx, eax
or ecx, 0x755a0e6c
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
mov edx, 0x6536e42f
xor edx, 0x9ac91bd0
xor eax, edx
mov edx, 0x1489434f
xor edx, 0x1218177
mov r8d, 0x7f9cee8e
xor r8d, 0x80631171
xor edx, r8d
or eax, edx
mov edx, 0xedb2e6d8
xor edx, 0xf81a24e0
mov r8d, 0x85ac45c7
xor r8d, 0x7a53ba38
xor edx, r8d
mov r8d, 0xce52be25
xor r8d, 0xdbfa7c1d
mov r9d, 0x788588a0
xor r9d, 0x877a775f
xor r8d, r9d
or edx, r8d
and ecx, edx
mov edx, 0x7e059c15
xor edx, 0x81fa63ea
xor ecx, edx
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0x7ffabd4e
jae 0x14005b8c9
mov eax, dword [0x140202c08]
xor eax, dword [0x140202c0c]
or eax, 0xa1c0c3f
mov ecx, 0x4ac9854d
xor ecx, 0xee47d393
xor edx, edx
div ecx
mov rdx, qword [rbp + 0x38]
mov r8d, eax
and r8d, 0x2f6d1121
mov ecx, 0x2e8a4da4
xor ecx, 0x2e8a4da6
imul ecx, r8d
add eax, 0x2f6d1121
sub eax, ecx
mov ecx, 0xdd7e037
xor ecx, 0xd53fc1c5
mov rdx, qword [rdx]
mov qword [rbp + 0x10], rdx
cmp rdx, 0
setl dl
mov byte [rbp + 0x1f], dl
cmp eax, ecx
ja 0x14005afb5
mov al, byte [rbp + 0x1f]
test al, 1
jne 0x14005b02d
jmp 0x14005b051
mov rcx, qword [rbp + 0x10]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000dc65
add rsp, 0x20
jmp 0x14005b8b7
mov rcx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x10]
sub rsp, 0x20
call fcn.14001806a
mov r9, qword [rbp + 0x60]
mov rdx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x48]
add rsp, 0x20
mov r8, qword [r9]
mov qword [rbp - 8], r8
mov rcx, r9
add rcx, 8
mov qword [rbp], rcx
mov rcx, qword [r9 + 8]
mov r10, qword [rdx]
mov qword [r9], r10
mov r10, qword [rdx + 8]
mov qword [r9 + 8], r10
mov qword [rdx], r8
mov qword [rax], rcx
xor eax, eax
mov qword [rbp + 8], rax
mov rax, qword [rbp + 8]
mov qword [rbp - 0x10], rax
mov eax, dword [0x140202c10]
mov ecx, dword [0x140202c14]
mov edx, 0x5cc267ec
xor edx, 0x95297617
xor ecx, edx
sub eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xce4cbcff
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xce4cbcff
or eax, 0xce4cbcff
imul eax, edx
add eax, ecx
and eax, eax
xor eax, 0xffffffff
mov ecx, 0x8c5ec7b5
and ecx, 0x8c5ec7b5
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xb7a123d6
xor ecx, 0x74863515
sub eax, ecx
cmp eax, 0x1839ab79
je 0x14005b8d2
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 8]
mov eax, dword [0x140202c18]
mov r9d, dword [0x140202c1c]
xor r9d, 0x56a60941
mov r8d, eax
xor r8d, r9d
mov r10d, 0xdd27ee5f
xor r10d, 0x22d811a0
xor r8d, r10d
or eax, r9d
and eax, r8d
mov r8d, eax
xor r8d, 0xffffffff
mov r9d, 0x294929de
xor r9d, 0x98decab
and r9d, r8d
mov r10d, 0xe5ca6e0b
xor r10d, 0xc50eab7e
mov r8d, 0x90282f27
xor r8d, 0x6fd7d0d8
xor r10d, r8d
mov r8d, eax
and r8d, r10d
imul r8d, r9d
mov r9d, eax
and r9d, 0x20c4c575
mov r10d, 0xd4f52cad
xor r10d, 0xf431e9d8
or eax, r10d
imul eax, r9d
add eax, r8d
add eax, 0xa5f74e8f
mov r8d, eax
and r8d, 0x60ae371b
xor r8d, 0xffffffff
mov r9d, 0x632358f
xor r9d, 0x669c0294
add eax, r9d
add eax, 1
add eax, r8d
cmp rcx, rdx
setl cl
mov byte [rbp - 0x11], cl
cmp eax, 0x766c99a3
jb 0x14005b8d2
mov al, byte [rbp - 0x11]
test al, 1
jne 0x14005b20b
jmp 0x14005b894
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp + 0x30]
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp - 0x20], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14005b2b2
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x20]
movabs rax, 0x6bdbd51b5acdcbb7
movabs r8, 0x94242ae4a5323448
xor rax, r8
movabs r8, 0x2721a2dded2d7c1c
movabs r9, 0xd8de5d2212d283e3
xor r8, r9
xor rax, r8
movabs r8, 0x80c5f22476a16508
movabs r9, 0x80c5f22476a16508
xor r8, r9
movabs r9, 0x6fbca0c3e7ae37
movabs r10, 0x6fbca0c3e7ae36
xor r9, r10
sub r8, r9
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.140014583
add rsp, 0x20
jmp 0x14005b8b7
mov rax, qword [rbp + 0x40]
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x48]
mov rcx, qword [rcx]
lea rdx, [rdx + rdx*2]
mov rcx, qword [rcx + rdx*8 + 8]
mov qword [rbp - 0x30], rcx
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rbp - 0x21], al
or al, cl
test al, 1
jne 0x14005b778
mov rcx, qword [rbp - 0x30]
mov rax, qword [rbp + 0x60]
mov rax, qword [rax]
movabs rdx, 0x1fc285c29735099
movabs r8, 0xfe03d7a3d68caf66
xor rdx, r8
add rax, rdx
and rax, rcx
mov qword [rbp - 0x38], rax
mov rdx, qword [rbp + 0x60]
mov rcx, qword [rbp - 0x38]
mov qword [rbp - 0x48], rcx
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp - 0x40], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14005b371
mov rcx, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x40]
movabs rax, 0x437a4d6688ceb697
movabs r8, 0xbc85b29977314968
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.140014583
add rsp, 0x20
jmp 0x14005b8b7
mov ecx, dword [0x140202c20]
mov eax, dword [0x140202c24]
xor eax, 0xffffffff
xor edx, edx
sub edx, 1
sub eax, edx
sub ecx, eax
mov eax, ecx
and eax, 0x22077471
shl eax, 1
xor ecx, 0x22077471
add ecx, eax
mov eax, ecx
or eax, eax
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x184f067d
mov r8d, 0xffffffff
xor r8d, 0x184f067d
and edx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
mov edx, 0x14feb135
xor edx, 0xeb014eca
xor ecx, edx
mov edx, 0x7bda181d
xor edx, 0x63951e60
mov r8d, 0x67610bf7
xor r8d, 0x989ef408
xor edx, r8d
and ecx, edx
xor eax, 0xffffffff
mov edx, 0xe9fb4d5b
xor edx, 0x1604b2a4
xor ecx, edx
and eax, ecx
add eax, 0xdfe0cdb5
sub eax, 0x81cc40f9
mov ecx, 0xa40e37b8
xor ecx, 0x7beefa0d
sub eax, ecx
cmp eax, 0xc51f8cff
ja 0x14005b8db
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp]
mov eax, dword [0x140202c28]
xor eax, 0xeabe2688
mov r9d, dword [0x140202c2c]
mov r8d, eax
and r8d, r9d
shl r8d, 1
xor eax, r9d
add eax, r8d
mov r8d, 0xbdc603f4
xor r8d, 0x4239fc0b
xor eax, r8d
mov r9d, 0xffffffff
xor r9d, 0x723bab12
mov r8d, 0xffffffff
xor r8d, 0x5879917c
or eax, r9d
or r8d, 0x5879917c
xor eax, 0xffffffff
and eax, r8d
sub eax, 0x84530ead
or eax, 0x94cb4e17
mov rcx, qword [rcx]
add rcx, 8
imul rdx, rdx, 0x18
add rcx, rdx
cmp qword [rcx], 0
sete cl
mov byte [rbp - 0x49], cl
cmp eax, 0xeafb41f7
je 0x14005b423
mov al, byte [rbp - 0x49]
test al, 1
jne 0x14005b50d
jmp 0x14005b4c4
mov rcx, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x40]
mov rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor r8d, r8d
sub r8, 1
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.14004c879
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xe1
xor dl, 0xe1
cmp cl, dl
mov qword [rbp - 0x38], rax
je 0x14005b314
jmp 0x14005b8b7
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x30]
mov rcx, qword [rcx]
mov qword [rbp - 0x58], rcx
cmp rax, rcx
jl 0x14005b557
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x58]
mov rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor r8d, r8d
sub r8, 1
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.140014583
add rsp, 0x20
jmp 0x14005b8b7
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x48]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x18
add rcx, rax
add rcx, 8
mov rax, qword [rcx]
mov qword [rbp - 0x68], rax
sub rsp, 0x20
call fcn.14002a144
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp - 0x10]
add rsp, 0x20
mov rcx, qword [rcx]
mov qword [rbp - 0x60], rcx
cmp rax, rcx
jl 0x14005b5bb
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140014583
add rsp, 0x20
jmp 0x14005b8b7
mov eax, dword [0x140202c30]
xor eax, 0x4ead378c
mov r8d, dword [0x140202c34]
xor r8d, 0x7119b7fe
mov ecx, eax
xor ecx, 0xffffffff
mov r9d, 0x4b053992
xor r9d, 0xb4fac66d
mov edx, eax
xor edx, r9d
or ecx, edx
and ecx, r8d
xor ecx, 0xffffffff
mov edx, r8d
xor edx, 0xffffffff
xor r8d, 0xffffffff
or edx, r8d
mov r8d, 0x119b6c76
xor r8d, 0xee649389
xor eax, r8d
mov r8d, 0x379047af
xor r8d, 0xc86fb850
xor edx, r8d
or eax, edx
and ecx, eax
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0xdea7c41e
xor eax, 0xffffffff
add ecx, 0xdea7c41e
add ecx, 1
add ecx, eax
mov eax, ecx
xor eax, 0x7dea7e46
xor eax, 0xffffffff
or ecx, 0x7dea7e46
and ecx, eax
mov eax, ecx
and eax, 0x152b1c3c
or ecx, 0x152b1c3c
add eax, ecx
mov ecx, 0x5e7fe95a
xor ecx, 0xf15268e8
cmp eax, ecx
jae 0x14005b8e4
mov rax, qword [rbp - 0x48]
mov r10, qword [rbp - 0x30]
mov r8, qword [rbp - 0x68]
mov rdx, qword [rbp + 0x60]
mov r9, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x48]
mov r11d, dword [0x140202c38]
xor r11d, 0xaa312d56
mov edi, dword [0x140202c3c]
mov ebx, r11d
and ebx, edi
mov esi, 0xbc68337c
xor esi, 0xbc68337e
imul esi, ebx
add r11d, edi
sub r11d, esi
mov ebx, 0xffffffff
xor ebx, 0x96ae59ac
mov edi, r11d
and edi, ebx
mov esi, r11d
or esi, ebx
xor esi, 0xffffffff
imul esi, edi
mov edi, r11d
and edi, 0x96ae59ac
or r11d, 0x96ae59ac
imul r11d, edi
add r11d, esi
mov esi, 0xf4c3cb4a
xor esi, 0x12608d0c
sub r11d, esi
imul r11d, r11d, 0xcf67b580
mov dword [rbp - 0x70], r11d
mov r11d, 0x2c9f588b
xor r11d, 0xa1f1a04a
mov dword [rbp - 0x74], r11d
mov rcx, qword [rcx]
add rcx, 8
imul r9, r9, 0x18
add rcx, r9
add rcx, 0x10
mov r9, qword [rcx]
mov qword [rcx], 0
sub rsp, 0x30
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.14005ac0a
mov rdx, qword [rbp + 0x40]
mov ecx, dword [rbp - 0x74]
mov eax, dword [rbp - 0x70]
add rsp, 0x30
mov dl, byte [rdx]
mov r8b, 0x25
xor r8b, 0x25
cmp dl, r8b
sete dl
mov byte [rbp - 0x69], dl
cmp eax, ecx
je 0x14005b8e4
mov al, byte [rbp - 0x69]
test al, 1
jne 0x14005b796
jmp 0x14005b8b7
mov rcx, qword [rbp - 0x10]
mov dl, byte [rbp - 0x21]
xor eax, eax
test dl, 1
mov qword [rbp - 0x80], rcx
mov byte [rbp - 0x75], al
jne 0x14005b87b
jmp 0x14005b796
mov rax, qword [rbp - 0x10]
mov rcx, rax
add rcx, 1
mov r8, rax
or r8, r8
xor r8, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
movabs r9, 0xb04e866687ab609
movabs r10, 0xf4fb1799978549f6
xor r9, r10
movabs r10, 0x18e0aa2c3704d807
movabs r11, 0xe71f55d3c8fb27f8
xor r10, r11
xor r9, r10
and rdx, r9
or r8, rdx
xor r8, 0xffffffffffffffff
or rax, 0xffffffffffffffff
movabs rdx, 0x434314f9ced050e4
movabs r9, 0xbcbceb06312faf1b
xor rdx, r9
xor rax, rdx
or r8, rax
movabs rax, 0x3904ed1de9611b72
movabs rdx, 0xc6fb12e2169ee48d
xor rax, rdx
xor r8, rax
mov rax, rcx
add rax, 1
mov rdx, rcx
xor rdx, 0xffffffffffffffff
or rdx, r8
add rdx, rax
movabs r8, 0xceee5ae338d8a7a
movabs rax, 0xceee5ae338d8a7a
xor r8, rax
mov al, 1
cmp rdx, r8
mov qword [rbp - 0x80], rcx
mov byte [rbp - 0x75], al
jge 0x14005b87b
sub rsp, 0x20
call fcn.140007f57
add rsp, 0x20
jmp 0x14005b8b7
mov rax, qword [rbp - 0x80]
mov cl, byte [rbp - 0x75]
test cl, 1
mov qword [rbp + 8], rax
jne 0x14005b0a2
jmp 0x14005b8b7
mov rcx, qword [rbp + 0x28]
mov rax, qword [rbp + 0x30]
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14004deeb
add rsp, 0x20
lea rsp, [rbp + 0x68]
pop rbx
pop rdi
pop rsi
pop rbp
ret
movabs eax, dword [0xfffff529e9919aff]
retf 0xd5a0
or byte [rax], cl
fild word [0x13ffe05c3]
call [rcx]
invalid
sbb ebp, edx
lodsd eax, dword [rsi]
push rsi
jmp 0x14005b423
pop rdi
in al, 2
jmp 0x14005b670