Function at 0x1400a88b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov esi, edx
test ecx, ecx
je 0x1400a8a01
movaps xmm0, xmmword [0x140438430]
movups xmmword [0x14056906f], xmm0
movups xmmword [0x14056905f], xmm0
movups xmmword [0x14056904f], xmm0
movups xmmword [0x14056903f], xmm0
cmp qword [0x140575b00], 0
jne 0x1400a8933
mov edx, esi
xor edx, 0x4f23a424
mov ecx, 0x700
mov r8d, 0xc61b48
call fcn.1400aaae0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140097d10
mov rax, qword [rbp - 8]
mov qword [0x140575b00], rax
mov rbx, qword [0x140575b00]
mov rdi, qword [rbx + 0x3b0]
test rdi, rdi
je 0x1400a8956
mov rcx, rdi
call fcn.1400996b0
mov rcx, rdi
call fcn.1400a87d0
mov qword [rbx + 0x3b0], 0
mov byte [0x140575c68], 1
mov rcx, qword [0x140575d60]
test rcx, rcx
je 0x1400a8990
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x14013cbc3.0]
mov qword [0x140575d60], 0
cmp qword [0x140575b00], 0
jne 0x1400a89c9
mov edx, esi
xor edx, 0x4f23a424
mov ecx, 0x700
mov r8d, 0xc61b48
call fcn.1400aaae0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140097d10
mov rax, qword [rbp - 8]
mov qword [0x140575b00], rax
mov rdi, qword [0x140575b00]
lea rbx, [rdi + 0x558]
mov rcx, qword [rdi + 0x558]
test rcx, rcx
je 0x1400a8f43
mov eax, dword [0x140575630]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x1400a9010
jmp 0x1400a8ff8
cmp qword [0x140575b00], 0
jne 0x1400a8a3a
mov edx, esi
xor edx, 0x4f23a424
mov ecx, 0x700
mov r8d, 0xc61b48
call fcn.1400aaae0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140097d10
mov rax, qword [rbp - 8]
mov qword [0x140575b00], rax
mov rdi, qword [0x140575b00]
lea rbx, [rdi + 0x558]
mov rcx, qword [rdi + 0x558]
test rcx, rcx
je 0x1400a8aa8
mov eax, dword [0x140575630]
lea edx, [rax + 1]
imul edx, eax
test dl, 1
nop word cs:[rax + rax]
xor eax, eax
test al, al
jne 0x1400a8a70
cmp dword [rdi + 0x574], 1
jne 0x1400a8a8d
mov r8, qword [rdi + 0x560]
xor edx, edx
call fcn.14041da70
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400a8aa8
mov edx, esi
xor edx, 0xeba90bc5
mov r8d, 0xe593d2e2
call fcn.1400a87c0
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov byte [rdi + 0x570], 1
mov byte [0x140575c68], 1
mov rcx, qword [0x140575d60]
test rcx, rcx
je 0x1400a8aec
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x14013cbc3.0]
mov qword [0x140575d60], 0
cmp qword [0x140575b00], 0
jne 0x1400a8b25
mov edx, esi
xor edx, 0x4f23a424
mov ecx, 0x700
mov r8d, 0xc61b48
call fcn.1400aaae0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140097d10
mov rax, qword [rbp - 8]
mov qword [0x140575b00], rax
mov rdi, qword [0x140575b00]
mov r13, qword [rdi + 0x370]
mov rax, qword [rdi + 0x378]
sub rax, r13
shr rax, 5
imul eax, eax, 0xcccccccd
movabs r15, 0xe3d4431675487fb
test eax, eax
jle 0x1400a8d0a
mov ebx, 0x80
xor r14d, r14d
lea eax, [rsi + 0x2cfa9b45]
mov dword [rbp - 8], eax
xor r12d, r12d
nop dword [rax]
mov eax, dword [0x1405015c0]
mov ecx, 0x7380dc9d
add eax, ecx
cmp dword [r13 + rbx + 8], eax
jne 0x1400a8b8c
cmp qword [r13 + rbx + 8], 0
je 0x1400a8bd0
mov eax, dword [0x140575634]
cmp eax, 0x26
jg 0x1400a8be0
nop word [rax + rax]
lea r8, [rbx + r13]
mov edx, dword [r13 + rbx - 0x5c]
mov r9d, dword [0x1405015c0]
mov eax, 0x46864158
add r9d, eax
xor r9d, esi
mov dword [rsp + 0x20], 0xb4873da
mov rcx, rdi
call fcn.1400aa0a0
test r14b, r14b
jne 0x1400a8be0
mov eax, dword [0x140575634]
cmp eax, 0x2b
jle 0x1400a8c20
jmp 0x1400a8c70
lea r8, [rbx + r13]
mov edx, dword [r13 + rbx - 0x5c]
mov r9d, dword [0x1405015c0]
mov eax, 0x46864158
add r9d, eax
imul r9d, dword [rbp - 8]
xor r9d, esi
mov dword [rsp + 0x20], 0xb4873da
mov rcx, rdi
call fcn.1400aa0a0
jmp 0x1400a8ba0
mov r13, qword [rdi + 0x370]
mov rax, qword [rdi + 0x378]
sub rax, r13
shr rax, 5
imul eax, eax, 0xcccccccd
shl rax, 0x20
movzx ecx, byte [0x1405015b8]
add cl, 0x1b
sar rax, cl
test r14b, r14b
jne 0x1400a8c70
inc r12
cmp r12, rax
jge 0x1400a8d0a
add rbx, 0xa0
jmp 0x1400a8b70
mov r8, qword [rdi + 0x378]
mov r9, qword [0x1405015b8]
mov rax, r9
sub rax, r8
add rax, qword [rdi + 0x370]
add rax, r15
mov rcx, r8
sub rcx, rax
imul rcx, rax
sub r8, rcx
imul r8, rcx
sub r8, rcx
imul r8, rcx
mov rdx, r8
shl rdx, cl
mov rax, r8
mov ecx, edx
shl rax, cl
mov ecx, eax
shl r8, cl
sub r9, r8
add rax, r15
add rax, r9
mov rcx, r8
neg rcx
dec r8
mov rdx, rax
xor rdx, r8
xor r8, rcx
and r8, rax
xor r8, rcx
and rdx, rax
lea rdx, [r8 + rdx*2]
mov ecx, eax
shl rdx, cl
shl rdx, cl
sub rdx, rax
mov eax, 0xa0
sub rax, rdx
mov rcx, rdx
sub rcx, rax
imul rcx, rax
or rcx, rdx
shr rcx, 0x20
jmp 0x1400a8c20
mov eax, dword [0x140575634]
mov ecx, dword [0x1405015c0]
mov edx, ecx
xor edx, 0x91a8c0a4
and ecx, 0x11a8c0a4
lea ecx, [rdx + rcx*2]
add ecx, 0xe1d81c37
cmp eax, ecx
nop
mov rax, qword [rdi + 0x398]
sub rax, qword [rdi + 0x390]
mov ecx, dword [0x140575630]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, 0x7380dc9d
add ecx, dword [0x1405015c0]
cmp edx, ecx
jne 0x1400a8d30
shr rax, 2
test eax, eax
jle 0x1400a8da0
xor ebx, ebx
mov r14d, esi
xor r14d, 0xd30564bb
mov dword [rsp + 0x20], 0xb4873da
mov rcx, rdi
mov edx, ebx
xor r8d, r8d
mov r9d, r14d
call fcn.1400aa0a0
inc ebx
mov rax, qword [rdi + 0x398]
sub rax, qword [rdi + 0x390]
shr rax, 2
cmp ebx, eax
jl 0x1400a8d70
mov rax, qword [0x140575a40]
test rax, rax
je 0x1400a8f0a
mov rbx, qword [rax + 0x20]
mov r13, qword [rbx]
cmp r13, rbx
je 0x1400a8f0a
mov edi, 1
lea rax, [fcn.1400a88b0]
lea ecx, [rax + rax]
add ecx, 0x1cc0
mov r14d, ecx
not r14d
and ecx, r14d
add eax, eax
add eax, 0x1cc1
and r14d, 0xfffffffe
xor r14d, eax
or r14d, ecx
mov r12d, 0x7380dc9d
jmp 0x1400a8e0e
inc edi
mov r13, rax
cmp rax, rbx
je 0x1400a8f0a
cmp r14d, 0xffffffff
jne 0x1400a8ef0
nop dword [rax + rax]
mov dword [r13 + 0x30], 0
mov dword [r13 + 0x28], 0
mov r8, qword [r13 + 0x58]
mov rax, qword [0x1405015b8]
add rax, r15
mov ecx, dword [0x140575630]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x1405015c0]
add ecx, r12d
cmp edx, ecx
jne 0x1400a8ef0
cmp r8, rax
je 0x1400a8e6e
mov rcx, qword [r13 + 0x50]
mov edx, edi
call fcn.14041da70
mov r8, qword [r13 + 0x98]
test r8, r8
je 0x1400a8e88
mov rcx, qword [r13 + 0x90]
mov edx, edi
call fcn.14041da70
mov rcx, qword [r13 + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1400a8ed0
nop word cs:[rax + rax]
mov rax, qword [r13 + 8]
cmp byte [rax + 0x19], 0
jne 0x1400a8e00
mov rcx, r13
mov r13, rax
cmp rcx, qword [rax + 0x10]
je 0x1400a8ea0
mov rax, r13
jmp 0x1400a8e00
mov rax, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400a8ed0
jmp 0x1400a8e00
mov dword [r13 + 0x30], 0
mov eax, dword [0x1405015c0]
add eax, r12d
mov dword [r13 + 0x28], eax
jmp 0x1400a8e20
movaps xmm0, xmmword [0x140438430]
movups xmmword [0x14056906f], xmm0
movups xmmword [0x14056905f], xmm0
movups xmmword [0x14056904f], xmm0
movups xmmword [0x14056903f], xmm0
cmp qword [0x140575b00], 0
jne 0x1400a8fc5
xor eax, eax
test al, al
je 0x1400a8f5d
jmp 0x1400a8f9c
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov byte [rdi + 0x570], 1
jmp 0x1400a9099
mov eax, esi
not eax
and eax, 0x4f23a424
mov edx, esi
xor edx, 0xb0dc5bdb
or edx, eax
not edx
or edx, eax
mov ecx, 0x700
mov r8d, 0xc61b48
call fcn.1400aaae0
lea rcx, [fcn.1400a88b0]
lea edx, [rcx + rcx]
add edx, 0xc0
mov ecx, edx
not ecx
test ecx, edx
je 0x1400a8fae
mov ecx, 0x700
mov r8d, 0xc61b48
call fcn.1400aaae0
jmp 0x1400a8f5d
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140097d10
mov rax, qword [rbp - 8]
mov qword [0x140575b00], rax
mov rdi, qword [0x140575b00]
mov rsi, qword [rdi + 0x3b0]
test rsi, rsi
je 0x1400a8fe8
mov rcx, rsi
call fcn.1400996b0
mov rcx, rsi
call fcn.1400a87d0
mov qword [rdi + 0x3b0], 0
jmp 0x1400a9646
mov eax, dword [rdi + 0x574]
mov edx, dword [0x140575634]
cmp edx, 0x19
jl 0x1400a901d
nop dword [rax]
mov eax, dword [0x140575634]
cmp eax, 0x40
jge 0x1400a9010
jmp 0x1400a8ff8
cmp eax, 1
jne 0x1400a9030
mov r8, qword [rdi + 0x560]
xor edx, edx
call fcn.14041da70
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400a904b
mov edx, esi
xor edx, 0xeba90bc5
mov r8d, 0xe593d2e2
call fcn.1400a87c0
cmp qword [0x140575b00], 0
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov byte [rdi + 0x570], 1
jne 0x1400a9099
mov edx, esi
xor edx, 0x4f23a424
mov ecx, 0x700
mov r8d, 0xc61b48
call fcn.1400aaae0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140097d10
mov rax, qword [rbp - 8]
mov qword [0x140575b00], rax
mov rdi, qword [0x140575b00]
mov r8, qword [rdi + 0x370]
mov rax, qword [rdi + 0x378]
sub rax, r8
shr rax, 5
imul eax, eax, 0xcccccccd
test eax, eax
jle 0x1400a928b
movabs rbx, 0x77021bf13d83c939
mov r14d, 1
mov r15d, 0x80
mov eax, esi
xor eax, 0xd30564bb
mov dword [rbp - 0xc], eax
lea rax, [fcn.1400a88b0]
lea r10d, [rax + rax]
add r10d, 0x45c0
mov r11d, r10d
not r11d
movabs r9, 0x9a1fdf1bcd161707
movabs r12, 0x1a1fdf1bcd161707
movabs r13, 0x65e020e432e9e8f9
cmp dword [r8 + r15 + 8], 0
jne 0x1400a9138
nop word cs:[rax + rax]
cmp qword [r8 + r15 + 8], 0
je 0x1400a9195
mov edx, dword [r8 + r15 - 0x5c]
add r8, r15
mov eax, dword [0x1405015c0]
mov ecx, 0x7ec95077
add eax, ecx
mov dword [rsp + 0x20], eax
mov rcx, rdi
mov qword [rbp - 8], r15
mov qword [rbp - 0x18], rbx
mov rbx, r9
mov r9d, dword [rbp - 0xc]
mov r13d, r10d
mov r15, r12
mov r12, r14
mov r14d, r11d
call fcn.1400aa0a0
mov r11d, r14d
mov r14, r12
mov r12, r15
mov r10d, r13d
movabs r13, 0x65e020e432e9e8f9
mov r9, rbx
mov rbx, qword [rbp - 0x18]
mov r15, qword [rbp - 8]
test r11d, r10d
jne 0x1400a91f0
nop word [rax + rax]
mov r8, qword [rdi + 0x370]
mov rax, qword [rdi + 0x378]
mov ecx, dword [0x140575634]
cmp ecx, 0x34
jg 0x1400a91f0
sub rax, r8
shr rax, 5
imul eax, eax, 0xcccccccd
cdqe
cmp r14, rax
jge 0x1400a928b
dec rbx
inc r14
add r15, 0xa0
cmp dword [r8 + r15 + 8], 0
je 0x1400a9130
jmp 0x1400a9138
mov rax, qword [rdi + 0x370]
mov rcx, qword [rdi + 0x378]
mov rdx, rcx
sub rdx, rax
imul rdx, rax
mov r8, rcx
sub r8, rdx
imul r8, rdx
mov rax, r8
sub rax, rcx
imul rax, r8
mov ecx, eax
shl ecx, 5
lea ecx, [rcx + rcx*2]
neg ecx
mov rdx, rax
shl rdx, cl
mov ecx, eax
sub ecx, edx
imul ecx, edx
shl rax, cl
mov r8, rax
shl r8, cl
mov rcx, rax
xor rcx, r9
and rax, r12
lea rax, [rcx + rax*2]
sub rax, r8
add rax, r13
imul rax, r8
mov rcx, rax
or rcx, r8
shr rcx, 0x20
je 0x1400a9270
cqo
idiv r8
jmp 0x1400a91a0
xor edx, edx
div r8d
jmp 0x1400a91a0
mov eax, dword [0x140575634]
cmp eax, 0x3a
jl 0x1400a9296
mov eax, dword [0x140575634]
cmp eax, 0x44
jg 0x1400a9280
mov rax, qword [rdi + 0x398]
sub rax, qword [rdi + 0x390]
mov ecx, dword [0x140575630]
mov edx, dword [0x1405015c0]
mov r8d, ecx
sub r8d, edx
add r8d, 0x8c7f2362
imul r8d, ecx
and r8d, 1
add edx, 0x7380dc9d
cmp r8d, edx
jne 0x1400a9280
shr rax, 2
test eax, eax
jle 0x1400a93b5
xor ebx, ebx
lea rax, [fcn.1400a88b0]
lea r15d, [rax + rax]
add r15d, 0x4840
mov r14d, esi
xor r14d, 0xd30564bb
mov r12b, 1
jmp 0x1400a931c
inc ebx
mov rax, qword [rdi + 0x398]
sub rax, qword [rdi + 0x390]
shr rax, 2
cmp ebx, eax
jge 0x1400a93b5
mov eax, dword [0x1405015c0]
mov ecx, 0x8c7f2361
sub ecx, eax
add eax, 0x7380dc9e
xor eax, ecx
and eax, r15d
xor eax, ecx
test eax, r15d
jne 0x1400a9360
nop word [rax + rax]
mov dword [rsp + 0x20], 0xb4873da
mov rcx, rdi
mov edx, ebx
xor r8d, r8d
mov r9d, r14d
call fcn.1400aa0a0
test r12b, r12b
jne 0x1400a9300
nop dword [rax]
mov eax, dword [0x1405015c0]
mov ecx, esi
sub ecx, eax
imul ecx, ecx, 0xd30564bb
add ecx, 0x3bafe4b8
mov edx, esi
sub edx, ecx
imul edx, ecx
sub eax, edx
add eax, 0x7380dc9d
mov r8d, eax
xor r8d, ecx
and eax, ecx
lea r9d, [r8 + rax*2]
xor r9d, edx
mov dword [rsp + 0x20], 0xb4873da
mov rcx, rdi
mov edx, ebx
xor r8d, r8d
call fcn.1400aa0a0
mov eax, dword [0x140575634]
cmp eax, 0x61
jge 0x1400a9360
jmp 0x1400a9340
mov rax, qword [0x140575a40]
test rax, rax
je 0x1400a9646
mov rax, qword [rax + 0x20]
mov r15, qword [rax]
mov qword [rbp - 0x18], rax
cmp r15, rax
je 0x1400a9646
mov esi, 1
mov r12d, 0x7380dc9d
lea rax, [fcn.1400a88b0]
add eax, eax
add eax, 0x47c0
mov dword [rbp - 0xc], eax
lea rbx, [0x1400a9db0]
mov dil, 1
jmp 0x1400a941d
mov r15, r13
cmp r13, qword [rbp - 0x18]
je 0x1400a9646
mov dword [r15 + 0x30], 0
mov eax, dword [0x1405015c0]
add eax, r12d
mov dword [r15 + 0x28], eax
mov r14, qword [r15 + 0x58]
test r14, r14
je 0x1400a9490
mov eax, dword [0x140575634]
cmp eax, 0xe
jg 0x1400a9470
nop word cs:[rax + rax]
mov rcx, qword [r15 + 0x50]
mov edx, esi
mov r8, r14
call fcn.14041da70
mov eax, dword [0x140575630]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
je 0x1400a9490
mov rcx, qword [r15 + 0x50]
mov edx, esi
mov r8, r14
call fcn.14041da70
mov eax, dword [0x140575634]
cmp eax, 0x60
jge 0x1400a9470
jmp 0x1400a9450
mov r14, qword [r15 + 0x98]
test r14, r14
je 0x1400a9510
mov eax, dword [0x140575634]
mov ecx, dword [0x1405015c0]
mov edx, 0x7380dcaf
add ecx, edx
cmp eax, ecx
jge 0x1400a94f0
nop word cs:[rax + rax]
mov rcx, qword [r15 + 0x90]
mov edx, esi
mov r8, r14
call fcn.14041da70
mov eax, dword [0x140575630]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1400a9510
nop word cs:[rax + rax]
mov rcx, qword [r15 + 0x90]
mov edx, esi
mov r8, r14
call fcn.14041da70
test dil, dil
je 0x1400a94f0
jmp 0x1400a94c0
mov eax, dword [0x1405015c0]
mov ecx, 0x7380dc9e
add eax, ecx
test dword [rbp - 0xc], eax
xor r14d, r14d
sub r14d, dword [0x1405015c0]
mov rax, qword [r15 + 0x10]
movzx ecx, byte [rax + 0x19]
mov edx, dword [0x140575634]
cmp edx, 0x4e
jg 0x1400a9520
mov edx, r14d
xor edx, 0x8c7f2362
mov qword [rbp - 8], rdx
and r14d, 0xc7f2362
test cl, cl
je 0x1400a9570
mov r13, qword [r15 + 8]
cmp byte [r13 + 0x19], 0
jne 0x1400a95f0
jmp 0x1400a9584
mov r13, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x1400a9570
jmp 0x1400a95f0
test al, al
jne 0x1400a95f0
mov rax, r15
mov r15, r13
cmp rax, qword [r13 + 0x10]
jne 0x1400a95ec
mov eax, dword [0x140575634]
cmp eax, 0x5b
jle 0x1400a95c5
mov ecx, 0x57
call fcn.1403d5a14
mov qword [0x140575620], rax
mov rcx, rbx
call fcn.1403f5a50
mov eax, dword [0x140575630]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x1400a9590
mov r13, qword [r15 + 8]
movzx eax, byte [r13 + 0x19]
mov ecx, dword [0x140575630]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x1405015c0]
add ecx, r12d
cmp edx, ecx
jne 0x1400a959b
jmp 0x1400a9580
mov r13, r15
nop
mov rax, qword [rbp - 8]
lea eax, [rax + r14*2]
sub esi, eax
mov eax, dword [0x140575630]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x1400a961f
nop dword [rax + rax]
mov eax, dword [0x140575634]
cmp eax, 0x40
jle 0x1400a9410
mov ecx, dword [0x1405015c0]
mov eax, 0x7380dcae
add ecx, eax
call fcn.1403d5a14
mov qword [0x140575628], rax
lea rcx, [0x1400a9dd0]
call fcn.1403f5a50
jmp 0x1400a9610
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret