Function at 0x6f9ca390
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, 0x98
mov qword [rcx + 8], rdx
mov rsi, rdx
mov r12d, r8d
mov rbx, rcx
mov dword [rcx + 0x10], r8d
mov edx, r12d
lea r8, str.cmap
mov qword [rcx + 0x40], 0
mov qword [rcx + 0x48], 0
mov rcx, rsi
call fcn.6f9cc560
lea r8, str.loca
mov edx, r12d
mov rcx, rsi
mov edi, eax
call fcn.6f9cc560
lea r8, [0x6fa25d36]
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x18], eax
mov ebp, eax
call fcn.6f9cc560
lea r8, str.glyf
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x1c], eax
mov dword [rsp + 0x2c], eax
call fcn.6f9cc560
lea r8, str.hhea
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x20], eax
mov r13d, eax
mov r15d, eax
call fcn.6f9cc560
lea r8, str.hmtx
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x24], eax
mov dword [rsp + 0x20], eax
call fcn.6f9cc560
lea r8, str.kern
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x28], eax
mov r14d, eax
call fcn.6f9cc560
mov edx, r12d
lea r8, str.GPOS
mov rcx, rsi
mov dword [rbx + 0x2c], eax
call fcn.6f9cc560
mov r10d, dword [rsp + 0x2c]
mov r9d, dword [rsp + 0x20]
mov dword [rbx + 0x30], eax
test r10d, r10d
sete al
test r9d, r9d
sete dl
or eax, edx
test edi, edi
sete dl
or al, dl
jne 0x6f9ca4a4
test r14d, r14d
jne 0x6f9ca4ac
xor r15d, r15d
jmp 0x6f9ca7d1
test r13d, r13d
je 0x6f9ca4bb
test ebp, ebp
jne 0x6f9ca6ed
jmp 0x6f9ca4a4
lea r8, str.CFF
mov edx, r12d
mov rcx, rsi
mov dword [rsp + 0x60], 2
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
call fcn.6f9cc560
test eax, eax
je 0x6f9ca7d1
mov eax, eax
lea r13, [rsp + 0x70]
mov dword [rbx + 0x4c], 0x20000000
mov edx, 2
add rax, rsi
mov rcx, r13
mov qword [rbx + 0x80], 0
lea r14, [rsp + 0x50]
mov qword [rbx + 0x40], rax
movups xmm0, xmmword [rbx + 0x40]
lea rbp, [rsp + 0x80]
mov qword [rbx + 0x88], 0
mov qword [rbx + 0x90], 0
mov qword [rbx + 0x98], 0
movups xmmword [rsp + 0x70], xmm0
call fcn.6f9cbf50
call fcn.6f9cbed0
movzx edx, al
call fcn.6f9cbf30
mov rdx, r13
mov rcx, r14
call fcn.6f9cbf60
mov rdx, r13
mov rcx, r14
call fcn.6f9cbf60
lea r10, [rsp + 0x40]
xor r8d, r8d
mov rcx, r14
movups xmm1, xmmword [rsp + 0x50]
mov rdx, r10
mov qword [rsp + 0x20], r10
movups xmmword [rsp + 0x40], xmm1
call fcn.6f9cbfd0
movups xmm2, xmmword [rsp + 0x50]
mov rdx, r13
mov rcx, r14
movups xmmword [rsp + 0x80], xmm2
call fcn.6f9cbf60
mov rdx, r13
mov rcx, r14
call fcn.6f9cbf60
movups xmm3, xmmword [rsp + 0x50]
lea r9, [rsp + 0x64]
mov rcx, rbp
mov r8d, 1
mov edx, 0x11
movups xmmword [rbx + 0x60], xmm3
call fcn.6f9cc440
lea r9, [rsp + 0x60]
mov edx, 0x106
mov rcx, rbp
mov r8d, 1
call fcn.6f9cc440
lea r9, [rsp + 0x68]
mov edx, 0x124
mov rcx, rbp
mov r8d, 1
call fcn.6f9cc440
lea r9, [rsp + 0x6c]
mov edx, 0x125
mov rcx, rbp
mov r8d, 1
call fcn.6f9cc440
mov r10, qword [rsp + 0x20]
movups xmm4, xmmword [rsp + 0x70]
mov rcx, r14
movups xmm5, xmmword [rsp + 0x80]
lea r8, [rsp + 0x30]
mov rdx, r10
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0x30], xmm5
call fcn.6f9cc5e0
movups xmm0, xmmword [rsp + 0x50]
cmp dword [rsp + 0x60], 2
movups xmmword [rbx + 0x70], xmm0
jne 0x6f9ca7d1
cmp dword [rsp + 0x64], 0
je 0x6f9ca7d1
mov edx, dword [rsp + 0x68]
test edx, edx
je 0x6f9ca6cd
cmp dword [rsp + 0x6c], 0
je 0x6f9ca7d1
mov rcx, r13
call fcn.6f9cbf30
mov rdx, r13
mov rcx, r14
call fcn.6f9cbf60
movups xmm1, xmmword [rsp + 0x50]
mov rdx, r13
mov rcx, r14
mov r8d, dword [rsp + 0x6c]
mov r9d, dword [rsp + 0x7c]
movups xmmword [rbx + 0x80], xmm1
sub r9d, dword [rsp + 0x6c]
call fcn.6f9cbef0
movups xmm2, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x90], xmm2
mov edx, dword [rsp + 0x64]
mov rcx, r13
call fcn.6f9cbf30
mov rdx, r13
mov rcx, r14
call fcn.6f9cbf60
movups xmm3, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x50], xmm3
mov edx, r12d
lea r8, str.maxp
mov rcx, rsi
call fcn.6f9cc560
mov edx, 0xffff
test eax, eax
je 0x6f9ca71e
mov eax, eax
lea rax, [rsi + rax + 4]
movzx edx, byte [rax]
movzx eax, byte [rax + 1]
shl edx, 8
add edx, eax
movzx edx, dx
mov eax, edi
mov dword [rbx + 0x14], edx
lea r9d, [rdi + 4]
xor r10d, r10d
lea rax, [rsi + rax + 2]
mov dword [rbx + 0x34], 0xffffffff
movzx r8d, byte [rax]
movzx eax, byte [rax + 1]
mov dword [rbx + 0x38], 0
shl r8d, 8
add r8d, eax
movzx r8d, r8w
cmp r10d, r8d
jge 0x6f9ca7a6
mov edx, r9d
lea rcx, [rsi + rdx]
movzx eax, byte [rcx]
movzx ecx, byte [rcx + 1]
shl eax, 8
add ax, cx
je 0x6f9ca78e
cmp ax, 3
jne 0x6f9ca79d
lea rcx, [rsi + rdx + 2]
movzx eax, byte [rcx]
movzx ecx, byte [rcx + 1]
shl eax, 8
add eax, ecx
cmp ax, 1
je 0x6f9ca78e
cmp ax, 0xa
jne 0x6f9ca79d
lea rcx, [rsi + rdx + 4]
call fcn.6fa18d50
add eax, edi
mov dword [rbx + 0x38], eax
inc r10d
add r9d, 8
jmp 0x6f9ca750
cmp dword [rbx + 0x38], 0
je 0x6f9ca4a4
movsxd rax, dword [rbx + 0x1c]
mov r15d, 1
lea rdx, [rsi + rax + 0x32]
movzx eax, byte [rdx]
movzx edx, byte [rdx + 1]
shl eax, 8
add eax, edx
movzx eax, ax
mov dword [rbx + 0x3c], eax
mov eax, r15d
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret