Function at 0x180095980
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.1800422c0
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 [0x180338f70]
mov word [rbp - 0x70], ax
mov byte [rbp - 0x6e], sil
lea r8, [rbp - 0x78]
lea rdx, [rbp + 0x410]
mov rcx, r14
call fcn.1800826b0
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 0xf
jbe 0x180095a5f
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180095a5a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971ce
call fcn.18027ee90
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], 0
test rdi, rdi
je 0x18009614a
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 [0x1804dc860]
mov rcx, qword [rax + rdi]
mov qword [rbp + 0x588], rcx
test rcx, rcx
je 0x180095afc
mov rdx, rcx
mov rbx, rcx
nop dword [rax]
cmp rsi, r15
je 0x180095ac2
mov qword [rsi], rcx
add rsi, 8
mov qword [rbp - 0x30], rsi
jmp 0x180095ae0
lea r8, [rbp + 0x588]
mov rdx, rsi
lea rcx, [rbp - 0x38]
call fcn.1800418b0
mov rdx, rbx
mov r15, qword [rbp - 0x28]
mov rsi, qword [rbp - 0x30]
mov eax, dword [0x1804dc868]
mov rcx, qword [rax + rdx]
mov rdx, rcx
mov qword [rbp + 0x588], rcx
mov rbx, rcx
test rcx, rcx
jne 0x180095ab0
mov eax, dword [0x1804dc85c]
mov rdi, qword [rax + rdi]
test rdi, rdi
jne 0x180095a90
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.18005d9a0
mov r13, rbx
cmp rbx, rsi
je 0x1800960fb
xorps xmm6, xmm6
movss xmm7, dword [0x18033b590]
movss xmm8, dword [0x180333320]
nop dword [rax]
mov rcx, qword [r13]
mov qword [rsp + 0x40], rcx
mov eax, dword [0x1804dc864]
mov rbx, qword [rax + rcx]
mov ecx, dword [0x1804f48d4]
add rcx, rbx
lea rdx, [rbp + 0x330]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180095b86
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.18020d920
nop
mov rdx, qword [rbp + 0x348]
cmp rdx, 7
jbe 0x180095bef
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x330]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180095bea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971d4
call fcn.18027ee90
mov qword [rbp + 0x340], rdi
mov qword [rbp + 0x348], 7
mov word [rbp + 0x330], di
mov r9, qword [rbp + 0x578]
test r9, r9
jne 0x180095e8d
mov ecx, dword [0x1804f48d4]
add rcx, rbx
lea rdx, [rbp + 0x350]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180095c3b
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.18020d920
nop
mov rdx, qword [rbp + 0x368]
cmp rdx, 7
jbe 0x180095ca4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x350]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180095c9f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971da
call fcn.18027ee90
mov qword [rbp + 0x360], rdi
mov qword [rbp + 0x368], 7
mov word [rbp + 0x350], di
mov ecx, dword [0x1804dc86c]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0x370]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180095ce2
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.18020d920
nop
mov rdx, qword [rbp + 0x388]
cmp rdx, 7
jbe 0x180095d4e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x370]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180095d49
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971e0
call fcn.18027ee90
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.180195820
nop
mov rdx, qword [rbp + 0xb0]
cmp rdx, 0xf
jbe 0x180095ddd
inc rdx
mov rcx, qword [rbp + 0x98]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180095dd8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971e6
call fcn.18027ee90
mov qword [rbp + 0xa8], rdi
mov qword [rbp + 0xb0], 0xf
mov byte [rbp + 0x98], 0
mov rdx, qword [rbp + 0x90]
cmp rdx, 0xf
jbe 0x180095e34
inc rdx
mov rcx, qword [rbp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180095e2f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971ec
call fcn.18027ee90
mov qword [rbp + 0x88], rdi
mov qword [rbp + 0x90], 0xf
mov byte [rbp + 0x78], 0
mov rdx, qword [rbp - 0x40]
cmp rdx, 0xf
jbe 0x1800960da
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800960d5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971c2
jmp 0x1800960d5
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 0x180097040
movabs rdi, 0x100000001b3
nop
movsx rax, byte [rdx]
xor rcx, rax
imul rcx, rdi
inc rdx
cmp rdx, r8
jne 0x180095ec0
xor edi, edi
movabs rax, 0x561bbcf554ac3791
cmp rcx, rax
ja 0x1800966ee
je 0x1800964eb
movabs rax, 0x5406b27cf968ff3
cmp rcx, rax
je 0x18009626e
movabs rax, 0x7da69ddbc0d4c69
cmp rcx, rax
je 0x18009609f
movabs rax, 0x4769ea4ae78e66cb
cmp rcx, rax
je 0x180096e30
movabs rax, 0x4b1b2d85250bcc80
cmp rcx, rax
jne 0x180097040
mov rdi, qword [rsp + 0x40]
mov eax, dword [0x1804f48d8]
movsxd r8, dword [rax + rdi]
mov eax, dword [0x1804f4af8]
movzx ecx, byte [rax + rdi]
mov eax, dword [0x1804f4afc]
movzx edx, byte [rax + rdi]
add rcx, r9
test byte [r8 + rcx], dl
setne byte [rbp + 0x588]
mov ecx, dword [0x1804dc86c]
add rcx, rdi
lea rdx, [rbp + 0x118]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180095f8e
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.18020d920
nop
cmp qword [rax + 0x18], 0xf
jbe 0x180095fbe
mov rax, qword [rax]
lea rdx, [rbp + 0x588]
mov rcx, rax
call fcn.18018d1e0
movzx ebx, al
mov r8, qword [rbp + 0x110]
cmp r8, 0xf
jbe 0x180095ff0
mov rdx, qword [rbp + 0xf8]
lea rcx, [rbp + 0xf8]
call fcn.180014f20
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 0x18009602c
mov rdx, qword [rbp + 0x118]
lea rcx, [rbp + 0x118]
call fcn.1800744d0
xor eax, eax
mov qword [rbp + 0x128], rax
mov qword [rbp + 0x130], 7
mov word [rbp + 0x118], ax
test bl, bl
je 0x180096060
movzx r8d, byte [rbp + 0x588]
mov rdx, qword [rbp + 0x578]
mov rcx, rdi
call fcn.18008e0e0
movzx eax, byte [rbp + 0x588]
mov byte [rsp + 0x48], al
mov edx, 1
xor ecx, ecx
call fcn.18016bb60
test al, al
je 0x18009609d
lea rcx, [rbp - 0x20]
call fcn.180085c10
test al, al
jne 0x1800961e1
lea rcx, str.Cant_save__did_not_start_from_a_valid_base
call fcn.180195820
call fcn.18016eea0
xor edi, edi
mov rdx, qword [rbp - 0x40]
cmp rdx, 0xf
jbe 0x1800960da
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800960d5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971bc
call fcn.18027ee90
mov byte [rbp - 0x58], 0
mov qword [rbp - 0x40], 0xf
mov qword [rbp - 0x48], rdi
add r13, 8
cmp r13, rsi
jne 0x180095b50
mov rbx, qword [rbp - 0x38]
test rbx, rbx
je 0x180096148
sub r15, rbx
sar r15, 3
lea rdx, [r15*8]
mov rax, rbx
cmp rdx, 0x1000
jb 0x180096134
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971ce
mov rcx, rbx
call fcn.18027ee90
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], rdi
xor esi, esi
cmp byte [rbp + 0x418], 0
jne 0x1800961ae
mov rdi, qword [rbp + 0x410]
mov rbx, qword [rdi + 8]
mov rdx, qword [rbx - 8]
cmp rdx, 0xf
jbe 0x180096199
mov rcx, qword [rbx - 0x20]
inc rdx
cmp rdx, 0x1000
jb 0x180096194
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800971c8
mov rcx, r8
call fcn.18027ee90
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.18002d240
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.18018c8f0
test al, al
je 0x18009623d
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.18006e9b0
mov qword [rbp], 0
lea rdx, [rbp]
lea rcx, str.Unsave_Property
call fcn.18018c8f0
test al, al
je 0x180096098
mov dl, 1
lea rcx, [rsp + 0x60]
call fcn.18006e9b0
jmp 0x180096098
mov ecx, dword [0x1804dc86c]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0x3b0]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180096293
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.18020d920
nop
cmp qword [rax + 0x18], 0xf
jbe 0x1800962c3
mov rax, qword [rax]
mov rcx, rax
call fcn.180195ea0
movzx ebx, al
mov rdx, qword [rbp + 0x3a8]
cmp rdx, 0xf
jbe 0x18009630f
inc rdx
mov rcx, qword [rbp + 0x390]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009630a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971f2
call fcn.18027ee90
mov qword [rbp + 0x3a0], rdi
mov qword [rbp + 0x3a8], 0xf
mov byte [rbp + 0x390], 0
mov rdx, qword [rbp + 0x3c8]
cmp rdx, 7
jbe 0x18009636e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x3b0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096369
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971f8
call fcn.18027ee90
mov qword [rbp + 0x3c0], rdi
mov qword [rbp + 0x3c8], 7
mov word [rbp + 0x3b0], di
test bl, bl
je 0x18009609f
mov ecx, dword [0x1804dc86c]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0xd8]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x1800963b4
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.18020d920
nop
mov qword [rbp + 0x4f0], r14
mov byte [rbp + 0x4f8], 0
mov rcx, qword [r14 + 8]
cmp rcx, qword [r14 + 0x10]
je 0x180096401
mov rdx, rax
call fcn.1800122c0
add qword [r14 + 8], 0x20
jmp 0x18009640f
mov r8, rax
mov rdx, rcx
mov rcx, r14
call fcn.1800560b0
or r12d, 4
mov dword [rsp + 0x50], r12d
mov rdx, qword [rbp + 0x3e8]
cmp rdx, 0xf
jbe 0x180096459
inc rdx
mov rcx, qword [rbp + 0x3d0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096454
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800971fe
call fcn.18027ee90
mov qword [rbp + 0x3e0], rdi
mov qword [rbp + 0x3e8], 0xf
mov byte [rbp + 0x3d0], 0
mov r8, qword [rbp + 0xf0]
cmp r8, 7
jbe 0x180096492
mov rdx, qword [rbp + 0xd8]
lea rcx, [rbp + 0xd8]
call fcn.1800744d0
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.180093a00
call fcn.1801969c0
and r12d, 0xfffffffb
mov dword [rsp + 0x50], r12d
mov rdx, qword [r14 + 8]
sub rdx, 0x20
mov rcx, r14
call fcn.180060b30
add qword [r14 + 8], 0xffffffffffffffe0
jmp 0x18009609f
mov eax, dword [0x1804f48d8]
mov rdx, qword [rsp + 0x40]
movsxd rbx, dword [rax + rdx]
add rbx, r9
mov ecx, dword [0x1804dc86c]
add rcx, rdx
lea rdx, [rbp + 0x2f0]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180096520
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.18020d920
nop
cmp qword [rax + 0x18], 0xf
jbe 0x180096550
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.18018e880
nop
mov rdx, qword [rbp + 0x408]
cmp rdx, 0xf
jbe 0x1800965b9
inc rdx
mov rcx, qword [rbp + 0x3f0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800965b4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180097204
call fcn.18027ee90
mov qword [rbp + 0x400], rdi
mov qword [rbp + 0x408], 0xf
mov byte [rbp + 0x3f0], 0
mov rdx, qword [rbp + 0x308]
cmp rdx, 7
jbe 0x180096618
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x2f0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096613
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009720a
call fcn.18027ee90
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.18016bb60
test al, al
je 0x18009609f
lea rcx, [rbp - 0x20]
call fcn.180085c10
test al, al
je 0x180096f9c
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.18018c8f0
test al, al
je 0x1800966bc
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.18006db20
mov qword [rbp + 0x10], 0
lea rdx, [rbp + 0x10]
lea rcx, str.Unsave_Property
call fcn.18018c8f0
test al, al
je 0x1800966e4
mov dl, 1
lea rcx, [rsp + 0x60]
call fcn.18006db20
call fcn.18016eea0
jmp 0x18009609f
movabs rax, 0x565b52d0a908345d
cmp rcx, rax
je 0x180096e30
movabs rax, 0xaf3c66bbcc10f6cf
cmp rcx, rax
je 0x180096b47
movabs rax, 0xbff301ad16684c48
cmp rcx, rax
je 0x18009696a
movabs rax, 0xceac6aa57efac3e9
cmp rcx, rax
jne 0x180097040
mov eax, dword [0x1804f48d8]
mov rdx, qword [rsp + 0x40]
movsxd rdi, dword [rax + rdx]
add rdi, r9
mov ecx, dword [0x1804dc86c]
add rcx, rdx
lea rdx, [rbp + 0x158]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x18009676f
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.18020d920
nop
cmp qword [rax + 0x18], 0xf
jbe 0x18009679f
mov rax, qword [rax]
mov rcx, rax
call fcn.180195ea0
movzx ebx, al
mov r8, qword [rbp + 0x150]
cmp r8, 0xf
jbe 0x1800967ca
mov rdx, qword [rbp + 0x138]
lea rcx, [rbp + 0x138]
call fcn.180014f20
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 0x180096806
mov rdx, qword [rbp + 0x158]
lea rcx, [rbp + 0x158]
call fcn.1800744d0
xor eax, eax
mov qword [rbp + 0x168], rax
mov qword [rbp + 0x170], 7
mov word [rbp + 0x158], ax
test bl, bl
je 0x18009609d
mov ecx, dword [0x1804dc86c]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0x198]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x18009684c
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.18020d920
nop
mov qword [rbp + 0x4e0], r14
mov byte [rbp + 0x4e8], 0
mov rcx, qword [r14 + 8]
cmp rcx, qword [r14 + 0x10]
je 0x180096899
mov rdx, rax
call fcn.1800122c0
add qword [r14 + 8], 0x20
jmp 0x1800968a7
mov r8, rax
mov rdx, rcx
mov rcx, r14
call fcn.1800560b0
or r12d, 8
mov dword [rsp + 0x50], r12d
mov r8, qword [rbp + 0x190]
cmp r8, 0xf
jbe 0x1800968d0
mov rdx, qword [rbp + 0x178]
lea rcx, [rbp + 0x178]
call fcn.180014f20
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 0x18009690a
mov rdx, qword [rbp + 0x198]
lea rcx, [rbp + 0x198]
call fcn.1800744d0
mov qword [rbp + 0x1a8], rbx
mov qword [rbp + 0x1b0], 7
mov word [rbp + 0x198], bx
mov r8d, dword [0x1804f4af4]
mov rax, qword [rsp + 0x40]
mov r8, qword [r8 + rax]
mov rdx, rdi
mov rcx, qword [rbp + 0x570]
call fcn.180098560
call fcn.1801969c0
and r12d, 0xfffffff7
mov dword [rsp + 0x50], r12d
mov rdx, qword [r14 + 8]
sub rdx, 0x20
mov rcx, r14
call fcn.180060b30
add qword [r14 + 8], 0xffffffffffffffe0
jmp 0x18009609d
mov eax, dword [0x1804f48d8]
mov rdx, qword [rsp + 0x40]
movsxd rbx, dword [rax + rdx]
add rbx, r9
mov ecx, dword [0x1804dc86c]
add rcx, rdx
lea rdx, [rbp + 0x1b8]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x18009699f
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.18020d920
nop
cmp qword [rax + 0x18], 0xf
jbe 0x1800969cf
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.18018e880
nop
mov rdx, qword [rbp + 0x438]
cmp rdx, 0xf
jbe 0x180096a38
inc rdx
mov rcx, qword [rbp + 0x420]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096a33
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180097210
call fcn.18027ee90
mov qword [rbp + 0x430], rdi
mov qword [rbp + 0x438], 0xf
mov byte [rbp + 0x420], 0
mov r8, qword [rbp + 0x1d0]
cmp r8, 7
jbe 0x180096a71
mov rdx, qword [rbp + 0x1b8]
lea rcx, [rbp + 0x1b8]
call fcn.1800744d0
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.18016bb60
test al, al
je 0x18009609f
lea rcx, [rbp - 0x20]
call fcn.180085c10
test al, al
je 0x180096f9c
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.18018c8f0
test al, al
je 0x180096b15
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.18006cc90
mov qword [rbp + 0x20], 0
lea rdx, [rbp + 0x20]
lea rcx, str.Unsave_Property
call fcn.18018c8f0
test al, al
je 0x180096b3d
mov dl, 1
lea rcx, [rsp + 0x60]
call fcn.18006cc90
call fcn.18016eea0
jmp 0x18009609f
mov eax, dword [0x1804f48d8]
mov rdx, qword [rsp + 0x40]
movsxd rdi, dword [rax + rdx]
add rdi, r9
mov ecx, dword [0x1804dc86c]
add rcx, rdx
lea rdx, [rbp + 0x460]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180096b7c
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.18020d920
nop
cmp qword [rax + 0x18], 0xf
jbe 0x180096bac
mov rax, qword [rax]
mov rcx, rax
call fcn.180195ea0
movzx ebx, al
mov rdx, qword [rbp + 0x458]
cmp rdx, 0xf
jbe 0x180096bf8
inc rdx
mov rcx, qword [rbp + 0x440]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096bf3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180097216
call fcn.18027ee90
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 0x180096c5a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x460]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096c53
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009721c
call fcn.18027ee90
xor eax, eax
mov qword [rbp + 0x470], rax
mov qword [rbp + 0x478], 7
mov word [rbp + 0x460], ax
test bl, bl
je 0x18009609d
mov ecx, dword [0x1804dc86c]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0x4a0]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180096ca0
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.18020d920
nop
mov qword [rbp - 0x78], r14
mov byte [rbp - 0x70], 0
mov rcx, qword [r14 + 8]
cmp rcx, qword [r14 + 0x10]
je 0x180096ce7
mov rdx, rax
call fcn.1800122c0
add qword [r14 + 8], 0x20
jmp 0x180096cf5
mov r8, rax
mov rdx, rcx
mov rcx, r14
call fcn.1800560b0
or r12d, 2
mov dword [rsp + 0x50], r12d
mov rdx, qword [rbp + 0x498]
cmp rdx, 0xf
jbe 0x180096d3f
inc rdx
mov rcx, qword [rbp + 0x480]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096d3a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180097222
call fcn.18027ee90
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 0x180096d9f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x4a0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096d9a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180097228
call fcn.18027ee90
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.1800954f0
call fcn.1801969c0
and r12d, 0xfffffffd
mov dword [rsp + 0x50], r12d
mov rbx, qword [r14 + 8]
mov rdx, qword [rbx - 8]
cmp rdx, 0xf
jbe 0x180096e14
mov rcx, qword [rbx - 0x20]
inc rdx
cmp rdx, 0x1000
jb 0x180096e0f
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18009722e
mov rcx, r8
call fcn.18027ee90
xor edi, edi
mov qword [rbx - 0x10], rdi
mov qword [rbx - 8], 0xf
mov byte [rbx - 0x20], dil
add qword [r14 + 8], 0xffffffffffffffe0
jmp 0x18009609f
mov eax, dword [0x1804f48d8]
mov rdx, qword [rsp + 0x40]
movsxd rbx, dword [rax + rdx]
add rbx, r9
mov ecx, dword [0x1804dc86c]
add rcx, rdx
lea rdx, [rbp + 0x2d0]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180096e65
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.18020d920
nop
cmp qword [rax + 0x18], 0xf
jbe 0x180096e95
mov rax, qword [rax]
mov dword [rsp + 0x30], edi
lea rcx, [0x1803375b0]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
xor r9d, r9d
movaps xmm2, xmm8
mov rdx, rbx
mov rcx, rax
call fcn.18018e8d0
nop
mov rdx, qword [rbp + 0x4d8]
cmp rdx, 0xf
jbe 0x180096efd
inc rdx
mov rcx, qword [rbp + 0x4c0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096ef8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180097234
call fcn.18027ee90
mov qword [rbp + 0x4d0], rdi
mov qword [rbp + 0x4d8], 0xf
mov byte [rbp + 0x4c0], 0
mov rdx, qword [rbp + 0x2e8]
cmp rdx, 7
jbe 0x180096f5c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x2d0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096f57
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009723a
call fcn.18027ee90
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.18016bb60
test al, al
je 0x18009609f
lea rcx, [rbp - 0x20]
call fcn.180085c10
test al, al
jne 0x180096fb2
lea rcx, str.Cant_save__did_not_start_from_a_valid_base
call fcn.180195820
call fcn.18016eea0
jmp 0x18009609f
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.18018c8f0
test al, al
je 0x18009700e
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.18006cc90
mov qword [rbp + 0x30], 0
lea rdx, [rbp + 0x30]
lea rcx, str.Unsave_Property
call fcn.18018c8f0
test al, al
je 0x180097036
mov dl, 1
lea rcx, [rsp + 0x60]
call fcn.18006cc90
call fcn.18016eea0
jmp 0x18009609f
mov ecx, dword [0x1804f48d4]
add rcx, rbx
lea rdx, [rbp + 0x1d8]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x180097063
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.18020d920
nop
mov r8, qword [rbp + 0x1f0]
cmp r8, 7
jbe 0x1800970a6
mov rdx, qword [rbp + 0x1d8]
lea rcx, [rbp + 0x1d8]
call fcn.1800744d0
mov qword [rbp + 0x1e8], rdi
mov qword [rbp + 0x1f0], 7
mov word [rbp + 0x1d8], di
mov ecx, dword [0x1804dc86c]
add rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0xb8]
call fcn.18021fc00
nop
mov rcx, rax
cmp qword [rax + 0x18], 7
jbe 0x1800970e4
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.18020d920
nop
mov r8, qword [rbp + 0xd0]
cmp r8, 7
jbe 0x180097127
mov rdx, qword [rbp + 0xb8]
lea rcx, [rbp + 0xb8]
call fcn.1800744d0
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.180195820
nop
mov r8, qword [rbp + 0x70]
cmp r8, 0xf
jbe 0x180097180
mov rdx, qword [rbp + 0x58]
lea rcx, [rbp + 0x58]
call fcn.180014f20
mov qword [rbp + 0x68], rdi
mov qword [rbp + 0x70], 0xf
mov byte [rbp + 0x58], 0
mov r8, qword [rbp + 0x50]
cmp r8, 0xf
jbe 0x1800971a7
mov rdx, qword [rbp + 0x38]
lea rcx, [rbp + 0x38]
call fcn.180014f20
mov qword [rbp + 0x48], rdi
mov qword [rbp + 0x50], 0xf
mov byte [rbp + 0x38], 0
jmp 0x18009609f
call fcn.1802a2050
int3
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
nop
call fcn.1802a2050
int3