Function at 0x697f5b40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
mov eax, dword [rsp + 0x168]
mov r12, qword [rcx]
mov qword [rsp + 0x158], r9
mov rbx, rcx
mov r15, rdx
mov dword [rsp + 0x68], eax
test al, al
jne 0x697f5b81
mov rcx, qword [rcx + 8]
cmp byte [rcx + 0x18], 0
je 0x697f66d0
mov rbp, qword [rsp + 0x158]
mov r14, qword [r15 + 0x20]
cmp byte [rbp + 8], 0
je 0x697f64b0
mov r10, qword [rsp + 0x158]
mov qword [rbx + 0x20], 0
movdqu xmm5, xmmword [r10 + 0x20]
movdqu xmm1, xmmword [r10]
movdqu xmm3, xmmword [r10 + 0x10]
movups xmmword [rsp + 0xc0], xmm1
movups xmmword [rsp + 0xd0], xmm3
movups xmmword [rsp + 0x40], xmm5
movups xmmword [rsp + 0xe0], xmm5
cmp qword [r10 + 0x10], r14
jb 0x697f5d3c
cmp byte [r12 + 0x141], 0
jne 0x697f65c0
test r14, r14
je 0x697f6bf0
lea rax, [rsp + 0x80]
mov r13, rbx
mov edi, 0xffffff80
xor esi, esi
mov qword [rsp + 0x40], rax
lea rbp, [rsp + 0xe0]
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x60], rbp
mov rbx, rax
jmp 0x697f5c56
mov r8, rsi
shr dil, 1
and r8d, 7
cmp r8, 7
jne 0x697f5c49
add rbp, 1
mov edi, 0xffffff80
add rsi, 1
cmp rsi, r14
je 0x697f5d50
test byte [rbp], dil
je 0x697f5c30
mov edx, dword [rsp + 0x160]
mov dword [rsp + 0x30], 1
mov r8, rsi
mov r9d, dword [r13 + 0x1c]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x20], edx
mov rdx, r15
mov dword [rsp + 0x28], r9d
mov r9, r12
call fcn.697f5990
mov r9, r12
mov r8, rsi
mov rdx, r15
mov r10d, dword [rsp + 0x160]
mov dword [rsp + 0x30], 0
mov ecx, dword [r13 + 0x1c]
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x28], ecx
mov rcx, rbx
call fcn.697f5990
mov r10d, dword [rsp + 0x80]
test r10b, 0x10
jne 0x697f5cdd
mov eax, dword [rsp + 0xa0]
mov edx, eax
mov dword [rsp + 0x58], eax
and edx, 0x10
je 0x697f63c0
mov rdx, qword [rsp + 0x40]
mov r8, rbx
mov rcx, r13
call fcn.697f6e10
mov eax, edi
not eax
and byte [rbp], al
jmp 0x697f5c30
mov r8, qword [rbp]
test r8, r8
je 0x697f5d29
mov edx, dword [r8]
test edx, edx
jne 0x697f5d29
mov rcx, qword [rsp + 0x158]
mov dword [r8], 0x12
cmp byte [rcx + 8], 0
jne 0x697f5b97
cmp byte [r12 + 0xc], 0
je 0x697f5d3c
mov dword [r8], 0
mov byte [rbx + 0x19], 0
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rsp + 0x68], 0
mov rbx, r13
jne 0x697f5ed0
mov r11, r14
mov r8, qword [rsp + 0x60]
mov esi, 0xffffff80
xor r13d, r13d
lea rdi, [rsp + 0x80]
lea rbp, [rsp + 0xa0]
and r11d, 3
je 0x697f5df8
cmp r11, 1
je 0x697f5dc9
cmp r11, 2
je 0x697f5da4
test byte [r8], sil
jne 0x697f6c30
mov esi, 0x40
mov r13d, 1
test byte [r8], sil
jne 0x697f6ca5
mov rdx, r13
shr sil, 1
and edx, 7
cmp rdx, 7
jne 0x697f5dc5
add r8, 1
mov esi, 0xffffff80
add r13, 1
test byte [r8], sil
jne 0x697f6b70
mov r11, r13
shr sil, 1
and r11d, 7
cmp r11, 7
jne 0x697f5deb
add r8, 1
mov esi, 0xffffff80
add r13, 1
cmp r13, r14
je 0x697f5ea9
mov qword [rsp + 0x40], r14
mov r14, r12
mov r12, rbp
mov rbp, rdi
mov rdi, rbx
mov rbx, r8
test byte [rbx], sil
jne 0x697f6850
mov rax, r13
shr sil, 1
and eax, 7
cmp rax, 7
jne 0x697f5e2d
add rbx, 1
mov esi, 0xffffff80
add r13, 1
test byte [rbx], sil
jne 0x697f67e0
mov rcx, r13
shr sil, 1
and ecx, 7
cmp rcx, 7
jne 0x697f5e52
add rbx, 1
mov esi, 0xffffff80
lea rdx, [r13 + 1]
test byte [rbx], sil
jne 0x697f6940
and edx, 7
shr sil, 1
cmp rdx, 7
jne 0x697f5e74
add rbx, 1
mov esi, 0xffffff80
lea r11, [r13 + 2]
test byte [rbx], sil
jne 0x697f68c0
and r11d, 7
shr sil, 1
cmp r11, 7
jne 0x697f5e97
add rbx, 1
mov esi, 0xffffff80
add r13, 3
cmp r13, qword [rsp + 0x40]
jne 0x697f5e0c
mov rbx, rdi
mov r12d, dword [rbx + 0x20]
mov r8d, r12d
mov r13, qword [rbx + 0x10]
mov qword [r13 + 0x20], 0
test r12d, r12d
jne 0x697f5fae
jmp 0x697f6534
mov r8d, dword [r13 + 0x20]
test r8d, r8d
je 0x697f5f08
mov r14d, dword [rbx + 0x38]
test r14d, r14d
jg 0x697f5f08
lea r12d, [r8 - 1]
shl r12, 5
mov ebp, dword [rbx + r12 + 0x38]
test ebp, ebp
js 0x697f5f08
mov rdi, qword [rbx + 0x10]
mov qword [rdi + 0x20], 0
jmp 0x697f5fae
mov ecx, dword [rbx + 0x1c]
lea rdx, [rsp + 0x80]
mov qword [rsp + 0x98], 0
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x80], 0
mov dword [rsp + 0x98], ecx
mov rcx, rbx
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov dword [rsp + 0x80], 0x31
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
call fcn.697f6e10
mov r8d, dword [rbx + 0x20]
mov rdx, qword [rbx + 0x10]
mov qword [rdx + 0x20], 0
test r8d, r8d
je 0x697f6318
mov qword [rsp + 0x148], r15
xor esi, esi
nop dword [rax + rax]
lea r12, [rsi + 1]
mov rbp, rsi
mov rcx, r12
shl rcx, 5
mov r15d, dword [rbx + rcx + 8]
mov r14d, r15d
and r14d, 0xc
je 0x697f5fe7
mov rbp, r12
add rcx, 0x20
lea r12, [rsi + 2]
and r15d, 0x10
mov edi, r15d
jne 0x697f6128
mov r9, rsi
mov r10, rbp
mov edx, 0x10000
mov r11d, 0
shl r9, 5
shl r10, 5
mov r15d, 0
mov r13d, dword [rbx + r9 + 0x3c]
mov r9d, dword [rbx + r10 + 0x3c]
movzx r10d, r13w
movzx eax, r9w
sub edx, r10d
test r10d, r10d
cmovne r11d, edx
mov edx, 0x10000
sub edx, eax
test eax, eax
cmove edx, r15d
cmp r11d, edx
cmovle edx, r11d
cmp r10d, eax
cmovle eax, r10d
sub r8d, 1
mov r10d, eax
neg r10d
cmp rbp, r8
jae 0x697f6340
mov r11, r12
lea r8d, [r9 + rdx + 0x8000]
shl r11, 5
cmp dword [rbx + r11 + 0x3c], r8d
jge 0x697f6340
test rsi, rsi
je 0x697f609a
mov r15, rsi
mov r11d, 0xffff8000
sub r11d, eax
shl r15, 5
add r11d, r13d
cmp dword [r15 + rbx + 0x1c], r11d
jg 0x697f6750
mov edi, r10d
cmp edx, eax
jge 0x697f60b0
test byte [rbx + rcx + 0x28], 0x10
je 0x697f675e
nop dword [rax]
mov rdx, rsi
add r13d, edi
shl rdx, 5
mov dword [rbx + rdx + 0x3c], r13d
test r14d, r14d
je 0x697f63a0
mov r10, rbp
lea edi, [r9 + rdi]
shl r10, 5
mov dword [rbx + r10 + 0x3c], edi
test rsi, rsi
jne 0x697f612d
mov rsi, rbp
sub rbp, 1
shl rsi, 5
shl rbp, 5
add rsi, rbx
add rbp, rbx
mov edx, dword [rsi + 0x38]
mov r14d, dword [rbp + 0x38]
cmp edx, r14d
je 0x697f610f
mov ecx, dword [rsi + 0x3c]
sub edx, r14d
sub ecx, dword [rbp + 0x3c]
call fcn.696aa890
mov dword [rbp + 0x40], eax
mov ebp, dword [rbx + 0x20]
mov r8, rbp
cmp rbp, r12
jbe 0x697f616d
mov rsi, r12
jmp 0x697f5fc0
test rsi, rsi
je 0x697f6159
lea rdi, [rsi - 1]
shl rsi, 5
shl rdi, 5
add rsi, rbx
add rdi, rbx
mov edx, dword [rsi + 0x38]
mov eax, dword [rdi + 0x38]
cmp edx, eax
je 0x697f6159
mov ecx, dword [rsi + 0x3c]
sub edx, eax
sub ecx, dword [rdi + 0x3c]
call fcn.696aa890
mov dword [rdi + 0x40], eax
test r14d, r14d
jne 0x697f60dd
mov ebp, dword [rbx + 0x20]
mov r8, rbp
cmp rbp, r12
ja 0x697f611a
mov rdi, qword [rbx + 0x10]
mov r15, qword [rsp + 0x148]
mov r10, qword [rdi + 0x20]
test r10, r10
je 0x697f6318
mov rsi, qword [rdi + 0x10]
lea r12, [r10 - 1]
mov r11, qword [rdi + 0x30]
mov rax, r10
mov r9, r12
imul r9, rsi
add r9, r11
test r10b, 1
je 0x697f6214
mov rax, r12
mov r8, r9
cmp r10, r12
ja 0x697f61d0
mov rcx, qword [rdi + 8]
mov r8, r11
test rcx, rcx
je 0x697f61d0
mov r13d, dword [rcx]
test r13d, r13d
jne 0x697f61d0
mov dword [rcx], 0x82
nop word [rax + rax]
mov r14, qword [r8]
mov r12d, dword [r8 + 8]
mov rbp, r14
lea rdx, [r14 + 1]
shl rbp, 5
shl rdx, 5
lea rcx, [rbx + rbp + 0x3c]
add rdx, rbx
mov r8d, dword [rcx]
add r8d, r12d
lea r13d, [r8 + 0x8000]
cmp dword [rdx + 0x3c], r13d
jge 0x697f67c0
nop dword [rax]
sub r9, rsi
test rax, rax
je 0x697f6318
sub rax, 1
mov rbp, r9
cmp r10, rax
ja 0x697f6240
mov r12, qword [rdi + 8]
mov rbp, r11
test r12, r12
je 0x697f6240
mov ecx, dword [r12]
test ecx, ecx
jne 0x697f6240
mov dword [r12], 0x82
nop dword [rax]
mov r14, qword [rbp]
mov r8d, dword [rbp + 8]
mov rbp, r14
lea rdx, [r14 + 1]
shl rbp, 5
shl rdx, 5
add rbp, rbx
add rdx, rbx
mov r12d, dword [rbp + 0x3c]
add r12d, r8d
lea r13d, [r12 + 0x8000]
cmp dword [rdx + 0x3c], r13d
jl 0x697f6289
mov dword [rbp + 0x3c], r12d
test byte [rdx + 8], 0xc
je 0x697f6289
sub r14, 1
shl r14, 5
add dword [rbx + r14 + 0x3c], r8d
sub rax, 1
sub r9, rsi
cmp r10, rax
ja 0x697f63b0
mov rdx, qword [rdi + 8]
mov r14, r11
test rdx, rdx
je 0x697f62b8
mov ecx, dword [rdx]
test ecx, ecx
jne 0x697f62b8
mov dword [rdx], 0x82
nop dword [rax]
mov rcx, qword [r14]
mov r8d, dword [r14 + 8]
mov rbp, rcx
lea rdx, [rcx + 1]
shl rbp, 5
shl rdx, 5
add rbp, rbx
add rdx, rbx
mov r12d, dword [rbp + 0x3c]
add r12d, r8d
lea r13d, [r12 + 0x8000]
cmp dword [rdx + 0x3c], r13d
jl 0x697f6208
mov dword [rbp + 0x3c], r12d
test byte [rdx + 8], 0xc
je 0x697f6208
sub rcx, 1
sub r9, rsi
shl rcx, 5
add dword [rbx + rcx + 0x3c], r8d
test rax, rax
jne 0x697f6214
nop dword [rax]
cmp byte [rsp + 0x68], 0
je 0x697f6530
mov byte [rbx + 0x18], 1
mov rbx, qword [rsp + 0x158]
mov byte [rbx + 9], 0
jmp 0x697f5d3c
test rsi, rsi
je 0x697f6390
lea rdi, [rsi - 1]
mov r15d, 0xffff8000
mov r8, rdi
sub r15d, eax
shl r8, 5
add r15d, r13d
cmp dword [rbx + r8 + 0x3c], r15d
jle 0x697f6390
mov r11, rsi
add r13d, edx
shl r11, 5
mov dword [rbx + r11 + 0x3c], r13d
test r14d, r14d
je 0x697f6131
mov r13, rbp
add edx, r9d
shl r13, 5
mov dword [rbx + r13 + 0x3c], edx
jmp 0x697f6131
cmp edx, eax
mov edi, edx
cmovg edi, r10d
jmp 0x697f60b0
test rsi, rsi
je 0x697f610f
jmp 0x697f612d
mov r14, r9
jmp 0x697f62b8
mov ecx, dword [r12 + 0x13c]
mov r8d, dword [r12 + 0x14c]
test ecx, ecx
je 0x697f5c30
mov r11d, eax
mov eax, dword [rsp + 0x90]
mov r9d, dword [rsp + 0xb0]
and r11d, 0xa
mov dword [rsp + 0x6c], eax
mov eax, r10d
mov dword [rsp + 0x78], r9d
and eax, 5
jne 0x697f6628
test r11d, r11d
je 0x697f5c30
mov dword [rsp + 0x6c], r10d
lea rdx, [r12 + 0x198]
mov r11d, r9d
jmp 0x697f642f
add eax, 1
add rdx, 0x14
cmp ecx, eax
je 0x697f5c30
cmp byte [rdx + 0x10], 0
jne 0x697f6420
mov r9d, dword [rdx]
mov r10d, r9d
sub r10d, r8d
cmp r10d, r11d
jg 0x697f6420
mov r10d, dword [rdx + 4]
add r10d, r8d
cmp r11d, r10d
jg 0x697f6420
mov r10d, dword [rsp + 0x6c]
cmp byte [r12 + 0x140], 0
mov ecx, dword [rsp + 0xb4]
je 0x697f6d88
mov r11d, eax
lea rdx, [r11 + r11*4]
mov r11d, dword [r12 + rdx*4 + 0x1a4]
mov eax, r11d
sub eax, ecx
test r10d, r10d
jne 0x697f6dff
mov r9d, dword [rsp + 0x58]
add eax, ecx
mov dword [rsp + 0xb4], eax
or r9d, 0x10
mov dword [rsp + 0xa0], r9d
jmp 0x697f5cdd
mov rcx, qword [r8 + 0x20]
add rcx, r14
cmp rcx, 0x60
ja 0x697f5d00
lea rdx, [rcx + 7]
mov r10d, 0x101
mov qword [rbp + 0x10], rcx
shr rdx, 3
mov word [rbp + 8], r10w
mov qword [rbp + 0x18], rdx
test rcx, rcx
je 0x697f6526
test rdx, rdx
je 0x697f650b
add rbp, 0x20
mov r13, 0xffffffffffffffff
cmp edx, 8
jae 0x697f69c0
test dl, 4
jne 0x697f6dcc
test edx, edx
jne 0x697f6c07
mov r9, qword [rsp + 0x158]
neg ecx
mov r13d, 0xffffffff
and ecx, 7
shl r13d, cl
and byte [r9 + rdx + 0x1f], r13b
mov r14, qword [r15 + 0x20]
jmp 0x697f5b97
mov r12d, dword [rbx + 0x20]
test r12d, r12d
je 0x697f6323
lea rdi, [rbx + 0x28]
xor r10d, r10d
jmp 0x697f656b
mov dword [rsi + 0x10], r14d
mov byte [rsi], 1
mov r12d, dword [rbx + 0x20]
mov edx, r12d
add rdi, 0x20
cmp rdx, r10
jbe 0x697f6323
mov eax, dword [rdi]
add r10, 1
test al, 0x20
jne 0x697f655b
mov rsi, qword [rdi + 8]
cmp rsi, qword [r15 + 0x20]
jb 0x697f65a0
mov r11, qword [r15 + 8]
xor esi, esi
test r11, r11
je 0x697f65a0
mov r9d, dword [r11]
test r9d, r9d
jne 0x697f65a0
mov dword [r11], 0x82
mov eax, dword [rdi]
nop dword [rax + rax]
imul rsi, qword [r15 + 0x10]
add rsi, qword [r15 + 0x30]
and eax, 0xa
mov r14d, dword [rdi + 0x14]
jne 0x697f6550
mov dword [rsi + 0xc], r14d
jmp 0x697f6554
lea rbp, [rsp + 0xa0]
mov rcx, rbx
lea rdx, [r12 + 0x178]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov r8, rbp
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
call fcn.697f6e10
lea r8, [r12 + 0x158]
mov rdx, rbp
mov rcx, rbx
call fcn.697f6e10
jmp 0x697f5bee
lea rax, [r12 + 0x198]
test r11d, r11d
jne 0x697f6af0
mov dword [rsp + 0x78], r10d
mov edx, dword [rsp + 0x6c]
jmp 0x697f6659
add r11d, 1
add rax, 0x14
cmp ecx, r11d
je 0x697f5c30
cmp byte [rax + 0x10], 0
je 0x697f6648
mov r9d, dword [rax]
sub r9d, r8d
cmp edx, r9d
jl 0x697f6648
mov r9d, dword [rax + 4]
lea r10d, [r9 + r8]
cmp edx, r10d
jg 0x697f6648
mov r10d, dword [rsp + 0x78]
cmp byte [r12 + 0x140], 0
mov edx, dword [rsp + 0x94]
je 0x697f6d50
lea rax, [r11 + r11*4]
mov eax, dword [r12 + rax*4 + 0x1a4]
sub eax, edx
mov ecx, dword [rsp + 0x58]
add edx, eax
or r10d, 0x10
mov dword [rsp + 0x94], edx
mov dword [rsp + 0x80], r10d
test ecx, ecx
je 0x697f5cdd
mov ecx, dword [rsp + 0xb4]
jmp 0x697f6487
mov edi, dword [rsp + 0x160]
mov rsi, qword [r9]
mov dword [rsp + 0x28], 1
lea r9, [rsp + 0xc0]
mov qword [rsp + 0x150], r8
mov dword [rsp + 0x20], edi
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0xc0], rsi
call fcn.697f5b40
mov r8, qword [rsp + 0x150]
jmp 0x697f5b81
xor r10d, r10d
test byte [rbx + rcx + 0x28], 0x10
jne 0x697f60b0
mov rax, qword [rbx + 0x10]
sub edx, r10d
mov qword [rsp + 0xa0], rbp
mov dword [rsp + 0xa8], edx
mov rcx, qword [rax + 0x20]
cmp rcx, qword [rax + 0x18]
je 0x697f6d1e
mov r8, qword [rax + 0x10]
lea rdx, [rsp + 0xa0]
mov dword [rsp + 0x58], r9d
mov qword [rsp + 0x40], rax
imul rcx, r8
add rcx, qword [rax + 0x30]
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x58]
add qword [rcx + 0x20], 1
jmp 0x697f60b0
mov dword [rcx], r8d
test byte [rdx + 8], 0xc
je 0x697f6208
sub r14, 1
shl r14, 5
add dword [rbx + r14 + 0x3c], r12d
jmp 0x697f6208
mov r11d, dword [rsp + 0x160]
mov r9, r14
mov rdx, r15
mov rcx, rbp
mov dword [rsp + 0x30], 1
mov r8d, dword [rdi + 0x1c]
mov dword [rsp + 0x20], r11d
mov dword [rsp + 0x28], r8d
mov r8, r13
call fcn.697f5990
mov r8, r13
mov rcx, r12
mov r9, r14
mov dword [rsp + 0x30], 0
mov r10d, dword [rsp + 0x160]
mov edx, dword [rdi + 0x1c]
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x28], edx
mov rdx, r15
call fcn.697f5990
mov r8, r12
mov rdx, rbp
mov rcx, rdi
call fcn.697f6e10
jmp 0x697f5e3a
mov r10d, dword [rsp + 0x160]
mov r9, r14
mov r8, r13
mov rcx, rbp
mov dword [rsp + 0x30], 1
mov edx, dword [rdi + 0x1c]
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x28], edx
mov rdx, r15
call fcn.697f5990
mov r9d, dword [rsp + 0x160]
mov r8, r13
mov rdx, r15
mov dword [rsp + 0x30], 0
mov ecx, dword [rdi + 0x1c]
mov dword [rsp + 0x20], r9d
mov r9, r14
mov dword [rsp + 0x28], ecx
mov rcx, r12
call fcn.697f5990
mov r8, r12
mov rdx, rbp
mov rcx, rdi
call fcn.697f6e10
jmp 0x697f5e15
mov r9d, dword [rsp + 0x160]
mov r8, r11
mov rdx, r15
mov qword [rsp + 0x58], r11
mov dword [rsp + 0x30], 1
mov ecx, dword [rdi + 0x1c]
mov dword [rsp + 0x20], r9d
mov r9, r14
mov dword [rsp + 0x28], ecx
mov rcx, rbp
call fcn.697f5990
mov r8, qword [rsp + 0x58]
mov r9, r14
mov rdx, r15
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x30], 0
mov rcx, r12
mov r10d, dword [rdi + 0x1c]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], r10d
call fcn.697f5990
mov r8, r12
mov rdx, rbp
mov rcx, rdi
call fcn.697f6e10
mov r11, qword [rsp + 0x58]
jmp 0x697f5e81
mov eax, dword [rsp + 0x160]
mov r8, rdx
mov qword [rsp + 0x58], rdx
mov rcx, rbp
mov dword [rsp + 0x30], 1
mov r9d, dword [rdi + 0x1c]
mov rdx, r15
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], r9d
mov r9, r14
call fcn.697f5990
mov r9, r14
mov rdx, r15
mov rcx, r12
mov r11d, dword [rsp + 0x160]
mov dword [rsp + 0x30], 0
mov r8d, dword [rdi + 0x1c]
mov dword [rsp + 0x20], r11d
mov dword [rsp + 0x28], r8d
mov r8, qword [rsp + 0x58]
call fcn.697f5990
mov rdx, rbp
mov r8, r12
mov rcx, rdi
call fcn.697f6e10
mov rdx, qword [rsp + 0x58]
jmp 0x697f5e5f
mov rsi, qword [rsp + 0x158]
mov edi, edx
mov qword [rsi + 0x20], 0xffffffffffffffff
mov qword [rbp + rdi - 8], 0xffffffffffffffff
mov r10, qword [rsp + 0x158]
lea r9, [r10 + 0x28]
and r9, 0xfffffffffffffff8
sub rbp, r9
lea eax, [rdx + rbp]
mov ebp, eax
and ebp, 0xfffffff8
cmp ebp, 8
jb 0x697f650b
lea r11d, [rbp - 1]
mov r14d, 8
mov qword [r9], 0xffffffffffffffff
mov r8d, ebp
shr r11d, 3
and r11d, 7
cmp r14d, ebp
jae 0x697f650b
test r11d, r11d
je 0x697f6aa2
cmp r11d, 1
je 0x697f6a8e
cmp r11d, 2
je 0x697f6a83
cmp r11d, 3
je 0x697f6a78
cmp r11d, 4
je 0x697f6a6d
cmp r11d, 5
je 0x697f6a62
cmp r11d, 6
je 0x697f6a57
mov qword [r9 + r14], r13
mov r14d, 0x10
mov esi, r14d
add r14d, 8
mov qword [r9 + rsi], r13
mov edi, r14d
add r14d, 8
mov qword [r9 + rdi], r13
mov r10d, r14d
add r14d, 8
mov qword [r9 + r10], r13
mov eax, r14d
add r14d, 8
mov qword [r9 + rax], r13
mov ebp, r14d
add r14d, 8
mov qword [r9 + rbp], r13
mov r11d, r14d
add r14d, 8
mov qword [r9 + r11], r13
cmp r14d, r8d
jae 0x697f650b
mov esi, r14d
lea edi, [r14 + 8]
lea r10d, [r14 + 0x10]
mov qword [r9 + rsi], r13
lea eax, [r14 + 0x18]
lea ebp, [r14 + 0x20]
mov qword [r9 + rdi], r13
lea r11d, [r14 + 0x28]
lea esi, [r14 + 0x30]
lea edi, [r14 + 0x38]
add r14d, 0x40
mov qword [r9 + r10], r13
mov qword [r9 + rax], r13
mov qword [r9 + rbp], r13
mov qword [r9 + r11], r13
mov qword [r9 + rsi], r13
mov qword [r9 + rdi], r13
cmp r14d, r8d
jb 0x697f6aa2
jmp 0x697f650b
mov qword [rsp + 0x70], rbp
mov r11d, dword [rsp + 0x6c]
mov dword [rsp + 0x7c], r10d
mov ebp, dword [rsp + 0x78]
jmp 0x697f6b2c
sub r9d, r8d
cmp r9d, r11d
jg 0x697f6b21
mov r9d, dword [rax + 4]
lea r10d, [r8 + r9]
cmp r11d, r10d
jle 0x697f6ded
add edx, 1
add rax, 0x14
cmp edx, ecx
je 0x697f6b60
cmp byte [rax + 0x10], 0
mov r9d, dword [rax]
jne 0x697f6b08
mov r10d, r9d
sub r10d, r8d
cmp r10d, ebp
jg 0x697f6b21
mov r10d, dword [rax + 4]
add r10d, r8d
cmp ebp, r10d
jg 0x697f6b21
mov rbp, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x7c]
mov eax, edx
jmp 0x697f6454
mov rbp, qword [rsp + 0x70]
jmp 0x697f5c30
mov ecx, dword [rsp + 0x160]
mov qword [rsp + 0x40], r8
mov r9, r12
mov r8, r13
mov dword [rsp + 0x30], 1
mov r10d, dword [rbx + 0x1c]
mov rdx, r15
mov dword [rsp + 0x20], ecx
mov rcx, rdi
mov dword [rsp + 0x28], r10d
call fcn.697f5990
mov r8, r13
mov rdx, r15
mov rcx, rbp
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x30], 0
mov r9d, dword [rbx + 0x1c]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], r9d
mov r9, r12
call fcn.697f5990
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.697f6e10
mov r8, qword [rsp + 0x40]
jmp 0x697f5dd2
mov r12d, dword [rbx + 0x20]
cmp byte [rsp + 0x68], 0
mov r8d, r12d
jne 0x697f5ed4
jmp 0x697f5eb0
mov r11, qword [rsp + 0x158]
mov byte [r11 + 0x20], 0xff
test dl, 2
je 0x697f650b
mov r14d, edx
mov eax, 0xffffffff
mov word [rbp + r14 - 2], ax
jmp 0x697f650b
mov edx, dword [rsp + 0x160]
mov qword [rsp + 0x40], r8
mov r9, r12
xor r8d, r8d
mov dword [rsp + 0x30], 1
mov esi, dword [rbx + 0x1c]
mov rcx, rdi
mov dword [rsp + 0x20], edx
mov rdx, r15
mov dword [rsp + 0x28], esi
call fcn.697f5990
mov r9, r12
xor r8d, r8d
mov rdx, r15
mov ecx, dword [rsp + 0x160]
mov dword [rsp + 0x30], 0
mov r10d, dword [rbx + 0x1c]
mov dword [rsp + 0x20], ecx
mov rcx, rbp
mov dword [rsp + 0x28], r10d
call fcn.697f5990
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.697f6e10
mov r8, qword [rsp + 0x40]
jmp 0x697f5d99
mov eax, dword [rsp + 0x160]
mov qword [rsp + 0x40], r8
mov rdx, r15
mov r8, r13
mov dword [rsp + 0x30], 1
mov r9d, dword [rbx + 0x1c]
mov rcx, rdi
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], r9d
mov r9, r12
call fcn.697f5990
mov r9, r12
mov rdx, r15
mov rcx, rbp
mov r11d, dword [rsp + 0x160]
mov dword [rsp + 0x30], 0
mov r8d, dword [rbx + 0x1c]
mov dword [rsp + 0x20], r11d
mov dword [rsp + 0x28], r8d
mov r8, r13
call fcn.697f5990
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.697f6e10
mov r8, qword [rsp + 0x40]
jmp 0x697f5dad
lea rdx, [rcx + rcx + 0x10]
mov rcx, rax
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x58], rax
call fcn.697f1690
mov r9d, dword [rsp + 0x40]
test al, al
je 0x697f60b0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x20]
jmp 0x697f6782
lea eax, [rdx + 0x8000]
sub r9d, dword [rsp + 0x6c]
xor ax, ax
cmp r9d, dword [r12 + 0x148]
jl 0x697f669e
lea r8, [r11 + r11*4]
mov ecx, dword [r12 + r8*4 + 0x1a4]
sub ecx, 0x10000
cmp eax, ecx
cmovg eax, ecx
jmp 0x697f669e
mov edx, dword [rsp + 0x78]
lea r8d, [rcx + 0x8000]
xor r8w, r8w
mov r11d, r8d
sub edx, r9d
cmp edx, dword [r12 + 0x148]
jl 0x697f6479
mov eax, eax
lea r9, [rax + rax*4]
mov r8d, dword [r12 + r9*4 + 0x1a4]
add r8d, 0x10000
cmp r11d, r8d
cmovl r11d, r8d
jmp 0x697f6479
mov r8, qword [rsp + 0x158]
mov r9d, edx
mov dword [r8 + 0x20], 0xffffffff
mov dword [rbp + r9 - 4], 0xffffffff
jmp 0x697f650b
mov rbp, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x7c]
mov r11d, edx
jmp 0x697f667c
mov edx, dword [rsp + 0x94]
jmp 0x697f66a0