Function at 0x69810410
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, 0x488
mov rsi, rcx
mov rcx, qword [rdx + 0x2c0]
mov rbx, rdx
mov r12, r8
cmp qword [rcx + 0x10], 0
je 0x69810447
mov r13d, dword [rdx + 0x5c]
test r13d, r13d
jne 0x698105c0
mov ecx, dword [r12 + 0x28]
test ecx, ecx
je 0x69810550
mov r13, qword [rbx]
mov r8, qword [rbx + 0x2c0]
lea rbp, [rbx + 0x80]
mov r14d, dword [rbx + 8]
mov r10d, dword [r8 + 0x30]
test r10d, r10d
jne 0x69810888
cmp qword [r8 + 0x10], 0
je 0x69810690
mov r11d, dword [rbx + 0x5c]
test r11d, r11d
je 0x69810550
mov eax, dword [rbx + 0x1c8]
xor edi, edi
mov r15d, 1
test eax, eax
jne 0x698108a4
cmp word [rbx + 0x236], 0xfeff
jbe 0x698108a4
cmp r14d, 1
je 0x69810b30
test byte [r13 + 0x30], 4
jne 0x69810d20
xor r15d, r15d
cmp r14d, 2
je 0x69810ea0
test r10d, r10d
je 0x69810d72
mov r9d, dword [rbx + 0xb0]
test r9d, r9d
jne 0x69810f10
mov dword [rsp + 0x68], r10d
test r15d, r15d
mov r9, r12
mov rcx, r13
mov r10d, 1
lea r8, [rbx + 0xf8]
cmovne r14d, r10d
mov edx, r14d
call qword [rsi + 0x38]
mov r10d, dword [rsp + 0x68]
cmp eax, 0x64
je 0x69810b09
test eax, eax
je 0x69810a5e
add rsp, 0x488
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r8d, r8d
test byte [rsi + 0x30], 1
jne 0x69810d78
nop dword [rax]
lea rbp, [rsi + 0x60]
lea rsi, [rsi + 0x68]
mov r9, r12
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call fcn.69873b50
cmp eax, 0x64
jne 0x69810529
lea r14, [rsp + 0xb0]
mov rdx, r12
mov rcx, r14
call fcn.6976f2b0
test eax, eax
jne 0x69810529
mov r9, r14
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call fcn.69876940
mov rcx, r14
mov dword [rsp + 0x68], eax
call fcn.6976edc0
mov eax, dword [rsp + 0x68]
jmp 0x69810529
call fcn.6973f8f0
mov rdx, r12
mov rcx, rax
call fcn.69740dc0
mov rbp, rax
cmp rbp, qword [0x69a01c20]
mov eax, 0x66
je 0x69810529
lea r14, [rsp + 0xb0]
lea r9, [rsp + 0xa0]
mov rcx, rbp
mov rdx, r14
lea r8, [rsp + 0x9c]
call fcn.697407d0
mov rcx, qword [rbp + 0x10]
mov dword [rsp + 0x68], eax
call fcn.69742190
mov edx, dword [rsp + 0x68]
mov qword [rbp + 0x10], 0
test edx, edx
jne 0x69810672
mov eax, dword [rsp + 0xa0]
mov rdx, rbx
mov r8, r14
mov rcx, rsi
mov rdi, qword [rbx + 0x2c0]
mov qword [rbx + 0x2c0], rbp
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0x9c]
call fcn.698116a0
mov rbp, qword [rbx + 0x2c0]
mov rcx, r14
mov qword [rbx + 0x2c0], rdi
mov dword [rsp + 0x68], eax
call fcn.6976edc0
mov edx, dword [rsp + 0x68]
mov rcx, rbp
mov dword [rsp + 0x68], edx
call fcn.69740190
mov eax, dword [rsp + 0x68]
cmp eax, 0x64
jne 0x69810529
jmp 0x69810447
mov r9d, dword [r8 + 0x20]
test r9d, r9d
jle 0x69810888
mov r11, qword [r8 + 0x18]
sub r9d, 1
shl r9, 4
lea r15, [r11 + r9 + 0x10]
shr r9, 4
add r9, 1
and r9d, 7
je 0x698107b5
cmp r9, 1
je 0x69810791
cmp r9, 2
je 0x69810775
cmp r9, 3
je 0x69810759
cmp r9, 4
je 0x6981073e
cmp r9, 5
je 0x69810723
cmp r9, 6
je 0x69810708
mov edi, dword [r11]
or edi, dword [r11 + 4]
or edi, dword [r11 + 8]
or edi, dword [r11 + 0xc]
test dil, dil
jne 0x69810481
add r11, 0x10
mov eax, dword [r11]
or eax, dword [r11 + 4]
or eax, dword [r11 + 8]
or eax, dword [r11 + 0xc]
test al, al
jne 0x69810481
add r11, 0x10
mov edx, dword [r11]
or edx, dword [r11 + 4]
or edx, dword [r11 + 8]
or edx, dword [r11 + 0xc]
test dl, dl
jne 0x69810481
add r11, 0x10
mov ecx, dword [r11]
or ecx, dword [r11 + 4]
or ecx, dword [r11 + 8]
or ecx, dword [r11 + 0xc]
test cl, cl
jne 0x69810481
add r11, 0x10
mov r9d, dword [r11]
or r9d, dword [r11 + 4]
or r9d, dword [r11 + 8]
or r9d, dword [r11 + 0xc]
test r9b, r9b
jne 0x69810481
add r11, 0x10
mov edi, dword [r11]
or edi, dword [r11 + 4]
or edi, dword [r11 + 8]
or edi, dword [r11 + 0xc]
test dil, dil
jne 0x69810481
add r11, 0x10
mov eax, dword [r11]
or eax, dword [r11 + 4]
or eax, dword [r11 + 8]
or eax, dword [r11 + 0xc]
test al, al
jne 0x69810481
add r11, 0x10
cmp r11, r15
je 0x69810888
mov edx, dword [r11]
or edx, dword [r11 + 4]
or edx, dword [r11 + 8]
or edx, dword [r11 + 0xc]
test dl, dl
jne 0x69810481
mov ecx, dword [r11 + 0x10]
or ecx, dword [r11 + 0x14]
or ecx, dword [r11 + 0x18]
or ecx, dword [r11 + 0x1c]
test cl, cl
jne 0x69810481
mov r9d, dword [r11 + 0x20]
or r9d, dword [r11 + 0x24]
or r9d, dword [r11 + 0x28]
or r9d, dword [r11 + 0x2c]
test r9b, r9b
jne 0x69810481
mov edi, dword [r11 + 0x30]
or edi, dword [r11 + 0x34]
or edi, dword [r11 + 0x38]
or edi, dword [r11 + 0x3c]
test dil, dil
jne 0x69810481
mov eax, dword [r11 + 0x40]
or eax, dword [r11 + 0x44]
or eax, dword [r11 + 0x48]
or eax, dword [r11 + 0x4c]
test al, al
jne 0x69810481
mov edx, dword [r11 + 0x50]
or edx, dword [r11 + 0x54]
or edx, dword [r11 + 0x58]
or edx, dword [r11 + 0x5c]
test dl, dl
jne 0x69810481
mov ecx, dword [r11 + 0x60]
or ecx, dword [r11 + 0x64]
or ecx, dword [r11 + 0x68]
or ecx, dword [r11 + 0x6c]
test cl, cl
jne 0x69810481
mov r9d, dword [r11 + 0x70]
or r9d, dword [r11 + 0x74]
or r9d, dword [r11 + 0x78]
or r9d, dword [r11 + 0x7c]
test r9b, r9b
jne 0x69810481
sub r11, 0xffffffffffffff80
cmp r11, r15
jne 0x698107b5
nop dword [rax]
mov eax, dword [rbx + 0x1c8]
mov edi, 1
mov r10d, 1
xor r15d, r15d
test eax, eax
je 0x698104a4
cmp r14d, 1
je 0x69810540
lea rdi, [rbx + 0x3c]
test r10d, r10d
je 0x69810a9d
mov dword [rsp + 0x74], 0
mov rax, qword [rsi + 0x50]
xor r15d, r15d
mov dword [rsp + 0x68], 0
lea r10, [rsp + 0xb0]
lea rcx, [rbx + 0x70]
mov r9, rdi
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x20], rcx
mov rcx, r13
lea rdx, [rbx + 0x198]
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x78], r8
mov r8d, 1
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x80], r10
call rax
mov r11, qword [rsp + 0x78]
mov r9, qword [rsp + 0x80]
mov edx, dword [rax + 0x1c]
mov r8, rax
test edx, edx
jne 0x69810e80
mov r10d, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0xb0]
test r15, r15
je 0x69810e30
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x28], ecx
mov edx, 3
mov rcx, r15
mov qword [rsp + 0x80], r11
mov r11d, dword [rsp + 0x68]
mov qword [rsp + 0x88], r9
xor r9d, r9d
mov dword [rsp + 0x40], r11d
mov dword [rsp + 0x20], r10d
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
call qword [rsi + 0x58]
mov rcx, qword [rsp + 0x78]
call fcn.697e8930
mov rax, qword [rsi + 0x50]
mov r11, qword [rsp + 0x80]
mov r9, qword [rsp + 0x88]
mov qword [rsp + 0x30], r9
lea r9, [rbx + 0x60]
xor r8d, r8d
mov rdx, rbp
mov qword [rsp + 0x20], r9
mov rcx, r13
mov r9, rdi
mov qword [rsp + 0x28], r11
call rax
mov r8d, dword [rax + 0x1c]
mov rbp, rax
test r8d, r8d
jne 0x69810e48
mov edx, dword [rsp + 0x68]
mov qword [rsp + 0x58], rdi
mov r9, r15
mov r8, rbp
mov r10d, dword [rsp + 0xb0]
mov edi, dword [rsp + 0x74]
mov rcx, r13
mov qword [rsp + 0x50], r12
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x30], edx
mov edx, r14d
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x20], eax
call qword [rsi + 0x58]
mov rcx, rbp
mov dword [rsp + 0x68], eax
call fcn.697e8930
mov rcx, r15
call fcn.697e8930
mov eax, dword [rsp + 0x68]
test eax, eax
jne 0x69810a7b
mov r15d, dword [rbx + 0x5c]
xor eax, eax
test r15d, r15d
jne 0x69810529
mov r8, r12
mov rdx, rbx
mov rcx, rsi
call fcn.698d8b90
cmp eax, 0x64
je 0x69810550
jmp 0x69810529
mov r10d, 1
mov r8, qword [rbx + 0x2c0]
mov r9, rdi
mov rdx, r13
mov rcx, rsi
mov dword [rsp + 0x78], r10d
call fcn.698e3d80
mov r15, rax
mov eax, dword [rax + 0x1c]
test eax, eax
jne 0x69810a7b
mov r8d, dword [rbx + 0x3c]
mov ecx, dword [rbx + 0x40]
mov r10d, dword [rsp + 0x78]
neg r8d
neg ecx
mov dword [rsp + 0x68], r8d
mov dword [rsp + 0x74], ecx
mov rax, qword [rsi + 0x50]
test r10d, r10d
je 0x698108d2
lea r11, [rsp + 0xa0]
lea r9, [rsp + 0xb0]
jmp 0x698109c0
test r10d, r10d
jne 0x69810d40
lea rdi, [rbx + 0x3c]
test r10d, r10d
je 0x69810a90
mov dword [rsp + 0x74], 0
mov rax, qword [rsi + 0x50]
xor r15d, r15d
mov dword [rsp + 0x68], 0
jmp 0x69810ae1
test r15b, r15b
jne 0x69810eca
mov edi, r10d
mov r15d, 1
test edi, edi
je 0x698104d5
mov r11d, dword [rbx + 0xb0]
cmp r11d, 1
jne 0x69810b00
mov rcx, qword [rbx + 0xf8]
mov rax, qword [rcx]
cmp dword [rax], 0x10
jne 0x69810d65
mov r8d, dword [rbx + 0xb8]
mov dword [rsp + 0x68], r10d
test r8d, r8d
je 0x69810da0
lea rdi, [rsp + 0xb0]
mov rdx, rdi
call fcn.6978a420
mov r10d, dword [rax + 0x178]
test r10d, r10d
jne 0x69810da0
mov ecx, dword [rax + 0x168]
mov edx, dword [rbx + 0x60]
mov r10d, dword [rsp + 0x68]
cmp ecx, edx
jg 0x69810be8
add ecx, dword [rax + 0x170]
add edx, dword [rbx + 0x68]
cmp ecx, edx
jl 0x69810be8
mov r9d, dword [rax + 0x16c]
mov r11d, dword [rbx + 0x64]
cmp r9d, r11d
jg 0x69810be8
add r9d, dword [rax + 0x174]
add r11d, dword [rbx + 0x6c]
cmp r9d, r11d
jge 0x69810da0
nop word [rax + rax]
mov eax, dword [rbx + 0xb0]
test r10d, r10d
jne 0x69810f03
cmp eax, 1
jne 0x69810b09
mov rcx, qword [rbx + 0xf8]
mov rdx, rdi
mov r15, qword [rbx]
mov dword [rsp + 0x68], r10d
call fcn.6978a420
mov r10d, dword [rsp + 0x68]
mov r8d, dword [rax + 0x10]
mov rdi, rax
test r8d, r8d
je 0x69810c32
cmp r8d, dword [r15 + 0x10]
jne 0x69810b09
lea rdx, [rsp + 0x9c]
lea rcx, [rbx + 0xc0]
mov dword [rsp + 0x68], r10d
lea r8, [rsp + 0xa0]
call fcn.6975f3e0
mov r10d, dword [rsp + 0x68]
test eax, eax
je 0x69810b09
mov edx, dword [rbx + 0x3c]
mov eax, dword [rsp + 0x9c]
mov r8d, dword [rsp + 0xb0]
lea ecx, [rdx + rax]
cmp ecx, r8d
jl 0x69810b09
mov r9d, dword [rbx + 0x40]
mov ecx, dword [rsp + 0xa0]
mov r11d, dword [rsp + 0xb4]
mov dword [rsp + 0x68], r9d
add r9d, ecx
cmp r9d, r11d
jl 0x69810b09
add edx, dword [rbx + 0x44]
lea r9d, [rdx + rax]
mov edx, dword [rsp + 0xb8]
add edx, r8d
cmp r9d, edx
jg 0x69810b09
mov r9d, dword [rsp + 0xbc]
mov edx, dword [rsp + 0x68]
add edx, dword [rbx + 0x48]
add edx, ecx
add r9d, r11d
cmp edx, r9d
jg 0x69810b09
lea r9d, [rax + r8]
add ecx, r11d
mov dword [rsp + 0x68], r10d
mov dword [rsp + 0x9c], r9d
mov dword [rsp + 0xa0], ecx
mov eax, dword [rdi + 0x10]
test eax, eax
jne 0x69810ee0
mov dword [rsp + 0x20], ecx
mov r8, r12
mov rdx, rdi
mov rcx, r15
call qword [rsi + 0x40]
mov r10d, dword [rsp + 0x68]
jmp 0x69810518
cmp r14d, 2
sete cl
cmp r14d, 0xc
sete dl
or ecx, edx
and edi, ecx
movzx r15d, cl
movzx edi, dil
jmp 0x69810b42
test r11d, r11d
je 0x698104ee
mov dword [rsp + 0x74], 0
lea rdi, [rbx + 0x3c]
xor r15d, r15d
mov dword [rsp + 0x68], 0
jmp 0x69810ad4
lea rdi, [rsp + 0xb0]
jmp 0x69810c00
mov r8d, 1
test r10d, r10d
lea rdi, [rbx + 0x3c]
mov r10d, r8d
je 0x69810a96
mov dword [rsp + 0x74], 0
xor r15d, r15d
mov dword [rsp + 0x68], 0
jmp 0x69810ad4
test byte [r13 + 0x30], 4
jne 0x69810dcc
mov ecx, 2
call fcn.69784c60
xor edx, edx
mov r9, r12
mov rcx, r13
mov r8, rax
call qword [rsi + 0x38]
test eax, eax
jne 0x69810a7b
or byte [r13 + 0x30], 4
mov rcx, r13
lea rbp, [rbx + 0xc0]
call fcn.6978a430
test eax, eax
jne 0x69810e60
mov rcx, r12
call fcn.69740650
mov rcx, qword [rbx + 0xf8]
lea rdx, [rsp + 0xa0]
mov rdi, rax
call fcn.6978a420
mov r9, rdi
mov r8, r13
mov rdx, rbp
mov rcx, rax
call fcn.69779f80
mov rcx, rdi
mov dword [rsp + 0x68], eax
call fcn.69740190
mov eax, dword [rsp + 0x68]
jmp 0x69810a7b
mov dword [rsp + 0x74], ecx
mov rax, qword [rsi + 0x50]
mov r15, r8
mov dword [rsp + 0x68], r10d
jmp 0x698109c0
mov rcx, r15
mov dword [rsp + 0x68], r8d
call fcn.697e8930
mov eax, dword [rsp + 0x68]
jmp 0x69810a7b
lea r14, [rsp + 0xb0]
mov rdx, rbp
lea r8, [r13 + 0x68]
mov rcx, r14
mov rbp, r14
call fcn.697e0b10
jmp 0x69810de3
mov rcx, r15
mov qword [rsp + 0x68], rax
call fcn.697e8930
mov r13, qword [rsp + 0x68]
mov eax, dword [r13 + 0x1c]
jmp 0x69810a7b
lea rdx, [rbx + 0x60]
mov rcx, rbp
mov dword [rsp + 0x68], r10d
call fcn.6976cbc0
xor r10d, r10d
test eax, eax
mov r15d, eax
setne r10b
and edi, r10d
mov r10d, dword [rsp + 0x68]
jmp 0x69810b42
test byte [rsi + 0x30], 1
jne 0x69810b39
jmp 0x69810550
mov dword [rsp + 0x28], ecx
mov r8, r12
mov rdx, rdi
mov rcx, r15
mov dword [rsp + 0x20], r9d
lea r9, [rbx + 0x3c]
call qword [rsi + 0x48]
mov r10d, dword [rsp + 0x68]
jmp 0x69810518
test eax, eax
jne 0x69810bf7
jmp 0x698104ee
lea rdi, [rbx + 0x3c]
jmp 0x69810b16