Function at 0x69879520
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, 0x9b8
mov rbx, qword [rsp + 0xa28]
mov qword [rsp + 0x20], 0
mov rdi, r8
mov rbp, r9
mov r8d, dword [rbx + 0x44]
mov r9d, dword [rbx + 0x48]
mov rsi, rcx
mov rcx, rdx
mov edx, 0x2000
call fcn.697896c0
mov ecx, dword [rax + 0x1c]
mov r12, rax
test ecx, ecx
jne 0x6987964f
lea r14, [rbx + 0x3c]
lea rax, [rsp + 0x8c]
xor r8d, r8d
mov rcx, r12
lea rdx, [rsp + 0x88]
mov qword [rsp + 0x30], rax
mov r9, r14
mov qword [rsp + 0x28], rdx
mov rdx, qword [0x69a01d90]
mov qword [rsp + 0x20], r14
call qword [rsi + 0x48]
mov rcx, r12
mov r8d, dword [rax + 0x1c]
mov r13, rax
test r8d, r8d
jne 0x69879d38
call qword [rsi + 0x30]
test eax, eax
jne 0x69879d48
test byte [r12 + 0x30], 4
je 0x69879670
cmp qword [rsp + 0xa20], 0
mov r11d, dword [rbx + 0x40]
mov ecx, dword [rbx + 0x3c]
mov edx, dword [rsp + 0x8c]
mov eax, dword [rsp + 0x88]
je 0x698796e0
mov r10, qword [rbx + 0x2c0]
mov r9d, 1
mov dword [rsp + 0x38], ecx
mov r8, rdi
mov dword [rsp + 0x30], edx
mov rcx, rsi
mov rdx, r12
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x40], r11d
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
call qword [rsp + 0xa20]
mov ecx, eax
test eax, eax
jne 0x698796c0
and byte [r12 + 0x30], 0xfb
mov rcx, r12
call qword [rsi + 0x38]
mov rcx, r13
call fcn.697e8930
mov rax, r12
add rsp, 0x9b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r9d, dword [rbx + 0x48]
lea r15, [rsp + 0x5e0]
xor r8d, r8d
xor edx, edx
mov rcx, r15
mov dword [rsp + 0x20], r9d
mov r9d, dword [rbx + 0x44]
call fcn.6973bd90
mov ecx, 2
call fcn.69784c60
mov rcx, r12
mov r9, r15
xor edx, edx
mov r8, rax
call qword [rsi + 0x60]
mov ecx, eax
test eax, eax
jne 0x69879da0
or byte [r12 + 0x30], 4
jmp 0x698795d0
cmp eax, 0x64
jne 0x69879da0
mov r11d, dword [rbx + 0x40]
mov ecx, dword [rbx + 0x3c]
mov edx, dword [rsp + 0x8c]
mov eax, dword [rsp + 0x88]
nop
mov dword [rsp + 0x38], ecx
mov r9d, 0xc
mov rcx, rsi
mov r8, rdi
mov dword [rsp + 0x30], edx
mov rdx, r12
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x40], r11d
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
call rbp
mov ecx, eax
test eax, eax
jne 0x69879da0
and byte [r12 + 0x30], 0xfb
mov rcx, qword [rbx + 0x2c0]
cmp qword [rcx + 0x10], 0
je 0x69879a88
lea rbp, [rsp + 0x5e0]
lea r9, [rsp + 0x94]
lea r8, [rsp + 0x90]
mov rdx, rbp
call fcn.697407d0
mov ecx, eax
test eax, eax
jne 0x69879d70
lea rdi, [rsp + 0x320]
mov rcx, rdi
call fcn.69794730
mov r8d, dword [rsp + 0x90]
mov rdx, rbp
mov rcx, rdi
call fcn.69733d50
mov rcx, rbp
mov dword [rsp + 0x68], eax
call fcn.6976edc0
mov ecx, dword [rsp + 0x68]
test ecx, ecx
jne 0x69879d70
lea r8, [rsp + 0x9c]
lea rcx, [rsp + 0x98]
mov r9, r14
xor edx, edx
mov qword [rsp + 0x30], r8
xor r8d, r8d
mov qword [rsp + 0x28], rcx
mov rcx, r12
mov qword [rsp + 0x20], 0
call qword [rsi + 0x48]
mov r11d, dword [rax + 0x1c]
mov r15, rax
test r11d, r11d
jne 0x69879f09
mov edx, dword [rsp + 0x94]
mov qword [rsp + 0x48], rdi
mov r8, rax
mov rcx, r12
mov qword [rsp + 0x38], r14
mov ebp, dword [rsp + 0x9c]
mov dword [rsp + 0x40], edx
mov r10d, dword [rbx + 0x40]
mov edx, 3
mov dword [rsp + 0x30], r10d
mov r9d, dword [rbx + 0x3c]
mov dword [rsp + 0x20], ebp
lea rbp, [rsp + 0xa0]
mov dword [rsp + 0x28], r9d
mov r9d, dword [rsp + 0x98]
call qword [rsi + 0x88]
mov rdx, rbp
mov rcx, rdi
mov dword [rsp + 0x68], eax
call fcn.69793c80
lea r8, [rsp + 0xb0]
mov rcx, rbp
mov rdx, r8
mov qword [rsp + 0x70], r8
call fcn.6973afb0
mov rcx, rdi
call fcn.69794710
mov rcx, r15
call fcn.697e8930
mov ecx, dword [rsp + 0x68]
test ecx, ecx
jne 0x69879d70
mov rcx, qword [rsp + 0x70]
mov rdx, r14
call fcn.6977b330
test eax, eax
je 0x69879641
mov r14d, dword [rbx + 0x44]
cmp dword [rsp + 0xb8], r14d
jl 0x698798a6
mov edi, dword [rbx + 0x48]
cmp dword [rsp + 0xbc], edi
jge 0x69879641
lea r15, [rsp + 0xd0]
mov rcx, r15
call fcn.6973bbc0
mov r8d, dword [rbx + 0x40]
mov r11d, dword [rsp + 0xb4]
mov ecx, r8d
cmp r11d, r8d
je 0x6987990f
mov edx, dword [rbx + 0x44]
sub r11d, r8d
mov rcx, r15
lea r8, [rsp + 0xc0]
mov qword [rsp + 0xc0], 0
shl r11d, 8
shl edx, 8
mov dword [rsp + 0xcc], r11d
mov dword [rsp + 0xc8], edx
xor edx, edx
call fcn.6973b080
mov r8d, dword [rbx + 0x40]
mov ecx, dword [rsp + 0xb4]
mov ebp, dword [rbx + 0x3c]
mov eax, dword [rsp + 0xbc]
mov r9d, dword [rsp + 0xb0]
add eax, ecx
mov r10d, ebp
cmp r9d, ebp
je 0x69879990
sub ecx, r8d
sub r9d, ebp
sub eax, r8d
xor edx, edx
shl ecx, 8
shl r9d, 8
lea r8, [rsp + 0xc0]
mov dword [rsp + 0xc0], 0
mov dword [rsp + 0xc4], ecx
shl eax, 8
mov rcx, r15
mov dword [rsp + 0xc8], r9d
mov dword [rsp + 0xcc], eax
call fcn.6973b080
mov ecx, dword [rsp + 0xb4]
mov eax, dword [rsp + 0xbc]
mov ebp, dword [rsp + 0xb0]
mov r10d, dword [rbx + 0x3c]
mov r8d, dword [rbx + 0x40]
add eax, ecx
mov r14d, dword [rbx + 0x44]
add ebp, dword [rsp + 0xb8]
lea edi, [r14 + r10]
cmp ebp, edi
je 0x698799fa
sub ecx, r8d
sub ebp, r10d
sub eax, r8d
shl r14d, 8
shl ecx, 8
shl eax, 8
lea r8, [rsp + 0xc0]
xor edx, edx
mov dword [rsp + 0xc4], ecx
shl ebp, 8
mov rcx, r15
mov dword [rsp + 0xc0], ebp
mov dword [rsp + 0xc8], r14d
mov dword [rsp + 0xcc], eax
call fcn.6973b080
mov r8d, dword [rbx + 0x40]
mov eax, dword [rsp + 0xbc]
add eax, dword [rsp + 0xb4]
mov r11d, dword [rbx + 0x48]
lea edx, [r11 + r8]
cmp edx, eax
je 0x69879a4c
mov r9d, dword [rbx + 0x44]
sub eax, r8d
shl r11d, 8
xor edx, edx
shl eax, 8
mov rcx, r15
lea r8, [rsp + 0xc0]
mov dword [rsp + 0xc0], 0
shl r9d, 8
mov dword [rsp + 0xc4], eax
mov dword [rsp + 0xc8], r9d
mov dword [rsp + 0xcc], r11d
call fcn.6973b080
mov ecx, 2
call fcn.69784c60
mov r9, r15
xor edx, edx
mov rcx, r12
mov r8, rax
call qword [rsi + 0x60]
mov rcx, r15
mov dword [rsp + 0x68], eax
call fcn.6973b920
mov ecx, dword [rsp + 0x68]
cmp ecx, 0x64
jne 0x69879d8e
jmp 0x69879d75
mov rdi, qword [rcx + 0x18]
test rdi, rdi
mov qword [rsp + 0x68], rdi
je 0x69879641
mov ebp, dword [rcx + 0x20]
movq xmm1, r12
movq xmm0, rsi
mov edi, dword [rbx + 0x40]
punpcklqdq xmm0, xmm1
lea rcx, [rsp + 0x5f0]
mov ebx, dword [rbx + 0x3c]
movups xmmword [rsp + 0x5e0], xmm0
call fcn.6973bbc0
mov dword [rsp + 0x614], 1
test ebp, ebp
jle 0x69879641
mov rdx, qword [rsp + 0x68]
lea r14d, [rbp - 1]
lea rbp, [rsp + 0x5e0]
shl r14, 4
lea r8, [rdx + r14 + 0x10]
and r14d, 0x10
mov r15, rdx
mov qword [rsp + 0x68], r8
jne 0x69879bb0
cmp byte [rdx], 0
mov eax, dword [rdx + 4]
mov r15d, dword [rdx + 0xc]
jne 0x69879faa
mov ecx, eax
and ecx, 0xff
je 0x69879f76
mov r8d, eax
mov r11d, r15d
sar r8d, 8
sar r11d, 8
mov r9d, r8d
sub r9d, edi
cmp r8d, r11d
jge 0x69879fe0
sub r11d, edi
mov r14d, r11d
mov r15d, 0x100
mov dword [rsp + 0x20], 1
sub r15d, ecx
mov rcx, rbp
mov dword [rsp + 0x7c], r9d
movzx r8d, r15w
mov qword [rsp + 0x70], rdx
mov dword [rsp + 0x28], r8d
mov r8d, ebx
call fcn.6987d940
mov r9d, dword [rsp + 0x7c]
mov rdx, qword [rsp + 0x70]
add r9d, 1
cmp r14d, r9d
jg 0x6987a01f
movzx r9d, byte [rdx + 0xc]
test r9d, r9d
jne 0x6987a00d
lea r15, [rdx + 0x10]
cmp r15, qword [rsp + 0x68]
je 0x69879641
nop dword [rax]
mov ecx, dword [r15 + 4]
cmp byte [r15], 0
mov edx, dword [r15 + 0xc]
mov eax, ecx
jne 0x69879e38
and eax, 0xff
jne 0x69879cf0
mov r14d, dword [r15 + 8]
or r14d, edx
test r14b, r14b
jne 0x69879c68
nop
cmp byte [r15 + 0x10], 0
lea r14, [r15 + 0x10]
mov ecx, dword [r14 + 4]
mov r8d, dword [r14 + 0xc]
jne 0x69879dc8
mov r10d, ecx
and r10d, 0xff
je 0x69879c90
mov r11d, ecx
mov edx, r8d
sar r11d, 8
sar edx, 8
mov r9d, r11d
sub r9d, edi
cmp r11d, edx
jge 0x69879cb5
sub edx, edi
mov r15d, edx
mov r11d, 0x100
mov r8d, ebx
mov rcx, rbp
mov dword [rsp + 0x70], r9d
sub r11d, r10d
mov dword [rsp + 0x20], 1
movzx edx, r11w
mov dword [rsp + 0x28], edx
mov rdx, r14
call fcn.6987d940
mov r9d, dword [rsp + 0x70]
add r9d, 1
jmp 0x69879df8
mov r8d, ecx
mov r10d, edx
sar r8d, 8
sar r10d, 8
mov r9d, r8d
sub r9d, edi
cmp r10d, r8d
jle 0x69879d0d
sub r10d, edi
mov r14d, r10d
jmp 0x69879e61
mov r15d, dword [r14 + 8]
or r15d, r8d
test r15b, r15b
je 0x69879cd6
mov edx, ecx
mov eax, r8d
sar edx, 8
sar eax, 8
mov r9d, edx
sub r9d, edi
cmp eax, edx
jg 0x69879ee0
sub r8d, ecx
mov dword [rsp + 0x20], 1
mov rdx, r14
movzx ecx, r8w
mov r8d, ebx
mov dword [rsp + 0x28], ecx
mov rcx, rbp
call fcn.6987d940
lea r15, [r14 + 0x10]
cmp r15, qword [rsp + 0x68]
jne 0x69879bb0
jmp 0x69879641
mov r11d, ecx
mov r8d, edx
sar r11d, 8
sar r8d, 8
mov r9d, r11d
sub r9d, edi
cmp r11d, r8d
jl 0x69879ea0
sub edx, ecx
mov dword [rsp + 0x20], 1
mov r8d, ebx
movzx ecx, dx
mov rdx, r15
mov dword [rsp + 0x28], ecx
mov rcx, rbp
call fcn.6987d940
jmp 0x69879be0
call fcn.697e8930
mov r12, r13
jmp 0x6987964f
mov rcx, r13
mov dword [rsp + 0x68], eax
call fcn.697e8930
mov rcx, r12
call fcn.697e8930
mov ecx, dword [rsp + 0x68]
call fcn.697895a0
mov r12, rax
jmp 0x6987964f
cmp ecx, 0x64
jne 0x69879da0
mov rcx, qword [rbx + 0x2c0]
mov r9d, dword [rbx + 0x40]
mov rdx, r12
mov r8d, dword [rbx + 0x3c]
call fcn.6973f180
mov ecx, eax
test ecx, ecx
je 0x69879641
nop word cs:[rax + rax]
mov dword [rsp + 0x68], ecx
mov rcx, r12
call qword [rsi + 0x38]
mov esi, dword [rsp + 0x68]
cmp esi, 0x66
jne 0x69879ef0
mov rcx, r13
call fcn.697e8930
jmp 0x6987964f
mov r10d, ecx
mov eax, r8d
sar r10d, 8
sar eax, 8
mov r9d, r10d
sub r9d, edi
cmp r10d, eax
jge 0x69879cb5
sub eax, edi
and ecx, 0xff
mov r15d, eax
mov r10d, ecx
jne 0x69879c28
cmp r15d, r9d
jg 0x69879f20
movzx r9d, byte [r14 + 0xc]
test r9d, r9d
je 0x69879cd6
mov dword [rsp + 0x28], r9d
mov r8d, ebx
mov r9d, r15d
mov rdx, r14
mov dword [rsp + 0x20], 1
mov rcx, rbp
call fcn.6987d940
jmp 0x69879cd6
sar eax, 8
mov r10d, edx
mov r9d, eax
sar r10d, 8
sub r9d, edi
cmp eax, r10d
jge 0x69879d0d
sub r10d, edi
and ecx, 0xff
mov r14d, r10d
mov eax, ecx
jne 0x69879ea6
cmp r14d, r9d
jg 0x69879f50
movzx r9d, byte [r15 + 0xc]
test r9d, r9d
je 0x69879be0
mov dword [rsp + 0x28], r9d
mov r8d, ebx
mov r9d, r14d
mov rdx, r15
mov dword [rsp + 0x20], 1
mov rcx, rbp
call fcn.6987d940
jmp 0x69879be0
sub r8d, edi
mov r14d, r8d
mov edx, 0x100
mov r8d, ebx
mov rcx, rbp
mov dword [rsp + 0x70], r9d
sub edx, eax
mov dword [rsp + 0x20], 1
movzx eax, dx
mov rdx, r15
mov dword [rsp + 0x28], eax
call fcn.6987d940
mov r9d, dword [rsp + 0x70]
add r9d, 1
jmp 0x69879e61
sub eax, edi
mov r15d, eax
jmp 0x69879df8
mov rcx, r12
call fcn.697e8930
mov ecx, dword [rsp + 0x68]
call fcn.697895a0
mov r12, rax
jmp 0x69879db7
mov rcx, rdi
call fcn.69794710
mov ecx, dword [r15 + 0x1c]
jmp 0x69879a74
mov r10d, r15d
mov r8d, ebx
mov rdx, r14
mov rcx, rbp
sub r10d, r9d
mov dword [rsp + 0x28], 0x100
mov dword [rsp + 0x20], r10d
call fcn.6987d940
jmp 0x69879e01
mov r11d, r14d
mov r8d, ebx
mov rdx, r15
mov rcx, rbp
sub r11d, r9d
mov dword [rsp + 0x28], 0x100
mov dword [rsp + 0x20], r11d
call fcn.6987d940
jmp 0x69879e6a
mov r9d, dword [rdx + 8]
or r9d, r15d
test r9b, r9b
je 0x69879b9a
mov r11d, eax
mov r10d, r15d
sar r11d, 8
sar r10d, 8
mov r9d, r11d
sub r9d, edi
cmp r10d, r11d
jle 0x69879fe0
sub r10d, edi
mov r14d, r10d
jmp 0x69879b83
mov ecx, eax
mov r10d, r15d
sar ecx, 8
sar r10d, 8
mov r9d, ecx
sub r9d, edi
cmp ecx, r10d
jge 0x69879fe0
sub r10d, edi
and eax, 0xff
mov r14d, r10d
mov ecx, eax
je 0x69879b83
jmp 0x69879b46
sub r15d, eax
mov dword [rsp + 0x20], 1
movzx eax, r15w
mov dword [rsp + 0x28], eax
mov r8d, ebx
mov rcx, rbp
mov qword [rsp + 0x70], rdx
call fcn.6987d940
mov rdx, qword [rsp + 0x70]
jmp 0x69879b9a
mov dword [rsp + 0x28], r9d
mov r9d, r14d
mov dword [rsp + 0x20], 1
jmp 0x69879ff3
mov r11d, r14d
mov r8d, ebx
mov rcx, rbp
mov qword [rsp + 0x70], rdx
sub r11d, r9d
mov dword [rsp + 0x28], 0x100
mov dword [rsp + 0x20], r11d
call fcn.6987d940
mov rdx, qword [rsp + 0x70]
jmp 0x69879b8c