Function at 0x1400014a0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x378
lea rax, [0x140147aa7]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xdc5abe8be559213c
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.1400049b0
mov ecx, 0x8aa081a6
xor ecx, dword [rax]
mov dword [rsp + 0x100], ecx
lea rcx, [rsp + 0x1f0]
lea rdx, [rsp + 0x100]
mov r8d, 4
call fcn.1400f8ab0
movabs rax, 0x8000000000000001
cmp qword [rsp + 0x1f0], rax
jne 0x1400031cb
mov r12, qword [rsp + 0x1f8]
mov r13, qword [rsp + 0x200]
mov rbx, qword [rsp + 0x208]
lea rax, [0x14014b505]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xb04841260ea6384b
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140004540
movabs rcx, 0x3e38386e4b4ca22a
xor rcx, qword [rax]
mov edx, 0x1f897a74
xor edx, dword [rax + 8]
movzx eax, word [rax + 0xc]
mov r8d, eax
xor r8b, 0xf7
shr eax, 8
xor al, 0xa0
movzx r8d, r8b
movzx eax, al
shl eax, 8
or eax, r8d
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x38], edx
mov word [rsp + 0x3c], ax
mov qword [rsp + 0x20], 0xe
lea rsi, [rsp + 0x338]
lea r9, [rsp + 0x30]
mov rcx, rsi
mov rdx, r13
mov r8, rbx
call fcn.1400ffd20
mov rcx, rsi
call fcn.1400c5ef0
mov r8, rdx
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.140104ad0
cmp dword [rsp + 0x30], 2
jne 0x140003161
mov rax, qword [rsp + 0x38]
mov ecx, eax
and ecx, 3
cmp ecx, 1
jne 0x140001643
lea rsi, [rax - 1]
mov rdi, qword [rax - 1]
mov rbx, qword [rax + 7]
mov rcx, rdi
call qword [rbx]
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x140001630
mov r8, qword [rbx + 0x10]
mov rcx, rdi
call fcn.14000f700
mov edx, 0x18
mov r8d, 8
mov rcx, rsi
call fcn.14000f700
call fcn.1400f1500
cmp qword [rax], 0
je 0x140001654
add rax, 8
jmp 0x14000165e
mov rcx, rax
xor edx, edx
call fcn.14000d210
movups xmm0, xmmword [rax]
inc qword [rax]
movups xmm1, xmmword [0x14014d1f0]
movaps xmmword [rsp + 0x1b0], xmm1
movups xmm1, xmmword [0x14014d1e0]
movaps xmmword [rsp + 0x1a0], xmm1
movaps xmmword [rsp + 0x1c0], xmm0
lea rax, [0x14014a9fe]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xc98fba0e67f1437f
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140004670
mov esi, dword [rax]
movzx eax, byte [0x140214be1]
mov ecx, 4
mov edx, 1
call fcn.14000f6f0
test rax, rax
je 0x14000326f
xor esi, 0x1ed86cc0
mov dword [rax], esi
mov qword [rsp + 0x1f0], 4
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], 4
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x1f0]
lea r9, [rsp + 0x30]
call fcn.14000f190
mov rdx, qword [rsp + 0x100]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x140001773
test rdx, rdx
je 0x140001773
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call fcn.14000f700
lea rax, [0x140148f3d]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xef700c91187b122a
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140004600
mov esi, dword [rax]
movzx edi, word [rax + 4]
movzx eax, byte [0x140214be1]
mov ecx, 6
mov edx, 1
call fcn.14000f6f0
test rax, rax
je 0x14000327e
mov ecx, edi
xor cl, 0x43
shr edi, 8
xor dil, 0x99
movzx edx, dil
shl edx, 8
movzx ecx, cl
or ecx, edx
xor esi, 0xd3ea73e8
mov dword [rax], esi
mov word [rax + 4], cx
mov qword [rsp + 0x1f0], 6
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], 6
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x1f0]
lea r9, [rsp + 0x30]
call fcn.14000f190
mov rdx, qword [rsp + 0x100]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x14000187c
test rdx, rdx
je 0x14000187c
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call fcn.14000f700
lea rax, [0x14014186c]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xcd65d2a1050a2c84
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.1400043b0
mov rsi, qword [rax]
movzx edi, word [rax + 8]
movzx ebx, byte [rax + 0xa]
movzx eax, byte [0x140214be1]
mov ecx, 0xb
mov edx, 1
call fcn.14000f6f0
test rax, rax
je 0x14000328d
shl ebx, 0x10
or edi, ebx
mov ecx, edi
shr ecx, 0x10
xor cl, 0x18
mov edx, edi
xor dl, 0x6d
shr edi, 8
xor dil, 0x56
movzx edx, dl
movzx r8d, dil
shl r8d, 8
or r8d, edx
movabs rdx, 0xdcea31bc4aee02e
xor rsi, rdx
mov qword [rax], rsi
mov word [rax + 8], r8w
mov byte [rax + 0xa], cl
mov qword [rsp + 0x1f0], 0xb
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], 0xb
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x1f0]
lea r9, [rsp + 0x30]
call fcn.14000f190
mov rdx, qword [rsp + 0x100]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x1400019a5
test rdx, rdx
je 0x1400019a5
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call fcn.14000f700
lea rax, [0x14013e63f]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xffc13f2b15594c27
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140004a40
mov rdi, qword [rax]
mov esi, dword [rax + 8]
movzx eax, byte [0x140214be1]
mov ecx, 0xc
mov edx, 1
call fcn.14000f6f0
test rax, rax
je 0x1400031b7
xor esi, 0x4831fdf2
movabs rcx, 0x5994ada2a06e8941
xor rdi, rcx
mov qword [rax], rdi
mov dword [rax + 8], esi
mov qword [rsp + 0x1f0], 0xc
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], 0xc
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x1f0]
lea r9, [rsp + 0x30]
call fcn.14000f190
mov rdx, qword [rsp + 0x100]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x140001aa3
test rdx, rdx
je 0x140001aa3
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call fcn.14000f700
lea rax, [0x140147a1b]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xce586e8b1bcc3594
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140003e50
mov rdi, qword [rax]
mov esi, dword [rax + 8]
movzx eax, byte [0x140214be1]
mov ecx, 0xc
mov edx, 1
call fcn.14000f6f0
test rax, rax
je 0x1400031b7
xor esi, 0x5584caa6
movabs rcx, 0xea98fce46a6e4147
xor rdi, rcx
mov qword [rax], rdi
mov dword [rax + 8], esi
mov qword [rsp + 0x1f0], 0xc
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], 0xc
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x1f0]
lea r9, [rsp + 0x30]
call fcn.14000f190
mov rdx, qword [rsp + 0x100]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x140001ba1
test rdx, rdx
je 0x140001ba1
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call fcn.14000f700
lea rax, [0x14013eab4]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xa27314ea6928691c
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.1400046e0
mov rsi, qword [rax]
mov rdi, qword [rax + 8]
movzx ebx, byte [rax + 0x10]
movzx eax, byte [0x140214be1]
mov ecx, 0x11
mov edx, 1
call fcn.14000f6f0
test rax, rax
je 0x14000329c
xor bl, 0xbb
movabs rcx, 0xb9c5ba363921e606
xor rsi, rcx
movabs rcx, 0xd75c2ad8deecd397
xor rdi, rcx
mov qword [rax], rsi
mov qword [rax + 8], rdi
mov byte [rax + 0x10], bl
mov qword [rsp + 0x1f0], 0x11
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], 0x11
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x1f0]
lea r9, [rsp + 0x30]
call fcn.14000f190
mov rdx, qword [rsp + 0x100]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x140001cb2
test rdx, rdx
je 0x140001cb2
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call fcn.14000f700
lea rax, [0x140148f8e]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0x74dddae855bb10f2
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140004510
mov rdi, qword [rax]
mov esi, dword [rax + 8]
movzx eax, byte [0x140214be1]
mov ecx, 0xc
mov edx, 1
call fcn.14000f6f0
test rax, rax
je 0x1400031b7
xor esi, 0x8ed80be5
movabs rcx, 0x3479816fc64a9a0a
xor rdi, rcx
mov qword [rax], rdi
mov dword [rax + 8], esi
mov qword [rsp + 0x1f0], 0xc
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], 0xc
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x1f0]
lea r9, [rsp + 0x30]
call fcn.14000f190
mov rdx, qword [rsp + 0x100]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x140001db0
test rdx, rdx
je 0x140001db0
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call fcn.14000f700
lea rax, [0x140146374]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xdb7a5cd28f04dd7b
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140004080
mov rsi, qword [rax]
movzx ebx, byte [rax + 8]
movzx eax, byte [0x140214be1]
mov ecx, 9
mov edx, 1
call fcn.14000f6f0
test rax, rax
je 0x1400032ab
xor bl, 0x5c
movabs rcx, 0x1d9c1ba86b62923a
xor rsi, rcx
mov qword [rax], rsi
mov byte [rax + 8], bl
mov qword [rsp + 0x1f0], 9
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], 9
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x1f0]
lea r9, [rsp + 0x30]
call fcn.14000f190
mov rdx, qword [rsp + 0x100]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x140001eac
test rdx, rdx
je 0x140001eac
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call fcn.14000f700
lea rax, [0x14013dbed]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xb1770464389818fe
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140003d90
mov rsi, qword [rax]
mov rdi, qword [rax + 8]
movzx ebx, word [rax + 0x10]
movzx eax, byte [0x140214be1]
mov ecx, 0x12
mov edx, 1
call fcn.14000f6f0
test rax, rax
je 0x1400032ba
mov ecx, ebx
xor cl, 0x68
shr ebx, 8
xor bl, 0xb
movzx edx, bl
shl edx, 8
movzx ecx, cl
or ecx, edx
movabs rdx, 0x2947a6d4181888d5
xor rsi, rdx
movabs rdx, 0xcb066556e344b5a
xor rdi, rdx
mov qword [rax], rsi
mov qword [rax + 8], rdi
mov word [rax + 0x10], cx
mov qword [rsp + 0x1f0], 0x12
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], 0x12
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x1f0]
lea r9, [rsp + 0x30]
call fcn.14000f190
mov rdx, qword [rsp + 0x100]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x140001fd1
test rdx, rdx
je 0x140001fd1
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call fcn.14000f700
mov rcx, qword [rsp + 0x1a0]
mov r8, qword [rsp + 0x1a8]
mov r14, qword [rsp + 0x1b8]
movdqa xmm0, xmmword [rcx]
test r8, r8
mov qword [rsp + 0x2c8], r12
mov qword [rsp + 0x2c0], r13
je 0x140002037
lea rax, [r8 + 1]
mov edx, 0x30
mul rdx
jo 0x14000202c
lea rdx, [r8 + 0x11]
add rdx, rax
jb 0x14000202c
movabs r9, 0x7ffffffffffffff1
cmp rdx, r9
jb 0x1400031ac
xor r9d, r9d
mov r10, rcx
sub r10, rax
jmp 0x14000203a
xor r9d, r9d
lea rax, [rcx + 0x10]
pmovmskb r11d, xmm0
not r11d
add r8, rcx
inc r8
mov qword [rsp + 0x100], r9
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x110], r10
mov qword [rsp + 0x118], rcx
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], r8
mov word [rsp + 0x130], r11w
mov qword [rsp + 0x138], r14
test r14, r14
je 0x140002f87
lea r15, [rsp + 0x30]
lea r13, [rsp + 0x1f0]
jmp 0x1400020b9
mov r14, qword [rsp + 0x138]
nop dword [rax]
test r14, r14
je 0x140002f87
movzx ecx, word [rsp + 0x130]
mov rax, qword [rsp + 0x118]
test cx, cx
je 0x1400020f0
lea edx, [rcx - 1]
and edx, ecx
mov word [rsp + 0x130], dx
dec r14
mov qword [rsp + 0x138], r14
test rax, rax
jne 0x14000214d
jmp 0x140002f87
mov rdx, qword [rsp + 0x120]
nop dword [rax + rax]
movdqa xmm0, xmmword [rdx]
pmovmskb ecx, xmm0
add rax, 0xfffffffffffffd00
add rdx, 0x10
cmp ecx, 0xffff
je 0x140002100
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x118], rax
mov edx, 0xfffffffe
sub edx, ecx
not ecx
mov r8d, ecx
and r8d, edx
mov word [rsp + 0x130], r8w
dec r14
mov qword [rsp + 0x138], r14
tzcnt ecx, ecx
neg rcx
lea rcx, [rcx + rcx*2]
shl rcx, 4
mov rsi, qword [rax + rcx - 0x30]
movabs rdx, 0x8000000000000000
cmp rsi, rdx
je 0x140002f87
lea rdx, [rax + rcx]
mov rdi, qword [rax + rcx - 0x28]
mov r12, qword [rax + rcx - 0x18]
mov rbp, qword [rax + rcx - 0x10]
mov rbx, qword [rax + rcx - 8]
mov r8, qword [rdx - 0x20]
lea rcx, [rsp + 0x300]
mov rdx, rdi
call fcn.1400f8ab0
test rsi, rsi
je 0x1400021b6
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call fcn.14000f700
mov rdx, qword [rsp + 0x300]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x1400022b8
movabs rax, 0x8000000000000001
cmp rdx, rax
jne 0x1400022a0
mov rsi, qword [rsp + 0x308]
mov rdi, qword [rsp + 0x310]
mov r8, qword [rsp + 0x318]
mov qword [rsp + 0x20], rbx
lea rcx, [rsp + 0x1d0]
mov rdx, rdi
mov r9, rbp
call fcn.1400ffd20
test r12, r12
je 0x14000222a
mov r8d, 1
mov rcx, rbp
mov rdx, r12
call fcn.14000f700
test rsi, rsi
je 0x140002240
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call fcn.14000f700
lea rcx, [rsp + 0x1d0]
call fcn.1400c5ef0
mov r8, rdx
mov rcx, r15
mov rdx, rax
call fcn.140104ad0
cmp dword [rsp + 0x30], 2
jne 0x1400022d7
mov rax, qword [rsp + 0x38]
mov ecx, eax
and ecx, 3
cmp ecx, 1
jne 0x1400023c1
lea r12, [rax - 1]
mov rsi, qword [rax - 1]
mov rdi, qword [rax + 7]
mov rcx, rsi
call qword [rdi]
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x1400023ae
mov r8, qword [rdi + 0x10]
mov rcx, rsi
jmp 0x1400023a9
test rdx, rdx
je 0x1400022b8
mov rcx, qword [rsp + 0x308]
mov r8d, 1
call fcn.14000f700
test r12, r12
je 0x1400020b0
mov r8d, 1
mov rcx, rbp
mov rdx, r12
call fcn.14000f700
jmp 0x1400020b0
mov rsi, qword [rsp + 0x1d8]
mov r12, qword [rsp + 0x1e0]
test r12, r12
je 0x140002313
js 0x1400031c6
movzx eax, byte [0x140214be1]
mov edx, 1
mov rcx, r12
call fcn.14000f6f0
mov rdi, rax
test rax, rax
jne 0x140002318
jmp 0x1400031f1
mov edi, 1
mov rcx, rdi
mov rdx, rsi
mov r8, r12
call fcn.140145bd0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], r12
movzx eax, byte [rsp + 0x1e8]
mov byte [rsp + 0x48], al
mov byte [rsp + 0x1f0], 0
mov rcx, r15
call fcn.1400c5ef0
mov r8, rdx
mov rcx, r13
mov rdx, rax
call fcn.1400f9f60
mov rsi, rax
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x14000237c
mov rcx, qword [rsp + 0x38]
mov r8d, 1
call fcn.14000f700
mov eax, esi
and eax, 3
cmp eax, 1
jne 0x1400023c1
mov r12, rsi
dec r12
mov rdi, qword [rsi - 1]
mov rsi, qword [rsi + 7]
mov rcx, rdi
call qword [rsi]
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x1400023ae
mov r8, qword [rsi + 0x10]
mov rcx, rdi
call fcn.14000f700
mov edx, 0x18
mov r8d, 8
mov rcx, r12
call fcn.14000f700
lea rsi, [rsp + 0x1d0]
mov rcx, rsi
call fcn.1400c5ef0
mov r8, rdx
mov rcx, r15
mov rdx, rax
call fcn.140104ad0
cmp dword [rsp + 0x30], 2
jne 0x140002456
mov rsi, qword [rsp + 0x38]
mov eax, esi
and eax, 3
cmp eax, 1
jne 0x14000242d
mov rdi, qword [rsi - 1]
mov rbx, qword [rsi + 7]
mov rcx, rdi
call qword [rbx]
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x140002417
mov r8, qword [rbx + 0x10]
mov rcx, rdi
call fcn.14000f700
dec rsi
mov edx, 0x18
mov r8d, 8
mov rcx, rsi
call fcn.14000f700
mov rdx, qword [rsp + 0x1d0]
test rdx, rdx
je 0x1400020b0
mov rcx, qword [rsp + 0x1d8]
mov r8d, 1
call fcn.14000f700
jmp 0x1400020b0
mov rcx, rsi
call fcn.1400c5ef0
mov r12, rax
mov rbp, rdx
lea rax, [0x1401492c2]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0xea140c87da20d570
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.1400044e0
mov ecx, dword [rax]
mov edx, 0x77fe0899
xor ecx, edx
movzx edx, byte [rax + 6]
movzx eax, word [rax + 4]
mov r8d, eax
shr r8d, 8
xor al, 0xf
xor r8b, 0xe
movzx eax, al
movzx r8d, r8b
shl r8d, 8
or r8d, eax
xor dl, 0x43
mov dword [rsp + 0x30], ecx
mov word [rsp + 0x34], r8w
mov byte [rsp + 0x36], dl
mov qword [rsp + 0x20], 7
lea rcx, [rsp + 0x2d0]
mov rdx, r12
mov r8, rbp
mov r9, r15
call fcn.1400ffd20
mov rcx, r15
call fcn.1400f92b0
movabs rax, 0x8000000000000000
cmp qword [rsp + 0x30], rax
je 0x140003236
movdqu xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x200], xmm1
movdqa xmmword [rsp + 0x1f0], xmm0
mov rsi, qword [rsp + 0x2d8]
mov r12, qword [rsp + 0x2e0]
test r12, r12
lea r14, [rsp + 0x158]
je 0x140002567
js 0x1400031c6
movzx eax, byte [0x140214be1]
mov edx, 1
mov rcx, r12
call fcn.14000f6f0
mov rdi, rax
test rax, rax
jne 0x14000256c
jmp 0x1400031f1
mov edi, 1
mov rcx, rdi
mov rdx, rsi
mov r8, r12
call fcn.140145bd0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], r12
movzx eax, byte [rsp + 0x2e8]
mov byte [rsp + 0x48], al
mov rcx, r13
call fcn.1400c5ef0
mov rsi, rax
mov rdi, rdx
mov rcx, r15
call fcn.1400c5ef0
mov qword [rsp + 0x20], rdx
mov rcx, r14
mov rdx, rsi
mov r8, rdi
mov r9, rax
call fcn.140104ec0
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x1400025db
mov rcx, qword [rsp + 0x38]
mov r8d, 1
call fcn.14000f700
mov rdx, qword [rsp + 0x1f0]
test rdx, rdx
je 0x1400025fb
mov rcx, qword [rsp + 0x1f8]
mov r8d, 1
call fcn.14000f700
cmp qword [rsp + 0x158], 0
je 0x140002650
mov rsi, qword [rsp + 0x160]
mov eax, esi
and eax, 3
cmp eax, 1
jne 0x140002650
mov rdi, qword [rsi - 1]
mov rbx, qword [rsi + 7]
mov rcx, rdi
call qword [rbx]
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x14000263a
mov r8, qword [rbx + 0x10]
mov rcx, rdi
call fcn.14000f700
dec rsi
mov edx, 0x18
mov r8d, 8
mov rcx, rsi
call fcn.14000f700
lea rax, [0x14014566a]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0xa561ce13cb6d2bbb
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.1400045f0
mov ecx, dword [rax]
mov edx, 0x1aaf78e1
xor ecx, edx
movzx edx, byte [rax + 6]
movzx eax, word [rax + 4]
mov r8d, eax
shr r8d, 8
xor al, 0x38
xor r8b, 0x65
movzx eax, al
movzx r8d, r8b
shl r8d, 8
or r8d, eax
xor dl, 0xd7
mov dword [rsp + 0x158], ecx
mov word [rsp + 0x15c], r8w
mov byte [rsp + 0x15e], dl
mov r8d, 7
mov rcx, r15
mov rdx, r14
call fcn.140106ed0
mov r8d, 0xc8
mov rcx, r13
mov rdx, r15
call fcn.140145bd0
mov dword [rsp + 0x2b0], 0x8000000
lea rax, [0x1401463c7]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0xdb8d9d953fc23572
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.1400041e0
movzx eax, word [rax]
mov ecx, eax
xor cl, 0xca
shr eax, 8
xor al, 0x99
movzx ecx, cl
movzx eax, al
shl eax, 8
or eax, ecx
mov word [rsp + 0x30], ax
mov r8d, 2
mov rcx, r13
mov rdx, r15
call fcn.140106fd0
lea rax, [0x140147796]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0xf0a9b14d3225031b
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.1400046a0
mov rax, qword [rax]
movabs rcx, 0x8d772ef2c251090a
xor rax, rcx
mov qword [rsp + 0x30], rax
mov r8d, 8
mov rcx, r13
mov rdx, r15
call fcn.140106fd0
lea rax, [0x1401436aa]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x9e4bb77076c53cc9
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.1400042f0
mov ecx, dword [rax]
mov edx, 0xa70510de
xor ecx, edx
movzx edx, byte [rax + 6]
movzx eax, word [rax + 4]
mov r8d, eax
shr r8d, 8
xor al, 0x71
xor r8b, 0x98
movzx eax, al
movzx r8d, r8b
shl r8d, 8
or r8d, eax
xor dl, 0xc4
mov dword [rsp + 0x30], ecx
mov word [rsp + 0x34], r8w
mov byte [rsp + 0x36], dl
mov r8d, 7
mov rcx, r13
mov rdx, r15
call fcn.140106fd0
lea rax, [0x140144787]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0xf398a3ce50ea2ca9
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.140004020
movzx ecx, byte [rax + 2]
movzx eax, word [rax]
mov edx, eax
shr edx, 8
xor al, 0x53
xor dl, 0x57
movzx eax, al
movzx edx, dl
shl edx, 8
or edx, eax
xor cl, 7
mov word [rsp + 0x30], dx
mov byte [rsp + 0x32], cl
mov r8d, 3
mov rcx, r13
mov rdx, r15
call fcn.140106fd0
lea rax, [0x14013e600]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0xb5ebfaaf7b988aa1
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.1400049e0
mov ecx, dword [rax]
mov edx, 0xdf7c7d0b
xor ecx, edx
movzx eax, word [rax + 4]
mov edx, eax
xor dl, 0xc5
shr eax, 8
xor al, 0x99
movzx edx, dl
movzx eax, al
shl eax, 8
or eax, edx
mov dword [rsp + 0x30], ecx
mov word [rsp + 0x34], ax
mov r8d, 6
mov rcx, r13
mov rdx, r15
call fcn.140106fd0
lea rax, [0x14014cf59]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x5a76ffbb92df95a5
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.140004100
movzx ecx, byte [rax + 2]
movzx eax, word [rax]
mov edx, eax
shr edx, 8
xor al, 0x2d
xor dl, 0xfc
movzx eax, al
movzx edx, dl
shl edx, 8
or edx, eax
xor cl, 0xa8
mov word [rsp + 0x30], dx
mov byte [rsp + 0x32], cl
mov r8d, 3
mov rcx, r13
mov rdx, r15
call fcn.140106fd0
lea rax, [0x140144524]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x6ace5a26b8e27fea
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.140004800
movzx eax, byte [rax]
xor al, 0xf8
mov byte [rsp + 0x30], al
mov r8d, 1
mov rcx, r13
mov rdx, r15
call fcn.140106fd0
lea rax, [0x14013f817]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x4eabea0c7e8e8d08
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.1400040d0
movzx ecx, byte [rax + 2]
movzx eax, word [rax]
mov edx, eax
shr edx, 8
not al
xor dl, 0x20
movzx eax, al
movzx edx, dl
shl edx, 8
or edx, eax
xor cl, 0xc9
mov word [rsp + 0x30], dx
mov byte [rsp + 0x32], cl
mov r8d, 3
mov rcx, r13
mov rdx, r15
call fcn.140106fd0
lea rax, [0x140144d9e]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x20c2b8965fd423a5
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.140004830
mov rcx, qword [rax]
movabs rdx, 0x720723a9c40a991d
xor rcx, rdx
mov rdx, qword [rax + 8]
movabs r8, 0x5e4127a4583b5a90
xor rdx, r8
movzx eax, word [rax + 0x10]
mov r8d, eax
xor r8b, 0x3e
shr eax, 8
xor al, 0xc5
movzx r8d, r8b
movzx eax, al
shl eax, 8
or eax, r8d
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x188], rdx
mov word [rsp + 0x190], ax
lea rax, [rsp + 0x180]
mov qword [rsp + 0x2f0], rax
mov qword [rsp + 0x2f8], 0x12
call fcn.1400e9200
mov r12, rax
lea rbp, [rax + 0x10]
mov rax, qword [rax + 0x110]
cmp rax, 0x3f
jae 0x140002b0c
lea rcx, [rax + 2]
mov qword [r12 + 0x110], rcx
mov rsi, qword [r12 + rax*4 + 0x10]
cmp rax, 0x3d
jb 0x140002bbe
cmp rcx, 0x3f
jne 0x140002bd3
mov edi, dword [r12 + 0x10c]
mov rcx, r12
add rcx, 0x120
mov rax, qword [r12 + 0x158]
test rax, rax
jle 0x140002c12
cmp qword [r12 + 0x160], 0
js 0x140002c12
add rax, 0xffffffffffffff00
mov qword [r12 + 0x158], rax
mov edx, 6
mov r8, rbp
call fcn.1400e94c0
jmp 0x140002c1a
jne 0x140002b55
mov edi, dword [r12 + 0x10c]
mov rcx, r12
add rcx, 0x120
mov rax, qword [r12 + 0x158]
test rax, rax
jle 0x140002b94
cmp qword [r12 + 0x160], 0
js 0x140002b94
add rax, 0xffffffffffffff00
mov qword [r12 + 0x158], rax
mov edx, 6
mov r8, rbp
call fcn.1400e94c0
jmp 0x140002b9c
mov rcx, r12
add rcx, 0x120
mov rax, qword [r12 + 0x158]
test rax, rax
jle 0x140002bad
cmp qword [r12 + 0x160], 0
js 0x140002bad
add rax, 0xffffffffffffff00
mov qword [r12 + 0x158], rax
mov edx, 6
mov r8, rbp
call fcn.1400e94c0
jmp 0x140002bb5
mov rdx, rbp
call fcn.14000bc30
mov esi, dword [rbp]
shl rsi, 0x20
or rsi, rdi
mov ecx, 1
jmp 0x140002bbe
mov rdx, rbp
call fcn.14000bc30
mov rsi, qword [rbp]
mov ecx, 2
xor eax, eax
lea rdx, [rcx + 2]
mov qword [r12 + 0x110], rdx
mov rcx, qword [r12 + rcx*4 + 0x10]
jmp 0x140002c4f
mov rcx, r12
add rcx, 0x120
mov rax, qword [r12 + 0x158]
test rax, rax
jle 0x140002c34
cmp qword [r12 + 0x160], 0
js 0x140002c34
add rax, 0xffffffffffffff00
mov qword [r12 + 0x158], rax
mov edx, 6
mov r8, rbp
call fcn.1400e94c0
jmp 0x140002c3c
mov rdx, rbp
call fcn.14000bc30
mov qword [r12 + 0x110], 1
mov ecx, dword [r12 + 0x10]
shl rcx, 0x20
or rcx, rdi
jmp 0x140002c4d
mov rdx, rbp
call fcn.14000bc30
mov qword [r12 + 0x110], 2
mov rcx, qword [r12 + 0x10]
xor eax, eax
add rax, rcx
mov qword [rsp + 0x140], rsi
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x2f0]
mov qword [rsp + 0x158], rax
lea rax, [0x14000dca0]
mov qword [rsp + 0x160], rax
lea rax, [rsp + 0x140]
mov qword [rsp + 0x168], rax
lea rax, [0x140122d70]
mov qword [rsp + 0x170], rax
lea rax, [0x14014d238]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], 2
lea rcx, [rsp + 0x320]
mov rdx, r15
call fcn.140117840
dec qword [r12]
jne 0x140002cfc
dec qword [r12 + 8]
jne 0x140002cfc
mov edx, 0x170
mov r8d, 0x10
mov rcx, r12
call fcn.14000f700
mov rsi, qword [rsp + 0x328]
mov r8, qword [rsp + 0x330]
mov rcx, r13
mov rdx, rsi
call fcn.140106fd0
mov rdx, qword [rsp + 0x320]
test rdx, rdx
je 0x140002d32
mov r8d, 1
mov rcx, rsi
call fcn.14000f700
lea rax, [0x140145ad5]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0xd92ab305fc5f7070
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.140004350
movzx ecx, byte [rax + 2]
movzx eax, word [rax]
mov edx, eax
shr edx, 8
xor al, 0xd1
xor dl, 0x50
movzx eax, al
movzx edx, dl
shl edx, 8
or edx, eax
xor cl, 6
mov word [rsp + 0x30], dx
mov byte [rsp + 0x32], cl
mov r8d, 3
mov rcx, r13
mov rdx, r15
call fcn.140106fd0
mov r12, qword [rsp + 0x2d8]
mov rbp, qword [rsp + 0x2e0]
test rbp, rbp
je 0x140002dd1
js 0x1400031c6
movzx eax, byte [0x140214be1]
mov edx, 1
mov rcx, rbp
call fcn.14000f6f0
mov rsi, rax
test rax, rax
jne 0x140002dd6
jmp 0x14000330c
mov esi, 1
mov rcx, rsi
mov rdx, r12
mov r8, rbp
call fcn.140145bd0
movzx eax, byte [rsp + 0x2e8]
mov qword [rsp + 0x180], rbp
mov qword [rsp + 0x188], rsi
mov qword [rsp + 0x190], rbp
mov byte [rsp + 0x198], al
lea rcx, [rsp + 0x180]
call fcn.1400c5ef0
mov r8, rdx
mov rcx, r15
mov rdx, rax
call fcn.1400f9d40
cmp qword [rsp + 0x30], 0
jne 0x1400031fe
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x160], rcx
mov byte [rsp + 0x168], 0x80
mov byte [rsp + 0x174], 0x80
mov qword [rsp + 0x140], 0
mov qword [rsp + 0x148], 1
mov qword [rsp + 0x150], 0
mov qword [rsp + 0x60], 0x20
mov byte [rsp + 0x68], 3
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x40], 0
lea rax, [rsp + 0x140]
mov qword [rsp + 0x50], rax
lea rax, [0x14014d000]
mov qword [rsp + 0x58], rax
mov rcx, r14
mov rdx, r15
call fcn.14012a910
test al, al
jne 0x14000320a
mov rsi, qword [rsp + 0x140]
mov rdi, qword [rsp + 0x148]
mov r8, qword [rsp + 0x150]
mov rcx, r13
mov rdx, rdi
call fcn.140106fd0
test rsi, rsi
je 0x140002f08
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call fcn.14000f700
mov rdx, qword [rsp + 0x180]
test rdx, rdx
je 0x140002f28
mov rcx, qword [rsp + 0x188]
mov r8d, 1
call fcn.14000f700
mov rcx, r15
mov rdx, r13
call fcn.1400ffeb0
mov rcx, r15
call fcn.1400011e0
mov rcx, r13
call fcn.1400010c0
mov rdx, qword [rsp + 0x2d0]
test rdx, rdx
je 0x140002f5e
mov r8d, 1
mov rcx, r12
call fcn.14000f700
mov rdx, qword [rsp + 0x1d0]
test rdx, rdx
je 0x1400020a5
mov rcx, qword [rsp + 0x1d8]
mov r8d, 1
call fcn.14000f700
jmp 0x1400020a5
lea rcx, [rsp + 0x100]
call fcn.14000a7e0
lea rax, [0x14014c4b9]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0x249739d66c6f3c18
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140003f50
mov ecx, 0x76179b04
xor ecx, dword [rax]
mov dword [rsp + 0x100], ecx
lea rcx, [rsp + 0x1f0]
lea rdx, [rsp + 0x100]
mov r8d, 4
call fcn.1400f8ab0
movabs rax, 0x8000000000000001
cmp qword [rsp + 0x1f0], rax
jne 0x1400032c9
mov rbx, qword [rsp + 0x1f8]
mov r14, qword [rsp + 0x200]
mov r15, qword [rsp + 0x208]
lea rax, [0x14013eb99]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xf08d77f63398dd12
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140003f20
movabs rcx, 0x149e7aeabf0c331d
xor rcx, qword [rax]
mov edx, 0xa3a9b66b
xor edx, dword [rax + 8]
movzx eax, word [rax + 0xc]
mov r8d, eax
xor r8b, 0xf9
shr eax, 8
xor al, 7
movzx r8d, r8b
movzx eax, al
shl eax, 8
or eax, r8d
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x38], edx
mov word [rsp + 0x3c], ax
mov qword [rsp + 0x20], 0xe
lea rsi, [rsp + 0x358]
lea r9, [rsp + 0x30]
mov rcx, rsi
mov rdx, r14
mov r8, r15
call fcn.1400ffd20
mov rcx, rsi
call fcn.1400c5ef0
lea r8, [0x14014d0d0]
mov rcx, rax
xor r9d, r9d
call fcn.1400f9d60
mov rsi, rax
mov rdx, qword [rsp + 0x358]
test rdx, rdx
mov r12, qword [rsp + 0x2c8]
mov r13, qword [rsp + 0x2c0]
je 0x140003106
mov rcx, qword [rsp + 0x360]
mov r8d, 1
call fcn.14000f700
mov eax, esi
and eax, 3
cmp eax, 1
jne 0x14000314b
mov rdi, rsi
dec rdi
mov r15, qword [rsi - 1]
mov rsi, qword [rsi + 7]
mov rcx, r15
call qword [rsi]
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x140003138
mov r8, qword [rsi + 0x10]
mov rcx, r15
call fcn.14000f700
mov edx, 0x18
mov r8d, 8
mov rcx, rdi
call fcn.14000f700
test rbx, rbx
je 0x140003161
mov r8d, 1
mov rcx, r14
mov rdx, rbx
call fcn.14000f700
mov rdx, qword [rsp + 0x338]
test rdx, rdx
je 0x140003181
mov rcx, qword [rsp + 0x340]
mov r8d, 1
call fcn.14000f700
test r12, r12
je 0x140003197
mov r8d, 1
mov rcx, r13
mov rdx, r12
call fcn.14000f700
nop
add rsp, 0x378
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r9d, 0x10
jmp 0x14000202f
mov ecx, 1
mov edx, 0xc
call fcn.14014ad70
call fcn.140117470
movups xmm0, xmmword [rsp + 0x1f0]
movups xmm1, xmmword [rsp + 0x200]
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
lea rax, str.srcpersistance.rs
jmp 0x1400032ea
mov ecx, 1
mov rdx, r12
call fcn.14014ad70
lea rcx, str.srcpersistance.rs
call fcn.14014ae70
lea rax, [0x14014d0b8]
mov qword [rsp + 0x20], rax
lea rcx, [0x14014d030]
lea r9, [0x14014d0d0]
lea r8, [rsp + 0x2f0]
mov edx, 0x37
call fcn.14014b330
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x1f0], rax
lea rax, str.srcpersistance.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14014d0f0]
lea r9, [0x14014d120]
lea r8, [rsp + 0x1f0]
mov edx, 0x2b
call fcn.14014b330
mov ecx, 1
mov edx, 4
call fcn.14014ad70
mov ecx, 1
mov edx, 6
call fcn.14014ad70
mov ecx, 1
mov edx, 0xb
call fcn.14014ad70
mov ecx, 1
mov edx, 0x11
call fcn.14014ad70
mov ecx, 1
mov edx, 9
call fcn.14014ad70
mov ecx, 1
mov edx, 0x12
call fcn.14014ad70
movups xmm0, xmmword [rsp + 0x1f0]
movups xmm1, xmmword [rsp + 0x200]
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
lea rax, str.srcpersistance.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14014d0f0]
lea r9, [0x14014d140]
lea r8, [rsp + 0x30]
mov edx, 0x2b
call fcn.14014b330
mov ecx, 1
mov rdx, rbp
call fcn.14014ad70
int3