Function at 0x697bc6e0
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, 0x108
mov r11d, 0x92492493
mov r9, qword [rcx + 0x1170]
mov rdi, qword [rcx + 0x30]
movsxd rbp, dword [rcx + 0x2c]
mov rbx, qword [rcx]
mov r10d, dword [r9 + 0x38]
lea r8, [rdi + rbp*8]
mov r12d, edx
mov qword [rsp + 0x150], rcx
mov rsi, qword [rsp + 0x150]
shr r10d, 1
imul r13, r12, 0x898
add r13, qword [rsp + 0x150]
mov qword [rsp + 0x80], rdi
mov r14d, dword [r13 + 0x58]
mov dword [r13 + 0x38], 0
imul r10, r11
mov r15d, dword [r13 + 0x58]
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x88], rbx
movsxd rdi, dword [rsi + 0x1c]
sar r14d, 0x1f
mov qword [rsp + 0xe0], 0
mov rbx, qword [rax + 0x20]
xor r15d, r14d
shr r10, 0x22
mov qword [rsp + 0x90], r8
lea rbp, [rdi + rdi*2]
sub r15d, r14d
mov qword [rsp + 0x68], r10
shl rbp, 4
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
add rbp, rbx
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0xf0], 0
mov dword [rsp + 0xe0], 0x7d00
mov qword [rsp + 0x98], r12
mov dword [rsp + 0x48], r15d
test edx, edx
jne 0x697bd0c0
cmp rbp, rbx
jbe 0x697bc841
nop dword [rax + rax]
movsx ecx, word [rbx + 0xc]
movsx r9d, word [rbx + 0xe]
add rbx, 0x30
mov dword [rbx - 0x18], ecx
mov dword [rbx - 0x14], r9d
cmp rbx, rbp
jb 0x697bc828
mov r10, qword [rsp + 0x90]
cmp qword [rsp + 0x80], r10
jae 0x697bd0fc
mov r14d, dword [rsp + 0x48]
mov r11, qword [rsp + 0x150]
xor r15d, r15d
imul r13, qword [rsp + 0x98], 0x898
mov dword [rsp + 0x40], r14d
lea r12, [r11 + r13 + 0x60]
add r13, qword [rsp + 0x150]
mov qword [rsp + 0x78], r12
mov r12, r13
mov rax, qword [rsp + 0x80]
mov rbx, qword [rax]
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 0x38], rbx
movzx esi, byte [rdx + 3]
movzx edi, byte [rdx + 3]
sar sil, 7
xor edi, esi
sub edi, esi
movzx ebp, dil
cmp ebp, dword [rsp + 0x48]
je 0x697bd040
mov byte [rsp + 0x47], 0
xor r8d, r8d
xor ecx, ecx
mov rbx, qword [rsp + 0x38]
mov dword [rsp + 0x60], 0xffff8300
xor r13d, r13d
xor edi, edi
xor r9d, r9d
mov dword [rsp + 0x5c], 0x7d00
mov edx, 0xffff8300
mov eax, 0x7d00
mov r10d, 0x7d00
mov dword [rsp + 0x58], 0xffff8300
xor r14d, r14d
mov dword [rsp + 0x54], 0x7d00
mov dword [rsp + 0x50], 0xffff8300
mov dword [rsp + 0x4c], 0x7d00
mov dword [rsp + 0x34], 0xffff8300
mov word [rsp + 0x66], r8w
mov r8d, 0xffff8300
mov word [rsp + 0x64], cx
mov ecx, 0x7d00
nop word [rax + rax]
cmp qword [rsp + 0x38], rbx
je 0x697bc982
test r14d, r14d
jne 0x697bc997
movzx ebp, byte [rbx + 3]
mov esi, ebp
sar sil, 7
mov r11d, esi
xor r11d, ebp
sub r11d, esi
movzx esi, r11b
cmp esi, dword [rsp + 0x48]
je 0x697bcaa0
cmp qword [rbx + 0x28], rbx
je 0x697bcaa0
mov rbx, qword [rbx + 0x20]
cmp qword [rsp + 0x38], rbx
jne 0x697bc947
cmp byte [rsp + 0x47], 0
jne 0x697bcf60
mov byte [rsp + 0x47], 1
test r14d, r14d
je 0x697bc94c
mov rbx, qword [rbx + 0x20]
mov r14d, dword [rbx + 0x18]
mov r11d, dword [rbx + 0x1c]
movzx esi, word [rbx]
cmp eax, r14d
cmovg eax, r14d
cmp edx, r14d
cmovl edx, r14d
cmp r11d, ecx
jge 0x697bc9bf
mov r9d, esi
mov ecx, r11d
cmp r11d, r8d
jle 0x697bc9c9
mov edi, esi
mov r8d, r11d
and esi, 3
jne 0x697bc9e5
mov ebp, dword [rsp + 0x34]
cmp r10d, r11d
cmovg r10d, r11d
cmp ebp, r11d
cmovge r11d, ebp
mov dword [rsp + 0x34], r11d
movsx r14d, byte [rbx + 3]
cmp r14d, dword [rsp + 0x40]
jne 0x697bca02
mov r14d, 1
cmp qword [rsp + 0x38], rbx
jne 0x697bc947
test r13, r13
je 0x697bca15
mov r11, qword [r13 + 0x40]
cmp qword [r15 + 0x38], r11
je 0x697bcc30
mov r14d, edx
mov r11d, r9d
lea r13d, [rdx + rax]
mov qword [r15 + 0x40], rbx
sub r14d, eax
or r11d, edi
sar r13d, 1
sar r14d, 1
and r11d, 3
mov word [r15 + 2], r13w
mov word [r15 + 4], r14w
je 0x697bca50
mov ebp, dword [rsp + 0x34]
sub ebp, r10d
cmp ebp, dword [rsp + 0x68]
jge 0x697bca50
or byte [r15], 1
mov r13d, dword [rsp + 0x34]
mov esi, r8d
mov word [r15 + 6], cx
xor r14d, r14d
sub esi, ecx
mov word [r15 + 8], r8w
mov word [r15 + 0xa], si
mov dword [rsp + 0x60], r13d
mov r13, r15
xor r15d, r15d
mov dword [rsp + 0x5c], r10d
mov word [rsp + 0x66], di
mov word [rsp + 0x64], r9w
mov dword [rsp + 0x58], r8d
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x50], edx
mov dword [rsp + 0x4c], eax
jmp 0x697bc940
movsxd r15, dword [r12 + 0x38]
cmp r15d, 0x3e8
jg 0x697bd0ee
movsx eax, bpl
mov r10, qword [r12 + 0x40]
mov dword [rsp + 0xac], 0
mov dword [rsp + 0x40], eax
cmp r15d, 0x11
jg 0x697bcb80
test r10, r10
je 0x697bccd0
lea r8d, [r15 + 1]
lea rsi, [r15 + r15*8]
mov dword [r12 + 0x38], r8d
lea r15, [r10 + rsi*8]
movdqu xmm1, xmmword [rsp + 0xb0]
movq xmm0, rbx
test r13, r13
movdqu xmm2, xmmword [rsp + 0xc0]
movdqu xmm3, xmmword [rsp + 0xd0]
punpcklqdq xmm0, xmm0
movdqu xmm4, xmmword [rsp + 0xe0]
movups xmmword [r15], xmm1
mov byte [r15 + 1], bpl
movzx r9d, word [rbx]
lea rbp, [r15 - 0x48]
movups xmmword [r15 + 0x30], xmm4
cmovne r13, rbp
mov eax, dword [rbx + 0x18]
mov ecx, dword [rbx + 0x1c]
movups xmmword [r15 + 0x38], xmm0
mov r10, qword [rbx + 0x28]
movups xmmword [r15 + 0x10], xmm2
movups xmmword [r15 + 0x20], xmm3
test r9b, 3
je 0x697bcc10
cmp rbx, r10
je 0x697bcd08
mov dword [rsp + 0x34], 0xffff8300
mov edi, r9d
mov r8d, ecx
mov edx, eax
mov r10d, 0x7d00
jmp 0x697bc997
mov r8d, dword [r12 + 0x3c]
cmp r15d, r8d
jl 0x697bcadd
mov r9d, r8d
mov edx, 0x1c71c71
lea rdi, [rsp + 0xac]
sar r9d, 2
mov qword [rsp + 0x28], rdi
lea r15d, [r8 + r9 + 4]
cmp r8d, r15d
cmovg r15d, edx
cmp r10, qword [rsp + 0x78]
je 0x697bcea0
mov qword [rsp + 0x20], r10
mov rcx, qword [rsp + 0x88]
mov r9d, r15d
mov edx, 0x48
call fcn.698dccd0
mov r8d, dword [rsp + 0xac]
mov qword [r12 + 0x40], rax
test r8d, r8d
jne 0x697bced3
movsxd rcx, dword [r12 + 0x38]
mov dword [r12 + 0x3c], r15d
imul r15, rcx, 0x48
lea esi, [rcx + 1]
add r15, qword [r12 + 0x40]
mov dword [r12 + 0x38], esi
jmp 0x697bcaee
cmp rbx, r10
je 0x697bcd40
mov dword [rsp + 0x34], ecx
mov r10d, ecx
mov edi, r9d
mov r8d, ecx
mov edx, eax
jmp 0x697bc997
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x4c]
cmp edx, esi
cmovge esi, edx
cmp eax, r14d
cmovle r14d, eax
mov dword [rsp + 0x70], esi
lea ebp, [r14 + rsi]
sub esi, r14d
sar esi, 1
sar ebp, 1
mov dword [rsp + 0x74], esi
movzx esi, byte [rbx + 2]
cmp byte [r11 + 2], sil
je 0x697bcd50
mov esi, dword [rsp + 0x58]
sub esi, dword [rsp + 0x54]
mov r11d, esi
sar r11d, 0x1f
xor esi, r11d
sub esi, r11d
mov r11d, r8d
sub r11d, ecx
mov dword [rsp + 0x4c], esi
mov esi, r11d
sar esi, 0x1f
xor r11d, esi
sub r11d, esi
cmp dword [rsp + 0x4c], r11d
jle 0x697bcdf0
mov word [r13 + 2], bp
mov r11d, dword [rsp + 0x70]
movzx ebp, word [rsp + 0x74]
mov qword [r13 + 0x40], rbx
mov dword [rsp + 0x50], r11d
mov word [r13 + 4], bp
mov dword [rsp + 0x4c], r14d
sub dword [r12 + 0x38], 1
xor r15d, r15d
xor r14d, r14d
jmp 0x697bc940
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [r12 + 0x38]
mov dword [r12 + 0x3c], 0x12
mov qword [r12 + 0x40], rax
mov r11, qword [r12 + 0x40]
lea edx, [rcx + 1]
lea rdi, [rcx + rcx*8]
mov dword [r12 + 0x38], edx
lea r15, [r11 + rdi*8]
jmp 0x697bcaee
or byte [r15], 1
mov r10d, 0x7d00
mov word [r15 + 2], ax
mov dword [rsp + 0x34], 0xffff8300
xor edi, edi
mov word [r15 + 6], cx
mov r8d, ecx
mov edx, eax
mov word [r15 + 0xa], di
mov edi, r9d
mov word [r15 + 8], cx
xor r15d, r15d
jmp 0x697bc977
mov word [r15 + 2], ax
mov r10d, ecx
mov dword [rsp + 0x34], ecx
jmp 0x697bcd1f
mov edx, dword [rsp + 0x54]
cmp ecx, edx
jle 0x697bcd60
movzx r9d, word [rsp + 0x64]
mov ecx, edx
mov eax, dword [rsp + 0x58]
cmp r8d, eax
jge 0x697bcd71
movzx edi, word [rsp + 0x66]
mov r8d, eax
mov r15d, dword [rsp + 0x5c]
mov esi, dword [rsp + 0x34]
mov edx, r9d
mov qword [r13 + 0x40], rbx
mov r11d, dword [rsp + 0x60]
movzx eax, byte [r13]
mov word [r13 + 2], bp
cmp r10d, r15d
movzx ebp, word [rsp + 0x74]
cmovg r10d, r15d
cmp esi, r11d
cmovl esi, r11d
or edx, edi
mov word [r13 + 4], bp
and edx, 3
mov dword [rsp + 0x34], esi
je 0x697bcdc0
sub esi, r10d
cmp esi, dword [rsp + 0x68]
jl 0x697bd0b8
and eax, 0xfffffffe
mov r15d, r8d
mov byte [r13], al
mov edx, dword [rsp + 0x70]
mov eax, r14d
sub r15d, ecx
mov word [r13 + 6], cx
mov word [r13 + 8], r8w
mov word [r13 + 0xa], r15w
jmp 0x697bccbe
movzx edx, word [rsp + 0x74]
mov eax, r9d
mov qword [r15 + 0x40], rbx
or eax, edi
mov word [r15 + 2], bp
mov word [r15 + 4], dx
test al, 3
je 0x697bce1d
mov ebp, dword [rsp + 0x34]
sub ebp, r10d
cmp ebp, dword [rsp + 0x68]
jge 0x697bce1d
or byte [r15], 1
mov r11d, r8d
mov word [r15 + 6], cx
mov esi, dword [rsp + 0x34]
mov eax, r14d
sub r11d, ecx
mov word [r15 + 8], r8w
mov edx, dword [rsp + 0x70]
mov word [r15 + 0xa], r11w
movdqu xmm5, xmmword [r15]
mov dword [rsp + 0x60], esi
movups xmmword [r13], xmm5
movdqu xmm1, xmmword [r15 + 0x10]
mov dword [rsp + 0x5c], r10d
movups xmmword [r13 + 0x10], xmm1
movdqu xmm2, xmmword [r15 + 0x20]
mov word [rsp + 0x66], di
movups xmmword [r13 + 0x20], xmm2
movdqu xmm3, xmmword [r15 + 0x30]
mov word [rsp + 0x64], r9w
movups xmmword [r13 + 0x30], xmm3
mov r15, qword [r15 + 0x40]
mov dword [rsp + 0x58], r8d
mov qword [r13 + 0x40], r15
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x50], edx
mov dword [rsp + 0x4c], r14d
jmp 0x697bccbe
mov qword [rsp + 0x20], 0
xor r8d, r8d
mov r9d, r15d
mov edx, 0x48
mov rcx, qword [rsp + 0x88]
call fcn.698dccd0
mov r8d, dword [rsp + 0xac]
mov qword [r12 + 0x40], rax
test r8d, r8d
je 0x697bceed
mov r14d, r8d
mov eax, r14d
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rsp + 0x78]
lea rdi, [rax + 8]
and rdi, 0xfffffffffffffff8
mov r10, qword [rsi]
mov qword [rax], r10
mov r9, qword [rsi + 0x508]
mov qword [rax + 0x508], r9
sub rax, rdi
sub rsi, rax
lea eax, [rax + 0x510]
mov edx, eax
shr edx, 3
mov ecx, edx
rep movsq qword [rdi], qword [rsi]
mov dword [r12 + 0x3c], r15d
movsxd r11, dword [r12 + 0x38]
mov r9, qword [r12 + 0x40]
mov r8d, dword [rsp + 0xac]
lea r15d, [r11 + 1]
lea r10, [r11 + r11*8]
mov dword [r12 + 0x38], r15d
lea r15, [r9 + r10*8]
test r8d, r8d
jne 0x697bced3
jmp 0x697bcaee
add qword [rsp + 0x80], 8
mov r10, qword [rsp + 0x80]
cmp qword [rsp + 0x90], r10
ja 0x697bc88d
imul r8, qword [rsp + 0x98], 0x898
add r8, qword [rsp + 0x150]
mov r12, qword [r8 + 0x40]
test r12, r12
je 0x697bd0fc
movsxd rcx, dword [r8 + 0x38]
lea r9, [rcx + rcx*8]
lea rdx, [r12 + r9*8]
cmp r12, rdx
jb 0x697bcff7
jmp 0x697bd0fc
cmp r11d, esi
jle 0x697bcfd1
sub r11d, esi
sar r11d, 1
add word [r12 + 0xa], r11w
mov rbx, qword [r14 + 0x20]
mov r10d, dword [rbx + 0x1c]
cmp r10d, eax
jle 0x697bcfea
sub r10d, eax
sar r10d, 1
add word [r12 + 0xa], r10w
add r12, 0x48
cmp r12, rdx
jae 0x697bd0fc
mov r15, qword [r12 + 0x38]
mov r14, qword [r12 + 0x40]
mov rbp, qword [r15 + 0x28]
mov r11d, dword [r15 + 0x1c]
mov eax, dword [r14 + 0x1c]
mov esi, dword [rbp + 0x1c]
cmp r11d, eax
jl 0x697bcfc0
cmp r11d, esi
jge 0x697bd025
sub esi, r11d
sar esi, 1
add word [r12 + 0xa], si
mov r13, qword [r14 + 0x20]
mov edi, dword [r13 + 0x1c]
cmp edi, eax
jge 0x697bcfea
sub eax, edi
sar eax, 1
add word [r12 + 0xa], ax
jmp 0x697bcfea
mov r8, qword [rsp + 0x38]
movzx ecx, byte [r8 + 3]
movzx eax, byte [r8 + 3]
mov ebx, ecx
mov byte [rsp + 0x34], cl
sar bl, 7
xor eax, ebx
mov esi, eax
sub esi, ebx
movzx r9d, sil
cmp r9d, dword [rsp + 0x48]
jne 0x697bc8bf
mov r10, qword [rsp + 0x38]
mov r13d, dword [rsp + 0x48]
nop word [rax + rax]
cmp r10, rdx
je 0x697bc8bf
mov rdx, qword [rdx + 0x28]
movzx r11d, byte [rdx + 3]
movzx r14d, byte [rdx + 3]
sar r11b, 7
xor r14d, r11d
sub r14d, r11d
movzx edi, r14b
cmp edi, r13d
je 0x697bd080
mov rbp, qword [rdx + 0x20]
mov qword [rsp + 0x38], rbp
jmp 0x697bc8bf
or eax, 1
jmp 0x697bcdc3
cmp rbp, rbx
jbe 0x697bc841
nop dword [rax]
movsx edx, word [rbx + 0xe]
movsx r8d, word [rbx + 0xc]
add rbx, 0x30
mov dword [rbx - 0x18], edx
mov dword [rbx - 0x14], r8d
cmp rbx, rbp
jb 0x697bd0d0
jmp 0x697bc841
mov dword [r12 + 0x38], 0
jmp 0x697bced6
xor r14d, r14d
jmp 0x697bced6