Function at 0x180096870
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x568]
sub rsp, 0x630
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
mov rdi, r8
xor esi, esi
mov r12d, esi
mov dword [rsp + 0x50], esi
lea r14, [rcx + 0x488]
mov rdx, r14
lea rcx, [rbp - 0x20]
call fcn.180042630
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x68], 0xa
mov qword [rbp - 0x60], 0xf
movsd xmm0, qword [str.Properties]
movsd qword [rbp - 0x78], xmm0
movzx eax, word [0x180324eb0]
mov word [rbp - 0x70], ax
mov byte [rbp - 0x6e], sil
lea r8, [rbp - 0x78]
lea rdx, [rbp + 0x410]
mov rcx, r14
call fcn.1800835a0
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 0xf
jbe 0x18009694f
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009694a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980be
call fcn.180286270
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], 0
test rdi, rdi
je 0x18009703a
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov r15, rsi
mov qword [rbp - 0x28], rsi
mov rsi, qword [rbp - 0x30]
nop dword [rax + rax]
mov eax, dword [0x1804c3868]
mov rcx, qword [rax + rdi]
mov qword [rbp + 0x588], rcx
test rcx, rcx
je 0x1800969ec
mov rdx, rcx
mov rbx, rcx
nop dword [rax]
cmp rsi, r15
je 0x1800969b2
mov qword [rsi], rcx
add rsi, 8
mov qword [rbp - 0x30], rsi
jmp 0x1800969d0
lea r8, [rbp + 0x588]
mov rdx, rsi
lea rcx, [rbp - 0x38]
call fcn.180041c20
mov rdx, rbx
mov r15, qword [rbp - 0x28]
mov rsi, qword [rbp - 0x30]
mov eax, dword [0x1804c3870]
mov rcx, qword [rax + rdx]
mov rdx, rcx
mov qword [rbp + 0x588], rcx
mov rbx, rcx
test rcx, rcx
jne 0x1800969a0
mov eax, dword [0x1804c3864]
mov rdi, qword [rax + rdi]
test rdi, rdi
jne 0x180096980
mov r8, rsi
mov rbx, qword [rbp - 0x38]
sub r8, rbx
sar r8, 3
movzx r9d, byte [rbp + 0x570]
mov rdx, rsi
mov rcx, rbx
call fcn.18005e890
mov r13, rbx
cmp rbx, rsi
je 0x180096feb
xorps xmm6, xmm6
movss xmm7, dword [0x1803274d0]
movss xmm8, dword [0x18031f240]
nop dword [rax]
mov rcx, qword [r13]
mov qword [rsp + 0x40], rcx
mov eax, dword [0x1804c386c]
mov rbx, qword [rax + rcx]
mov ecx, dword [0x1804da904]
add rcx, rbx
lea rdx, [rbp + 0x330]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180096a76
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x200], rcx
mov qword [rbp + 0x208], rax
lea rdx, [rbp + 0x200]
lea rcx, [rbp - 0x58]
call fcn.180211eb0
nop
mov rdx, qword [rbp + 0x348]
cmp rdx, 7
jbe 0x180096adf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x330]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096ada
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980c4
call fcn.180286270
mov qword [rbp + 0x340], rdi
mov qword [rbp + 0x348], 7
mov word [rbp + 0x330], di
mov r9, qword [rbp + 0x578]
test r9, r9
jne 0x180096d7d
mov ecx, dword [0x1804da904]
add rcx, rbx
lea rdx, [rbp + 0x350]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180096b2b
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x210], rcx
mov qword [rbp + 0x218], rax
lea rdx, [rbp + 0x210]
lea rcx, [rbp + 0x78]
call fcn.180211eb0
nop
mov rdx, qword [rbp + 0x368]
cmp rdx, 7
jbe 0x180096b94
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x350]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096b8f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980ca
call fcn.180286270
mov qword [rbp + 0x360], rdi
mov qword [rbp + 0x368], 7
mov word [rbp + 0x350], di
mov ecx, dword [0x1804c3874]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0x370]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180096bd2
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x220], rcx
mov qword [rbp + 0x228], rax
lea rdx, [rbp + 0x220]
lea rcx, [rbp + 0x98]
call fcn.180211eb0
nop
mov rdx, qword [rbp + 0x388]
cmp rdx, 7
jbe 0x180096c3e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x370]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096c39
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980d0
call fcn.180286270
mov qword [rbp + 0x380], rdi
mov qword [rbp + 0x388], 7
mov word [rbp + 0x370], di
lea r8, [rbp + 0x98]
cmp qword [rbp + 0xb0], 0xf
cmova r8, qword [rbp + 0x98]
lea rdx, [rbp + 0x78]
cmp qword [rbp + 0x90], 0xf
cmova rdx, qword [rbp + 0x78]
lea rcx, str._s__s
call fcn.180199bb0
nop
mov rdx, qword [rbp + 0xb0]
cmp rdx, 0xf
jbe 0x180096ccd
inc rdx
mov rcx, qword [rbp + 0x98]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096cc8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980d6
call fcn.180286270
mov qword [rbp + 0xa8], rdi
mov qword [rbp + 0xb0], 0xf
mov byte [rbp + 0x98], 0
mov rdx, qword [rbp + 0x90]
cmp rdx, 0xf
jbe 0x180096d24
inc rdx
mov rcx, qword [rbp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096d1f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980dc
call fcn.180286270
mov qword [rbp + 0x88], rdi
mov qword [rbp + 0x90], 0xf
mov byte [rbp + 0x78], 0
mov rdx, qword [rbp - 0x40]
cmp rdx, 0xf
jbe 0x180096fca
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096fc5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980b2
jmp 0x180096fc5
lea rdx, [rbp - 0x58]
cmp qword [rbp - 0x40], 0xf
cmova rdx, qword [rbp - 0x58]
movabs rcx, 0xcbf29ce484222325
mov r8, qword [rbp - 0x48]
add r8, rdx
cmp rdx, r8
je 0x180097f30
movabs rdi, 0x100000001b3
nop
movsx rax, byte [rdx]
xor rcx, rax
imul rcx, rdi
inc rdx
cmp rdx, r8
jne 0x180096db0
xor edi, edi
movabs rax, 0x561bbcf554ac3791
cmp rcx, rax
ja 0x1800975de
je 0x1800973db
movabs rax, 0x5406b27cf968ff3
cmp rcx, rax
je 0x18009715e
movabs rax, 0x7da69ddbc0d4c69
cmp rcx, rax
je 0x180096f8f
movabs rax, 0x4769ea4ae78e66cb
cmp rcx, rax
je 0x180097d20
movabs rax, 0x4b1b2d85250bcc80
cmp rcx, rax
jne 0x180097f30
mov rdi, qword [rsp + 0x40]
mov eax, dword [0x1804da908]
movsxd r8, dword [rax + rdi]
mov eax, dword [0x1804dab28]
movzx ecx, byte [rax + rdi]
mov eax, dword [0x1804dab2c]
movzx edx, byte [rax + rdi]
add rcx, r9
test byte [r8 + rcx], dl
setne byte [rbp + 0x588]
mov ecx, dword [0x1804c3874]
add rcx, rdi
lea rdx, [rbp + 0x118]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180096e7e
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x230], rcx
mov qword [rbp + 0x238], rax
lea rdx, [rbp + 0x230]
lea rcx, [rbp + 0xf8]
call fcn.180211eb0
nop
cmp qword [rax + 0x18], 0xf
jbe 0x180096eae
mov rax, qword [rax]
lea rdx, [rbp + 0x588]
mov rcx, rax
call fcn.180191570
movzx ebx, al
mov r8, qword [rbp + 0x110]
cmp r8, 0xf
jbe 0x180096ee0
mov rdx, qword [rbp + 0xf8]
lea rcx, [rbp + 0xf8]
call fcn.180015240
xor eax, eax
mov qword [rbp + 0x108], rax
mov qword [rbp + 0x110], 0xf
mov byte [rbp + 0xf8], al
mov r8, qword [rbp + 0x130]
cmp r8, 7
jbe 0x180096f1c
mov rdx, qword [rbp + 0x118]
lea rcx, [rbp + 0x118]
call fcn.1800753c0
xor eax, eax
mov qword [rbp + 0x128], rax
mov qword [rbp + 0x130], 7
mov word [rbp + 0x118], ax
test bl, bl
je 0x180096f50
movzx r8d, byte [rbp + 0x588]
mov rdx, qword [rbp + 0x578]
mov rcx, rdi
call fcn.18008efd0
movzx eax, byte [rbp + 0x588]
mov byte [rsp + 0x48], al
mov edx, 1
xor ecx, ecx
call fcn.18016fef0
test al, al
je 0x180096f8d
lea rcx, [rbp - 0x20]
call fcn.180086b00
test al, al
jne 0x1800970d1
lea rcx, str.Cant_save__did_not_start_from_a_valid_base
call fcn.180199bb0
call fcn.180173230
xor edi, edi
mov rdx, qword [rbp - 0x40]
cmp rdx, 0xf
jbe 0x180096fca
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096fc5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980ac
call fcn.180286270
mov byte [rbp - 0x58], 0
mov qword [rbp - 0x40], 0xf
mov qword [rbp - 0x48], rdi
add r13, 8
cmp r13, rsi
jne 0x180096a40
mov rbx, qword [rbp - 0x38]
test rbx, rbx
je 0x180097038
sub r15, rbx
sar r15, 3
lea rdx, [r15*8]
mov rax, rbx
cmp rdx, 0x1000
jb 0x180097024
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980be
mov rcx, rbx
call fcn.180286270
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], rdi
xor esi, esi
cmp byte [rbp + 0x418], 0
jne 0x18009709e
mov rdi, qword [rbp + 0x410]
mov rbx, qword [rdi + 8]
mov rdx, qword [rbx - 8]
cmp rdx, 0xf
jbe 0x180097089
mov rcx, qword [rbx - 0x20]
inc rdx
cmp rdx, 0x1000
jb 0x180097084
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800980b8
mov rcx, r8
call fcn.180286270
mov qword [rbx - 0x10], rsi
mov qword [rbx - 8], 0xf
mov byte [rbx - 0x20], 0
add qword [rdi + 8], 0xffffffffffffffe0
lea rcx, [rbp - 0x20]
call fcn.18002d560
lea r11, [rsp + 0x630]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rax, qword [rbp + 0x570]
mov qword [rsp + 0x68], rax
lea rax, [rbp + 0x578]
mov qword [rsp + 0x70], rax
lea rax, [rbp - 0x20]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x48]
mov qword [rbp - 0x80], rax
mov qword [rbp - 8], 0
lea rdx, [rbp - 8]
lea rcx, str.Save_Property
call fcn.180190c80
test al, al
je 0x18009712d
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.18006f8a0
mov qword [rbp], 0
lea rdx, [rbp]
lea rcx, str.Unsave_Property
call fcn.180190c80
test al, al
je 0x180096f88
mov dl, 1
lea rcx, [rsp + 0x60]
call fcn.18006f8a0
jmp 0x180096f88
mov ecx, dword [0x1804c3874]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0x3b0]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180097183
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x240], rcx
mov qword [rbp + 0x248], rax
lea rdx, [rbp + 0x240]
lea rcx, [rbp + 0x390]
call fcn.180211eb0
nop
cmp qword [rax + 0x18], 0xf
jbe 0x1800971b3
mov rax, qword [rax]
mov rcx, rax
call fcn.18019a230
movzx ebx, al
mov rdx, qword [rbp + 0x3a8]
cmp rdx, 0xf
jbe 0x1800971ff
inc rdx
mov rcx, qword [rbp + 0x390]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800971fa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980e2
call fcn.180286270
mov qword [rbp + 0x3a0], rdi
mov qword [rbp + 0x3a8], 0xf
mov byte [rbp + 0x390], 0
mov rdx, qword [rbp + 0x3c8]
cmp rdx, 7
jbe 0x18009725e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x3b0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097259
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980e8
call fcn.180286270
mov qword [rbp + 0x3c0], rdi
mov qword [rbp + 0x3c8], 7
mov word [rbp + 0x3b0], di
test bl, bl
je 0x180096f8f
mov ecx, dword [0x1804c3874]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0xd8]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x1800972a4
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x250], rcx
mov qword [rbp + 0x258], rax
lea rdx, [rbp + 0x250]
lea rcx, [rbp + 0x3d0]
call fcn.180211eb0
nop
mov qword [rbp + 0x4f0], r14
mov byte [rbp + 0x4f8], 0
mov rcx, qword [r14 + 8]
cmp rcx, qword [r14 + 0x10]
je 0x1800972f1
mov rdx, rax
call fcn.1800125e0
add qword [r14 + 8], 0x20
jmp 0x1800972ff
mov r8, rax
mov rdx, rcx
mov rcx, r14
call fcn.180056fa0
or r12d, 4
mov dword [rsp + 0x50], r12d
mov rdx, qword [rbp + 0x3e8]
cmp rdx, 0xf
jbe 0x180097349
inc rdx
mov rcx, qword [rbp + 0x3d0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097344
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980ee
call fcn.180286270
mov qword [rbp + 0x3e0], rdi
mov qword [rbp + 0x3e8], 0xf
mov byte [rbp + 0x3d0], 0
mov r8, qword [rbp + 0xf0]
cmp r8, 7
jbe 0x180097382
mov rdx, qword [rbp + 0xd8]
lea rcx, [rbp + 0xd8]
call fcn.1800753c0
mov qword [rbp + 0xe8], rdi
mov qword [rbp + 0xf0], 7
mov word [rbp + 0xd8], di
mov r8, qword [rsp + 0x40]
mov rdx, qword [rbp + 0x578]
mov rcx, qword [rbp + 0x570]
call fcn.1800948f0
call fcn.18019ad50
and r12d, 0xfffffffb
mov dword [rsp + 0x50], r12d
mov rdx, qword [r14 + 8]
sub rdx, 0x20
mov rcx, r14
call fcn.180061a20
add qword [r14 + 8], 0xffffffffffffffe0
jmp 0x180096f8f
mov eax, dword [0x1804da908]
mov rdx, qword [rsp + 0x40]
movsxd rbx, dword [rax + rdx]
add rbx, r9
mov ecx, dword [0x1804c3874]
add rcx, rdx
lea rdx, [rbp + 0x2f0]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180097410
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x260], rcx
mov qword [rbp + 0x268], rax
lea rdx, [rbp + 0x260]
lea rcx, [rbp + 0x3f0]
call fcn.180211eb0
nop
cmp qword [rax + 0x18], 0xf
jbe 0x180097440
mov rax, qword [rax]
mov dword [rsp + 0x30], edi
lea rcx, str._.3f
mov qword [rsp + 0x28], rcx
movss dword [rsp + 0x20], xmm6
movaps xmm3, xmm6
movaps xmm2, xmm7
mov rdx, rbx
mov rcx, rax
call fcn.180192c10
nop
mov rdx, qword [rbp + 0x408]
cmp rdx, 0xf
jbe 0x1800974a9
inc rdx
mov rcx, qword [rbp + 0x3f0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800974a4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980f4
call fcn.180286270
mov qword [rbp + 0x400], rdi
mov qword [rbp + 0x408], 0xf
mov byte [rbp + 0x3f0], 0
mov rdx, qword [rbp + 0x308]
cmp rdx, 7
jbe 0x180097508
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x2f0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097503
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800980fa
call fcn.180286270
mov qword [rbp + 0x300], rdi
mov qword [rbp + 0x308], 7
mov word [rbp + 0x2f0], di
movsd xmm0, qword [rbx]
movsd qword [rsp + 0x58], xmm0
mov edx, 1
xor ecx, ecx
call fcn.18016fef0
test al, al
je 0x180096f8f
lea rcx, [rbp - 0x20]
call fcn.180086b00
test al, al
je 0x180097e8c
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rax, qword [rbp + 0x570]
mov qword [rsp + 0x68], rax
lea rax, [rbp + 0x578]
mov qword [rsp + 0x70], rax
lea rax, [rbp - 0x20]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x58]
mov qword [rbp - 0x80], rax
mov qword [rbp + 8], 0
lea rdx, [rbp + 8]
lea rcx, str.Save_Property
call fcn.180190c80
test al, al
je 0x1800975ac
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.18006ea10
mov qword [rbp + 0x10], 0
lea rdx, [rbp + 0x10]
lea rcx, str.Unsave_Property
call fcn.180190c80
test al, al
je 0x1800975d4
mov dl, 1
lea rcx, [rsp + 0x60]
call fcn.18006ea10
call fcn.180173230
jmp 0x180096f8f
movabs rax, 0x565b52d0a908345d
cmp rcx, rax
je 0x180097d20
movabs rax, 0xaf3c66bbcc10f6cf
cmp rcx, rax
je 0x180097a37
movabs rax, 0xbff301ad16684c48
cmp rcx, rax
je 0x18009785a
movabs rax, 0xceac6aa57efac3e9
cmp rcx, rax
jne 0x180097f30
mov eax, dword [0x1804da908]
mov rdx, qword [rsp + 0x40]
movsxd rdi, dword [rax + rdx]
add rdi, r9
mov ecx, dword [0x1804c3874]
add rcx, rdx
lea rdx, [rbp + 0x158]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x18009765f
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x270], rcx
mov qword [rbp + 0x278], rax
lea rdx, [rbp + 0x270]
lea rcx, [rbp + 0x138]
call fcn.180211eb0
nop
cmp qword [rax + 0x18], 0xf
jbe 0x18009768f
mov rax, qword [rax]
mov rcx, rax
call fcn.18019a230
movzx ebx, al
mov r8, qword [rbp + 0x150]
cmp r8, 0xf
jbe 0x1800976ba
mov rdx, qword [rbp + 0x138]
lea rcx, [rbp + 0x138]
call fcn.180015240
xor eax, eax
mov qword [rbp + 0x148], rax
mov qword [rbp + 0x150], 0xf
mov byte [rbp + 0x138], al
mov r8, qword [rbp + 0x170]
cmp r8, 7
jbe 0x1800976f6
mov rdx, qword [rbp + 0x158]
lea rcx, [rbp + 0x158]
call fcn.1800753c0
xor eax, eax
mov qword [rbp + 0x168], rax
mov qword [rbp + 0x170], 7
mov word [rbp + 0x158], ax
test bl, bl
je 0x180096f8d
mov ecx, dword [0x1804c3874]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0x198]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x18009773c
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x280], rcx
mov qword [rbp + 0x288], rax
lea rdx, [rbp + 0x280]
lea rcx, [rbp + 0x178]
call fcn.180211eb0
nop
mov qword [rbp + 0x4e0], r14
mov byte [rbp + 0x4e8], 0
mov rcx, qword [r14 + 8]
cmp rcx, qword [r14 + 0x10]
je 0x180097789
mov rdx, rax
call fcn.1800125e0
add qword [r14 + 8], 0x20
jmp 0x180097797
mov r8, rax
mov rdx, rcx
mov rcx, r14
call fcn.180056fa0
or r12d, 8
mov dword [rsp + 0x50], r12d
mov r8, qword [rbp + 0x190]
cmp r8, 0xf
jbe 0x1800977c0
mov rdx, qword [rbp + 0x178]
lea rcx, [rbp + 0x178]
call fcn.180015240
xor ebx, ebx
mov qword [rbp + 0x188], rbx
mov qword [rbp + 0x190], 0xf
mov byte [rbp + 0x178], bl
mov r8, qword [rbp + 0x1b0]
cmp r8, 7
jbe 0x1800977fa
mov rdx, qword [rbp + 0x198]
lea rcx, [rbp + 0x198]
call fcn.1800753c0
mov qword [rbp + 0x1a8], rbx
mov qword [rbp + 0x1b0], 7
mov word [rbp + 0x198], bx
mov r8d, dword [0x1804dab24]
mov rax, qword [rsp + 0x40]
mov r8, qword [r8 + rax]
mov rdx, rdi
mov rcx, qword [rbp + 0x570]
call fcn.180099450
call fcn.18019ad50
and r12d, 0xfffffff7
mov dword [rsp + 0x50], r12d
mov rdx, qword [r14 + 8]
sub rdx, 0x20
mov rcx, r14
call fcn.180061a20
add qword [r14 + 8], 0xffffffffffffffe0
jmp 0x180096f8d
mov eax, dword [0x1804da908]
mov rdx, qword [rsp + 0x40]
movsxd rbx, dword [rax + rdx]
add rbx, r9
mov ecx, dword [0x1804c3874]
add rcx, rdx
lea rdx, [rbp + 0x1b8]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x18009788f
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x290], rcx
mov qword [rbp + 0x298], rax
lea rdx, [rbp + 0x290]
lea rcx, [rbp + 0x420]
call fcn.180211eb0
nop
cmp qword [rax + 0x18], 0xf
jbe 0x1800978bf
mov rax, qword [rax]
mov dword [rsp + 0x30], edi
lea rcx, str._.3f
mov qword [rsp + 0x28], rcx
movss dword [rsp + 0x20], xmm6
movaps xmm3, xmm6
movaps xmm2, xmm7
mov rdx, rbx
mov rcx, rax
call fcn.180192c10
nop
mov rdx, qword [rbp + 0x438]
cmp rdx, 0xf
jbe 0x180097928
inc rdx
mov rcx, qword [rbp + 0x420]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097923
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180098100
call fcn.180286270
mov qword [rbp + 0x430], rdi
mov qword [rbp + 0x438], 0xf
mov byte [rbp + 0x420], 0
mov r8, qword [rbp + 0x1d0]
cmp r8, 7
jbe 0x180097961
mov rdx, qword [rbp + 0x1b8]
lea rcx, [rbp + 0x1b8]
call fcn.1800753c0
mov qword [rbp + 0x1c8], rdi
mov qword [rbp + 0x1d0], 7
mov word [rbp + 0x1b8], di
movss xmm0, dword [rbx]
movss dword [rsp + 0x58], xmm0
mov edx, 1
xor ecx, ecx
call fcn.18016fef0
test al, al
je 0x180096f8f
lea rcx, [rbp - 0x20]
call fcn.180086b00
test al, al
je 0x180097e8c
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rax, qword [rbp + 0x570]
mov qword [rsp + 0x68], rax
lea rax, [rbp + 0x578]
mov qword [rsp + 0x70], rax
lea rax, [rbp - 0x20]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x58]
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x18], 0
lea rdx, [rbp + 0x18]
lea rcx, str.Save_Property
call fcn.180190c80
test al, al
je 0x180097a05
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.18006db80
mov qword [rbp + 0x20], 0
lea rdx, [rbp + 0x20]
lea rcx, str.Unsave_Property
call fcn.180190c80
test al, al
je 0x180097a2d
mov dl, 1
lea rcx, [rsp + 0x60]
call fcn.18006db80
call fcn.180173230
jmp 0x180096f8f
mov eax, dword [0x1804da908]
mov rdx, qword [rsp + 0x40]
movsxd rdi, dword [rax + rdx]
add rdi, r9
mov ecx, dword [0x1804c3874]
add rcx, rdx
lea rdx, [rbp + 0x460]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180097a6c
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x2a0], rcx
mov qword [rbp + 0x2a8], rax
lea rdx, [rbp + 0x2a0]
lea rcx, [rbp + 0x440]
call fcn.180211eb0
nop
cmp qword [rax + 0x18], 0xf
jbe 0x180097a9c
mov rax, qword [rax]
mov rcx, rax
call fcn.18019a230
movzx ebx, al
mov rdx, qword [rbp + 0x458]
cmp rdx, 0xf
jbe 0x180097ae8
inc rdx
mov rcx, qword [rbp + 0x440]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097ae3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180098106
call fcn.180286270
xor eax, eax
mov qword [rbp + 0x450], rax
mov qword [rbp + 0x458], 0xf
mov byte [rbp + 0x440], al
mov rdx, qword [rbp + 0x478]
cmp rdx, 7
jbe 0x180097b4a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x460]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097b43
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009810c
call fcn.180286270
xor eax, eax
mov qword [rbp + 0x470], rax
mov qword [rbp + 0x478], 7
mov word [rbp + 0x460], ax
test bl, bl
je 0x180096f8d
mov ecx, dword [0x1804c3874]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0x4a0]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180097b90
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x320], rcx
mov qword [rbp + 0x328], rax
lea rdx, [rbp + 0x320]
lea rcx, [rbp + 0x480]
call fcn.180211eb0
nop
mov qword [rbp - 0x78], r14
mov byte [rbp - 0x70], 0
mov rcx, qword [r14 + 8]
cmp rcx, qword [r14 + 0x10]
je 0x180097bd7
mov rdx, rax
call fcn.1800125e0
add qword [r14 + 8], 0x20
jmp 0x180097be5
mov r8, rax
mov rdx, rcx
mov rcx, r14
call fcn.180056fa0
or r12d, 2
mov dword [rsp + 0x50], r12d
mov rdx, qword [rbp + 0x498]
cmp rdx, 0xf
jbe 0x180097c2f
inc rdx
mov rcx, qword [rbp + 0x480]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097c2a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180098112
call fcn.180286270
xor ebx, ebx
mov qword [rbp + 0x490], rbx
mov qword [rbp + 0x498], 0xf
mov byte [rbp + 0x480], bl
mov rdx, qword [rbp + 0x4b8]
cmp rdx, 7
jbe 0x180097c8f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x4a0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097c8a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180098118
call fcn.180286270
mov qword [rbp + 0x4b0], rbx
mov qword [rbp + 0x4b8], 7
mov word [rbp + 0x4a0], bx
mov rdx, qword [rdi]
mov rcx, qword [rbp + 0x570]
call fcn.1800963e0
call fcn.18019ad50
and r12d, 0xfffffffd
mov dword [rsp + 0x50], r12d
mov rbx, qword [r14 + 8]
mov rdx, qword [rbx - 8]
cmp rdx, 0xf
jbe 0x180097d04
mov rcx, qword [rbx - 0x20]
inc rdx
cmp rdx, 0x1000
jb 0x180097cff
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18009811e
mov rcx, r8
call fcn.180286270
xor edi, edi
mov qword [rbx - 0x10], rdi
mov qword [rbx - 8], 0xf
mov byte [rbx - 0x20], dil
add qword [r14 + 8], 0xffffffffffffffe0
jmp 0x180096f8f
mov eax, dword [0x1804da908]
mov rdx, qword [rsp + 0x40]
movsxd rbx, dword [rax + rdx]
add rbx, r9
mov ecx, dword [0x1804c3874]
add rcx, rdx
lea rdx, [rbp + 0x2d0]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180097d55
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x310], rcx
mov qword [rbp + 0x318], rax
lea rdx, [rbp + 0x310]
lea rcx, [rbp + 0x4c0]
call fcn.180211eb0
nop
cmp qword [rax + 0x18], 0xf
jbe 0x180097d85
mov rax, qword [rax]
mov dword [rsp + 0x30], edi
lea rcx, [0x1803234f0]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
xor r9d, r9d
movaps xmm2, xmm8
mov rdx, rbx
mov rcx, rax
call fcn.180192c60
nop
mov rdx, qword [rbp + 0x4d8]
cmp rdx, 0xf
jbe 0x180097ded
inc rdx
mov rcx, qword [rbp + 0x4c0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097de8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180098124
call fcn.180286270
mov qword [rbp + 0x4d0], rdi
mov qword [rbp + 0x4d8], 0xf
mov byte [rbp + 0x4c0], 0
mov rdx, qword [rbp + 0x2e8]
cmp rdx, 7
jbe 0x180097e4c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x2d0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180097e47
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009812a
call fcn.180286270
mov qword [rbp + 0x2e0], rdi
mov qword [rbp + 0x2e8], 7
mov word [rbp + 0x2d0], di
mov eax, dword [rbx]
mov dword [rsp + 0x58], eax
mov edx, 1
xor ecx, ecx
call fcn.18016fef0
test al, al
je 0x180096f8f
lea rcx, [rbp - 0x20]
call fcn.180086b00
test al, al
jne 0x180097ea2
lea rcx, str.Cant_save__did_not_start_from_a_valid_base
call fcn.180199bb0
call fcn.180173230
jmp 0x180096f8f
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rax, qword [rbp + 0x570]
mov qword [rsp + 0x68], rax
lea rax, [rbp + 0x578]
mov qword [rsp + 0x70], rax
lea rax, [rbp - 0x20]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x58]
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x28], 0
lea rdx, [rbp + 0x28]
lea rcx, str.Save_Property
call fcn.180190c80
test al, al
je 0x180097efe
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.18006db80
mov qword [rbp + 0x30], 0
lea rdx, [rbp + 0x30]
lea rcx, str.Unsave_Property
call fcn.180190c80
test al, al
je 0x180097f26
mov dl, 1
lea rcx, [rsp + 0x60]
call fcn.18006db80
call fcn.180173230
jmp 0x180096f8f
mov ecx, dword [0x1804da904]
add rcx, rbx
lea rdx, [rbp + 0x1d8]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180097f53
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x2c0], rcx
mov qword [rbp + 0x2c8], rax
lea rdx, [rbp + 0x2c0]
lea rcx, [rbp + 0x38]
call fcn.180211eb0
nop
mov r8, qword [rbp + 0x1f0]
cmp r8, 7
jbe 0x180097f96
mov rdx, qword [rbp + 0x1d8]
lea rcx, [rbp + 0x1d8]
call fcn.1800753c0
mov qword [rbp + 0x1e8], rdi
mov qword [rbp + 0x1f0], 7
mov word [rbp + 0x1d8], di
mov ecx, dword [0x1804c3874]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0xb8]
call fcn.180227150
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180097fd4
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x2b0], rcx
mov qword [rbp + 0x2b8], rax
lea rdx, [rbp + 0x2b0]
lea rcx, [rbp + 0x58]
call fcn.180211eb0
nop
mov r8, qword [rbp + 0xd0]
cmp r8, 7
jbe 0x180098017
mov rdx, qword [rbp + 0xb8]
lea rcx, [rbp + 0xb8]
call fcn.1800753c0
mov qword [rbp + 0xc8], rdi
mov qword [rbp + 0xd0], 7
mov word [rbp + 0xb8], di
lea r8, [rbp + 0x58]
cmp qword [rbp + 0x70], 0xf
cmova r8, qword [rbp + 0x58]
lea rdx, [rbp + 0x38]
cmp qword [rbp + 0x50], 0xf
cmova rdx, qword [rbp + 0x38]
lea rcx, str._s__s
call fcn.180199bb0
nop
mov r8, qword [rbp + 0x70]
cmp r8, 0xf
jbe 0x180098070
mov rdx, qword [rbp + 0x58]
lea rcx, [rbp + 0x58]
call fcn.180015240
mov qword [rbp + 0x68], rdi
mov qword [rbp + 0x70], 0xf
mov byte [rbp + 0x58], 0
mov r8, qword [rbp + 0x50]
cmp r8, 0xf
jbe 0x180098097
mov rdx, qword [rbp + 0x38]
lea rcx, [rbp + 0x38]
call fcn.180015240
mov qword [rbp + 0x48], rdi
mov qword [rbp + 0x50], 0xf
mov byte [rbp + 0x38], 0
jmp 0x180096f8f
call fcn.18028ddc0
int3
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
nop
call fcn.18028ddc0
int3