Function at 0x69628c10
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.6962ecd0
lea r8, str.loca
mov edx, r12d
mov rcx, rsi
mov r15d, eax
call fcn.6962ecd0
lea r8, [0x69637066]
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x18], eax
mov dword [rsp + 0x2c], eax
call fcn.6962ecd0
lea r8, str.glyf
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x1c], eax
mov ebp, eax
call fcn.6962ecd0
lea r8, str.hhea
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x20], eax
mov r13d, eax
call fcn.6962ecd0
lea r8, str.hmtx
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x24], eax
mov edi, eax
call fcn.6962ecd0
lea r8, str.kern
mov edx, r12d
mov rcx, rsi
mov dword [rbx + 0x28], eax
mov r14d, eax
call fcn.6962ecd0
mov edx, r12d
lea r8, str.GPOS
mov rcx, rsi
mov dword [rbx + 0x2c], eax
call fcn.6962ecd0
test ebp, ebp
mov dword [rbx + 0x30], eax
sete al
test edi, edi
sete dl
or eax, edx
test r15d, r15d
sete dl
or al, dl
jne 0x69628d1a
test r14d, r14d
mov r9d, dword [rsp + 0x2c]
jne 0x69628d38
xor r13d, r13d
mov eax, r13d
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r13d, r13d
je 0x69628e20
test r9d, r9d
je 0x69628d1a
mov edx, r12d
lea r8, [0x69637089]
mov rcx, rsi
call fcn.6962ecd0
mov edx, 0xffff
test eax, eax
jne 0x69629028
mov eax, r15d
mov dword [rbx + 0x14], edx
lea rdx, [rsi + rax + 2]
mov dword [rbx + 0x34], 0xffffffff
movzx eax, byte [rdx]
movzx edx, byte [rdx + 1]
mov dword [rbx + 0x38], 0
shl eax, 8
add ax, dx
je 0x69628d1a
lea edx, [r15 + 4]
movzx eax, ax
lea r9d, [rdx + rax*8]
jmp 0x69628dd4
cmp ax, 3
jne 0x69628dc8
lea rcx, [rsi + r8 + 2]
movzx eax, byte [rcx]
movzx ecx, byte [rcx + 1]
shl eax, 8
add eax, ecx
cmp ax, 1
je 0x69628dea
cmp ax, 0xa
je 0x69628dea
nop dword [rax + rax]
add edx, 8
cmp edx, r9d
je 0x69628ff0
mov r8d, edx
lea rcx, [rsi + r8]
movzx eax, byte [rcx]
movzx ecx, byte [rcx + 1]
shl eax, 8
add ax, cx
jne 0x69628da0
lea r10, [rsi + r8 + 4]
movzx ecx, byte [r10]
movzx eax, byte [r10 + 1]
shl ecx, 0x18
shl eax, 0x10
lea ecx, [rcx + rax]
movzx eax, byte [r10 + 2]
shl eax, 8
add eax, ecx
movzx ecx, byte [r10 + 3]
add eax, ecx
add eax, r15d
mov dword [rbx + 0x38], eax
jmp 0x69628dc8
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.6962ecd0
test eax, eax
je 0x69628d1d
mov eax, eax
xor ecx, ecx
mov dword [rbx + 0x4c], 0x20000000
mov qword [rbx + 0x80], 0
add rax, rsi
mov qword [rbx + 0x40], rax
movdqu xmm0, xmmword [rbx + 0x40]
mov qword [rbx + 0x88], 0
movups xmmword [rsp + 0x70], xmm0
mov edx, dword [rsp + 0x7c]
mov qword [rbx + 0x90], 0
mov qword [rbx + 0x98], 0
cmp edx, 2
jg 0x69629048
cmp edx, ecx
lea r14, [rsp + 0x50]
lea rdi, [rsp + 0x70]
cmovg edx, ecx
mov rcx, r14
lea rbp, [rsp + 0x80]
mov dword [rsp + 0x78], edx
mov rdx, rdi
call fcn.6962dee0
mov rcx, r14
call fcn.6962dee0
mov r8d, dword [rsp + 0x5c]
xor r9d, r9d
mov rcx, r14
mov rdx, qword [rsp + 0x50]
call fcn.6962e040
movdqu xmm1, xmmword [rsp + 0x50]
mov rdx, rdi
mov rcx, r14
movups xmmword [rsp + 0x80], xmm1
call fcn.6962dee0
mov rcx, r14
call fcn.6962dee0
movdqu xmm2, xmmword [rsp + 0x50]
lea r8, [rsp + 0x64]
mov rcx, rbp
mov edx, 0x11
movups xmmword [rbx + 0x60], xmm2
call fcn.6962eb60
lea r8, [rsp + 0x60]
mov edx, 0x106
mov rcx, rbp
call fcn.6962eb60
lea r8, [rsp + 0x68]
mov edx, 0x124
mov rcx, rbp
call fcn.6962eb60
lea r8, [rsp + 0x6c]
mov edx, 0x125
mov rcx, rbp
call fcn.6962eb60
movdqu xmm3, xmmword [rsp + 0x70]
lea rdx, [rsp + 0x40]
mov rcx, r14
movdqu xmm4, xmmword [rsp + 0x80]
lea r8, [rsp + 0x30]
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0x30], xmm4
call fcn.6962ed80
movdqu xmm5, xmmword [rsp + 0x50]
cmp dword [rsp + 0x60], 2
movups xmmword [rbx + 0x70], xmm5
jne 0x69628d1d
mov eax, dword [rsp + 0x64]
test eax, eax
je 0x69628d1d
mov edx, dword [rsp + 0x68]
test edx, edx
jne 0x69629058
mov edx, dword [rsp + 0x7c]
cmp eax, edx
jg 0x69628fca
test eax, eax
cmovns edx, eax
mov dword [rsp + 0x78], edx
mov rcx, r14
mov rdx, rdi
call fcn.6962dee0
movdqu xmm0, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x50], xmm0
jmp 0x69628d46
mov eax, dword [rbx + 0x38]
test eax, eax
je 0x69628d1a
movsxd rax, dword [rbx + 0x1c]
mov r13d, 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
jmp 0x69628d1d
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
jmp 0x69628d65
movzx ecx, byte [rax + 2]
jmp 0x69628eaf
mov ecx, dword [rsp + 0x6c]
test ecx, ecx
je 0x69628d1d
mov eax, dword [rsp + 0x7c]
cmp edx, eax
jg 0x69629071
test edx, edx
cmovns eax, edx
mov rdx, rdi
mov rcx, r14
mov dword [rsp + 0x78], eax
call fcn.6962dee0
mov edx, dword [rsp + 0x7c]
movsxd rax, dword [rsp + 0x6c]
movdqu xmm1, xmmword [rsp + 0x50]
mov ecx, edx
mov r9d, eax
sub ecx, eax
shr r9d, 0x1f
movups xmmword [rbx + 0x80], xmm1
mov r8d, ecx
mov r11d, r9d
shr r8d, 0x1f
or r11b, r8b
jne 0x696290b4
cmp edx, eax
jge 0x696290d7
xor eax, eax
mov qword [rbx + 0x90], rax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x98], 0
mov dword [rbx + 0x9c], r13d
jmp 0x69628fc1
add rax, qword [rsp + 0x70]
mov r13d, ecx
jmp 0x696290b6