Function at 0x6e7980
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, 0x88
mov rbx, qword [rdx]
movzx eax, byte [rbx]
mov qword [rsp + 0xd8], rdx
lea edx, [rax - 0x2d]
mov r14, r8
mov r15d, r9d
and edx, 0xf7
mov qword [rsp + 0xd0], rcx
je 0x6e7b60
mov rsi, qword [rcx + 0x10]
mov qword [rsp + 0x38], rsi
cmp al, 0x32
je 0x6e80d8
mov rsi, qword [r8 + 0x60]
test byte [rsi + 0x39], 4
je 0x6e7b20
test r15d, r15d
jle 0x6e7a0a
mov rax, qword [rsi + 0x48]
lea edx, [r15 - 1]
lea rcx, [rax + rdx*8 + 8]
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x6e7a01
cmp qword [rdx], rbx
je 0x6e7bc0
add rax, 8
cmp rcx, rax
jne 0x6e79f0
movzx ecx, word [rsi + 0x3c]
cmp r15d, ecx
jge 0x6e82dc
mov edx, r15d
mov r8, qword [rsi + 0x48]
movsxd r9, r15d
xor r12d, r12d
not edx
add edx, ecx
lea rax, [r8 + r9*8]
add rdx, r9
lea rcx, [r8 + rdx*8 + 8]
nop dword [rax]
mov rdx, qword [rax]
cmp rbx, qword [rdx]
sete dl
add rax, 8
movzx edx, dl
add r12d, edx
cmp rcx, rax
jne 0x6e7a38
mov eax, dword [rbx + 4]
mov dword [rsp + 0x7c], 0
test ah, 0x10
je 0x6e7be0
mov rdx, qword [rbx + 0x20]
mov rdx, qword [rdx + 0x20]
cmp dword [rdx], 1
je 0x6e7be0
mov r8d, dword [rbx + 0x2c]
test r8d, r8d
je 0x6e7e88
test eax, 0x2000000
je 0x6e7e88
mov rcx, qword [rbx + 0x10]
movzx edx, byte [rcx]
cmp dl, 0xb0
jne 0x6e7a9d
movzx edx, byte [rcx + 2]
cmp dl, 0xb1
je 0x6e8351
mov eax, 1
cmp dl, 0x8a
jne 0x6e7aba
mov rax, qword [rcx + 0x20]
mov rax, qword [rax + 0x20]
mov eax, dword [rax]
cmp eax, r12d
cmovl eax, r12d
movsxd rdx, eax
mov rax, qword [rsp + 0xd0]
shl rdx, 2
mov rcx, qword [rax]
call fcn.007ae150
mov rcx, qword [rsp + 0xd0]
xor r9d, r9d
mov rdx, rbx
mov qword [rsp + 0x30], rax
mov rdi, rax
lea rax, [rsp + 0x7c]
mov r8d, 4
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
call fcn.007bb210
mov r8d, dword [rsp + 0x7c]
mov dword [rsp + 0x40], eax
jmp 0x6e7c1e
mov rax, qword [rsi + 0x20]
test rax, rax
je 0x6e79dd
mov rax, qword [rax + 0x38]
movsxd rdx, r9d
cmp byte [rax + rdx], 0
je 0x6e79dd
mov r9d, dword [rsp + 0xf0]
xor eax, eax
test r9d, r9d
sete al
mov dword [rsp + 0xf0], eax
jmp 0x6e79dd
mov rdx, qword [rbx + 0x18]
mov r8d, dword [rsp + 0xf8]
call fcn.007b58b0
mov r12d, eax
mov rax, qword [r14 + 0x60]
test byte [rax + 0x3a], 0x20
je 0x6e7b8c
mov rax, qword [rsp + 0xd8]
test byte [rax + 0x15], 8
jne 0x6e7ba0
mov r8, qword [rsp + 0xd8]
lea rdx, [r14 + 0x68]
mov rcx, r14
call fcn.006f0240
mov eax, r12d
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, qword [rsp + 0xd8]
lea rdx, [r14 + 0x68]
mov rcx, r14
call fcn.006f0240
mov r12d, dword [rsp + 0xf8]
jmp 0x6e7ba0
lea rax, [rsp + 0x7c]
mov r8d, 4
xor r9d, r9d
mov rdx, rbx
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0x20], 0
call fcn.007bb210
mov r8d, dword [rsp + 0x7c]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 4
jne 0x6e7c3a
mov edx, dword [rsp + 0xf0]
xor eax, eax
test edx, edx
sete al
mov dword [rsp + 0xf0], eax
cmp dword [rsp + 0xf0], 1
mov rcx, qword [rsp + 0x38]
sbb edx, edx
xor r9d, r9d
and edx, 4
add edx, 0x20
call fcn.007ff390
movsxd rdi, dword [r14 + 0x50]
or dword [rsi + 0x38], 0x800
test edi, edi
jne 0x6e7c8b
mov rax, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xd0]
mov eax, dword [rax + 0x44]
mov dword [rsp + 0x48], eax
sub eax, 1
mov dword [rdi + 0x44], eax
movsxd rdi, dword [r14 + 0x50]
mov dword [r14 + 0x10], eax
test r15d, r15d
jle 0x6e7ca2
mov eax, dword [rsi + 0x38]
test eax, 0x100000
jne 0x6e7ca2
or eax, 0x40000
mov dword [rsi + 0x38], eax
mov rax, qword [rsp + 0xd8]
add r12d, edi
mov dword [r14 + 0x50], r12d
movsxd r12, r12d
mov rax, qword [rax + 8]
lea rbp, [r12 + r12*4]
mov r12, qword [r14 + 0x58]
shl rbp, 2
mov r13, qword [rax]
lea rdx, [rbp + 0x10]
mov rax, qword [r13]
mov rcx, qword [rax]
call fcn.007ae070
test rax, rax
je 0x6e8140
mov rdx, qword [r13 + 0x60]
lea rcx, [rax + 0x10]
mov qword [rax + 8], rbp
mov qword [rax], rdx
mov qword [r13 + 0x60], rax
test r12, r12
je 0x6e7d08
mov r8, qword [r12 - 8]
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rcx, rax
movzx edx, word [rsi + 0x3c]
lea rax, [rdi + rdi*4]
mov qword [r14 + 0x58], rcx
lea r12, [rcx + rax*4]
cmp r15d, edx
jge 0x6e7e45
cmp dword [rsp + 0xf0], 1
movsxd rbp, r15d
mov edi, r15d
mov qword [rsp + 0xe0], r14
sbb eax, eax
mov dword [rsp + 0x48], 0
mov r14, qword [rsp + 0x38]
shl rbp, 3
not eax
add eax, 0x27
mov byte [rsp + 0x58], al
mov eax, dword [rsp + 0xf8]
sub eax, r15d
mov dword [rsp + 0x50], eax
jmp 0x6e7d77
add edi, 1
add rbp, 8
cmp edx, edi
jle 0x6e7e3d
mov rax, qword [rsi + 0x48]
mov rax, qword [rax + rbp]
cmp qword [rax], rbx
jne 0x6e7d68
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x40], 1
mov r8d, dword [rsp + 0x7c]
lea r13d, [rax + rdi]
je 0x6e8120
mov rcx, qword [rsp + 0x30]
xor r9d, r9d
test rcx, rcx
je 0x6e7db9
movsxd rax, dword [rsp + 0x48]
mov r9d, dword [rcx + rax*4]
lea eax, [rax + 1]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x20], r13d
mov edx, 0x5e
mov rcx, r14
call fcn.007ff320
mov dword [r12 + 4], eax
movsxd rax, dword [r14 + 0x90]
cmp eax, dword [r14 + 0x94]
jge 0x6e8100
lea edx, [rax + 1]
mov dword [r14 + 0x90], edx
lea rdx, [rax + rax*2]
mov rax, qword [r14 + 0x88]
lea rax, [rax + rdx*8]
mov dword [rax + 4], r13d
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0x32
cmp r15d, edi
je 0x6e80a0
mov byte [r12 + 0x10], 0xb9
movzx edx, word [rsi + 0x3c]
add edi, 1
add r12, 0x14
add rbp, 8
cmp edx, edi
jg 0x6e7d77
mov r14, qword [rsp + 0xe0]
test r15d, r15d
jle 0x6e7e57
test dword [rsi + 0x38], 0x100400
je 0x6e8267
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x6e7e74
mov rdx, rax
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rax]
call fcn.007adee0
mov r12d, dword [rsp + 0xf8]
jmp 0x6e7b74
mov rax, qword [rsp + 0xd0]
mov rdx, rbx
mov rdi, qword [rax]
mov rcx, rdi
mov qword [rsp + 0x50], rdi
call fcn.006f4d60
cmp byte [rdi + 0x67], 0
mov qword [rsp + 0x30], rax
jne 0x6e8166
mov rdi, qword [rax + 0x20]
test rdi, rdi
je 0x6e82e4
movsxd rax, r15d
mov dword [rsp + 0x6c], r12d
xor r10d, r10d
shl rax, 3
mov dword [rsp + 0xe8], r15d
mov r15, rdi
mov qword [rsp + 0x58], rax
mov rax, rdi
mov r11, qword [r15 + 0x20]
mov qword [rsp + 0xe0], r14
cmp r15, rax
je 0x6e8084
nop word cs:[rax + rax]
movzx edx, word [rsi + 0x3c]
cmp dword [rsp + 0xe8], edx
jge 0x6e82d1
xor r14d, r14d
mov qword [rsp + 0x48], r15
mov rbp, qword [rsp + 0x58]
xor r13d, r13d
mov edi, dword [rsp + 0xe8]
mov r15, r11
mov r9, r14
jmp 0x6e7f3f
add edi, 1
add rbp, 8
cmp edi, edx
jge 0x6e7ff8
mov rax, qword [rsi + 0x48]
mov rax, qword [rax + rbp]
cmp rbx, qword [rax]
jne 0x6e7f30
movsxd r12, dword [rax + 0x24]
shl r12, 5
lea r14, [r15 + r12]
mov r8, qword [r14 - 0x18]
test r8, r8
je 0x6e7f30
test r13, r13
je 0x6e8238
movsxd rax, dword [r13]
cmp eax, dword [r13 + 4]
jge 0x6e81d0
lea edx, [rax + 1]
shl rax, 5
add rax, r13
mov dword [r13], edx
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0
mov qword [rax + 8], r8
mov qword [r14 - 0x18], 0
test r10, r10
je 0x6e8188
add r12, r10
mov rdx, r9
mov qword [rsp + 0x40], r10
add edi, 1
mov r8, qword [r12 - 0x18]
mov rcx, qword [rsp + 0xd0]
add rbp, 8
call fcn.007b97c0
mov r10, qword [rsp + 0x40]
mov qword [r12 - 0x18], 0
movzx edx, word [rsi + 0x3c]
mov r9, rax
cmp edi, edx
jl 0x6e7f3f
nop dword [rax]
mov r11, r15
mov r15, qword [rsp + 0x48]
mov r14, r9
test r11, r11
je 0x6e801f
mov rcx, qword [rsp + 0x50]
mov rdx, r11
mov qword [rsp + 0x40], r10
call fcn.006f5890
mov r10, qword [rsp + 0x40]
test r10, r10
je 0x6e803e
mov rcx, qword [rsp + 0x50]
mov rdx, r10
call fcn.006f5890
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
mov qword [rax + 0x20], r14
mov qword [r15 + 0x20], r13
test r14, r14
je 0x6e8051
cmp dword [r14], 1
je 0x6e8200
mov rdx, qword [r15 + 0x48]
test rdx, rdx
jne 0x6e8198
mov r15, qword [r15 + 0x50]
test r15, r15
je 0x6e8287
mov rax, qword [rsp + 0x30]
mov r11, qword [r15 + 0x20]
xor r10d, r10d
mov rax, qword [rax + 0x20]
cmp r15, rax
jne 0x6e7f00
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
mov r10, qword [rax + 0x20]
jmp 0x6e7f00
mov eax, dword [rsp + 0x7c]
mov dword [r12], eax
movzx eax, byte [rsp + 0x58]
mov byte [r12 + 0x10], al
test r15d, r15d
jle 0x6e8158
mov eax, dword [rsp + 0xf8]
mov dword [r12 + 0xc], r15d
sub eax, r15d
mov dword [r12 + 8], eax
jmp 0x6e7e26
mov r9d, dword [rsp + 0xf8]
xor r8d, r8d
mov edx, 0x4b
mov rcx, rsi
call fcn.007ff390
mov r12d, dword [rsp + 0xf8]
jmp 0x6e7b74
xor r9d, r9d
mov r8d, r13d
mov edx, 0x32
mov rcx, r14
mov dword [rsp + 0x20], 0
call fcn.0074a520
jmp 0x6e7e17
mov r9d, r13d
mov edx, 0x87
mov rcx, r14
call fcn.007ff390
mov dword [r12 + 4], eax
jmp 0x6e7dd0
mov qword [r14 + 0x58], 0
mov dword [r14 + 0x50], 0
jmp 0x6e7e57
mov dword [r12 + 0xc], 0
jmp 0x6e7e26
cmp qword [rsp + 0x30], 0
jne 0x6e82a7
mov dword [rsp + 0x40], 5
mov r8d, dword [rsp + 0x7c]
jmp 0x6e7c3a
movzx edx, word [rsi + 0x3c]
jmp 0x6e7f30
mov ecx, dword [rdx]
test ecx, ecx
jle 0x6e805e
sub ecx, 1
lea rax, [rdx + 0x20]
shl rcx, 5
lea rdx, [rdx + rcx + 0x40]
nop word [rax + rax]
xor ecx, ecx
add rax, 0x20
mov word [rax - 0x20], cx
cmp rdx, rax
jne 0x6e81b8
jmp 0x6e805e
mov rax, qword [rsp + 0xd0]
mov rdx, r13
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x40], r10
mov rcx, qword [rax]
call fcn.007b9830
mov r10, qword [rsp + 0x40]
mov r9, qword [rsp + 0x60]
mov r13, rax
jmp 0x6e7fa2
mov rax, qword [rsp + 0x30]
mov rdi, qword [r14 + 8]
mov qword [r14 + 8], 0
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x6e8224
mov rcx, qword [rsp + 0x50]
call fcn.007b85b0
mov rax, qword [rsp + 0x30]
mov qword [rax + 0x10], rdi
jmp 0x6e8051
mov rax, qword [rsp + 0xd0]
mov rdx, r8
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x40], r10
mov rcx, qword [rax]
call fcn.007b9910
mov r10, qword [rsp + 0x40]
mov r9, qword [rsp + 0x60]
mov r13, rax
jmp 0x6e7fa2
mov dword [rsp + 0x20], r15d
mov rcx, qword [rsp + 0x38]
xor r9d, r9d
mov edx, 0x7d
mov r8d, dword [r14 + 8]
call fcn.007ff320
jmp 0x6e7e57
mov rax, qword [rsp + 0x50]
mov r12d, dword [rsp + 0x6c]
mov r14, qword [rsp + 0xe0]
mov r15d, dword [rsp + 0xe8]
cmp byte [rax + 0x67], 0
je 0x6e82e4
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x50]
call fcn.007b85b0
mov dword [rsp + 0x40], 5
mov r8d, dword [rsp + 0x7c]
mov qword [rsp + 0x30], 0
jmp 0x6e7c3a
xor r14d, r14d
xor r13d, r13d
jmp 0x6e8003
xor r12d, r12d
jmp 0x6e7a50
mov rax, qword [rsp + 0xd0]
movsxd rdx, r12d
shl rdx, 2
mov rcx, qword [rax]
call fcn.007ae150
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0xd0]
xor r9d, r9d
mov rdi, rax
lea rax, [rsp + 0x7c]
mov r8d, 4
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
call fcn.007bb210
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x7c]
mov dword [rbx + 0x2c], eax
call fcn.007b85b0
mov qword [rsp + 0x30], rdi
mov r8d, dword [rsp + 0x7c]
jmp 0x6e7c1e
mov rax, qword [rcx + 0x20]
mov eax, dword [rax]
jmp 0x6e7aba