Function at 0x1800840f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov dword [rax + 0x10], edx
push rbp
push rsi
push rdi
sub rsp, 0x60
mov edi, r8d
mov rsi, rcx
test rcx, rcx
je 0x180084926
cmp qword [rcx + 0x80], 0
je 0x180084926
mov rbp, qword [rcx + 0x78]
test rbp, rbp
je 0x180084926
mov rcx, qword [rbp + 0xf0]
mov qword [rax + 0x18], rbx
mov qword [rax - 0x20], r12
mov qword [rax - 0x28], r13
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
test rcx, rcx
je 0x18008417c
test byte [rcx + 8], 1
je 0x18008417c
mov rax, qword [rbp + 8]
mov rdx, qword [rbp + 0x78]
mov r8, qword [rax + 0x98]
test rdx, rdx
je 0x18008416f
mov rcx, r8
call qword [r8 + 0x10]
mov rcx, qword [rbp + 0xf0]
xor r14d, r14d
mov qword [rbp + 0x78], r14
and dword [rcx + 8], 0xfffffffe
jmp 0x180084183
xor r14d, r14d
mov qword [rbp + 0x78], r14
xor eax, eax
lea r13, [rbp + 0x98]
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x30], xmm0
mov ecx, edi
movups xmmword [rbp + 0x40], xmm0
or ecx, 0x801
movups xmmword [r13], xmm1
movups xmmword [r13 + 0x10], xmm1
mov qword [r13 + 0x20], rax
mov qword [rbp + 0x68], rax
mov byte [rbp + 0x82], al
mov qword [rbp + 0x90], rax
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0x50], rax
mov dword [rbp + 0x70], r14d
mov dword [rbp + 0xc0], r14d
mov qword [rbp + 0xc8], r14
mov qword [rbp + 0xd0], r14
mov qword [rbp + 0xe8], r14
mov dword [rbp + 0x60], r14d
mov dword [rbp + 0xe0], r14d
mov rbx, qword [rsi + 0x90]
mov rax, qword [rbx + 8]
mov r12, qword [rax + 0x130]
mov eax, edi
and eax, 0x400
cmove ecx, edi
test cl, 1
je 0x18008421e
and ecx, 0xfffffffb
or ecx, 0xa
mov r15d, ecx
mov eax, ecx
and r15d, 0xfffffffb
and eax, 0x400000
cmove r15d, ecx
test r12, r12
je 0x180084271
test r15d, 0x8002
jne 0x180084271
mov eax, dword [rsi + 8]
and eax, 0x2001
cmp eax, 1
jne 0x180084271
bt r15d, 0xb
jb 0x180084341
mov rax, qword [rsi + 0xd0]
cmp dword [rax + 8], 0
mov ecx, dword [rax]
jne 0x180084339
test ecx, ecx
jne 0x180084341
mov rax, qword [rbx + 0x18]
mov r9d, r15d
mov r8d, dword [rsp + 0x88]
mov rcx, rbp
mov rdx, qword [rsi + 0x80]
call qword [rax + 0x78]
mov dword [rsp + 0x80], eax
test eax, eax
jne 0x1800846b5
cmp dword [rbp + 0x60], 0x6f75746c
jne 0x1800844a9
mov rcx, r13
call sym.Deceitik.dll_FT_Outline_Check
mov dword [rsp + 0x80], eax
test eax, eax
jne 0x1800846b5
test r15b, 2
jne 0x1800844a9
mov ecx, dword [rbp + 0x38]
mov eax, r15d
mov edi, dword [rbp + 0x44]
mov ebx, ecx
mov edx, dword [rbp + 0x3c]
and ebx, 0xffffffc0
mov r8d, dword [rbp + 0x30]
mov r10d, edi
and r10d, 0xffffffc0
mov dword [rsp + 0x98], ecx
mov dword [rbp + 0x44], r10d
mov r12d, dword [rbp + 0x48]
lea ecx, [rdx + 0x3f]
mov r9d, dword [rbp + 0x34]
and ecx, 0xffffffc0
mov dword [rbp + 0x38], ebx
mov r11d, r12d
and r11d, 0xffffffc0
shr eax, 4
mov dword [rbp + 0x3c], ecx
mov dword [rbp + 0x48], r11d
and al, 1
je 0x180084471
lea ecx, [r9 + 0x3f]
add ecx, r12d
lea eax, [r8 + 0x3f]
and ecx, 0xffffffc0
add eax, edi
sub ecx, r11d
and eax, 0xffffffc0
sub eax, r10d
jmp 0x18008448b
test ecx, ecx
jne 0x180084271
test r15b, 0x20
jne 0x1800843f0
mov rax, qword [rbx]
test dword [rax], 0x400
je 0x1800843f0
mov r8, qword [rax + 0x30]
mov rcx, r14
test r8, r8
je 0x180084376
lea rdx, str.font_format
mov rcx, rbx
call r8
mov rcx, rax
lea rdx, str.Type_1
call fcn.1800edb4c
test rax, rax
je 0x180084391
cmp dword [rbx + 0x38], 1
jne 0x180084391
mov cl, 1
jmp 0x180084393
xor cl, cl
mov eax, r15d
and eax, 0xf0000
cmp eax, 0x10000
jne 0x1800843b1
mov rax, qword [rbx]
test dword [rax], 0x800
jne 0x1800843b1
test cl, cl
je 0x1800843f0
test byte [rsi + 8], 8
je 0x180084271
cmp dword [rsi + 0x434], 0
je 0x180084271
cmp word [rsi + 0x18a], 0
jne 0x180084271
cmp dword [rsi + 0x3b0], 0
jne 0x180084271
cmp dword [rsi + 0x3c0], 0
jne 0x180084271
test byte [rsi + 8], 2
je 0x180084431
test r15b, 8
jne 0x180084431
mov rax, qword [rbx + 0x18]
mov r9d, r15d
mov r8d, dword [rsp + 0x88]
bts r9d, 0xe
mov rdx, qword [rsi + 0x80]
mov rcx, rbp
call qword [rax + 0x78]
mov dword [rsp + 0x80], eax
test eax, eax
jne 0x180084431
cmp dword [rbp + 0x60], 0x62697473
je 0x1800844a9
mov rdi, qword [rsi + 0xd0]
mov rdx, rbp
mov r9d, dword [rsp + 0x88]
mov rcx, r12
mov dword [rsp + 0x20], r15d
mov ebx, dword [rdi + 0x18]
mov dword [rdi + 0x18], r14d
mov rax, qword [r12]
mov r8, qword [rsi + 0x80]
mov r10, qword [rax + 0x18]
call qword [r10 + 0x18]
mov dword [rsp + 0x80], eax
mov dword [rdi + 0x18], ebx
jmp 0x1800844a9
mov eax, dword [rsp + 0x98]
sub edx, r9d
add eax, 0x3f
and edx, 0xffffffc0
add eax, r8d
sub ecx, edx
and eax, 0xffffffc0
sub eax, ebx
mov dword [rbp + 0x30], eax
mov dword [rbp + 0x34], ecx
mov eax, dword [rbp + 0x40]
add eax, 0x20
and eax, 0xffffffc0
mov dword [rbp + 0x40], eax
mov eax, dword [rbp + 0x4c]
add eax, 0x20
and eax, 0xffffffc0
mov dword [rbp + 0x4c], eax
lea rdi, [rbp + 0x58]
test r15b, 0x10
je 0x1800844bb
mov eax, dword [rbp + 0x4c]
mov ecx, r14d
jmp 0x1800844c1
mov ecx, dword [rbp + 0x40]
mov eax, r14d
mov dword [rdi], ecx
mov dword [rbp + 0x5c], eax
bt r15d, 0xd
jb 0x180084502
test byte [rsi + 8], 1
je 0x180084502
mov rbx, qword [rsi + 0x80]
mov r8d, 0x40
mov ecx, dword [rbp + 0x50]
mov edx, dword [rbx + 0x1c]
call sym.Deceitik.dll_FT_MulDiv
mov ecx, dword [rbp + 0x54]
mov r8d, 0x40
mov dword [rbp + 0x50], eax
mov edx, dword [rbx + 0x20]
call sym.Deceitik.dll_FT_MulDiv
mov dword [rbp + 0x54], eax
bt r15d, 0xb
jb 0x180084643
mov r12, qword [rsi + 0xd0]
mov r8d, dword [r12 + 0x18]
test r8d, r8d
je 0x180084643
mov rax, qword [rbp + 8]
mov rcx, qword [rax + 0x90]
mov r9, qword [rcx + 8]
mov r10, qword [r9 + 0x128]
test r10, r10
je 0x180084546
mov eax, dword [rbp + 0x60]
cmp dword [r10 + 0x20], eax
je 0x18008457c
mov rax, qword [r9 + 0x118]
mov r10, r14
mov edx, dword [rbp + 0x60]
test rax, rax
je 0x180084577
nop dword [rax + rax]
mov rcx, qword [rax + 0x10]
cmp dword [rcx + 0x20], edx
je 0x180084574
mov rax, qword [rax + 8]
test rax, rax
jne 0x180084560
jmp 0x180084577
mov r10, rcx
test r10, r10
je 0x18008459a
mov rax, qword [r10 + 0x18]
lea r9, [r12 + 0x10]
mov r8, r12
mov rdx, rbp
mov rcx, r10
call qword [rax + 0x48]
mov dword [rsp + 0x80], eax
jmp 0x1800845fc
cmp edx, 0x6f75746c
jne 0x1800845fc
test r8b, 1
je 0x1800845b8
mov rdx, r12
mov rcx, r13
call sym.Deceitik.dll_FT_Outline_Transform
mov r8d, dword [r12 + 0x18]
test r8b, 2
je 0x1800845fc
mov r9d, dword [r12 + 0x14]
mov r10d, dword [r12 + 0x10]
test r13, r13
je 0x1800845fc
movzx r8d, r14w
mov rdx, qword [r13 + 8]
cmp r14w, word [r13 + 2]
jge 0x1800845fc
nop dword [rax]
add dword [rdx], r10d
inc r8w
add dword [rdx + 4], r9d
lea rdx, [rdx + 8]
movsx eax, word [r13 + 2]
movzx ecx, r8w
cmp ecx, eax
jl 0x1800845e0
test rdi, rdi
je 0x180084643
mov ebx, dword [rdi + 4]
mov edi, dword [rdi]
mov ecx, edi
mov edx, dword [r12 + 8]
call sym.Deceitik.dll_FT_MulFix
mov edx, dword [r12 + 0xc]
mov ecx, ebx
mov esi, eax
call sym.Deceitik.dll_FT_MulFix
mov edx, dword [r12 + 4]
mov ecx, ebx
add esi, eax
call sym.Deceitik.dll_FT_MulFix
mov edx, dword [r12]
mov ecx, edi
mov ebx, eax
call sym.Deceitik.dll_FT_MulFix
add ebx, eax
mov dword [rbp + 0x5c], esi
mov dword [rbp + 0x58], ebx
mov eax, dword [rsp + 0x88]
mov esi, dword [rsp + 0x80]
mov dword [rbp + 0x18], eax
mov rax, qword [rbp + 0xf0]
mov dword [rax + 0x30], r15d
test esi, esi
jne 0x1800846b7
test r15b, 1
jne 0x1800846b7
mov eax, dword [rbp + 0x60]
cmp eax, 0x62697473
je 0x1800846b7
cmp eax, 0x636f6d70
je 0x1800846b7
mov edx, r15d
lea ebx, [rsi + 2]
sar edx, 0x10
and edx, 0xf
jne 0x180084690
bt r15d, 0xc
cmovb edx, ebx
test r15b, 4
je 0x1800846e4
mov rax, qword [rbp + 8]
test rax, rax
je 0x1800846dd
mov rax, qword [rax + 0x90]
mov r8d, edx
mov rdx, rbp
mov rcx, qword [rax + 8]
call fcn.1800875a0
mov esi, eax
mov r15, qword [rsp + 0x40]
mov eax, esi
mov r14, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret
mov esi, 6
jmp 0x1800846b7
cmp eax, 0x6f75746c
jne 0x1800846b7
test r13, r13
je 0x18008476e
movsx rax, word [r13 + 2]
test ax, ax
jne 0x180084705
mov r11d, r14d
mov r9d, r14d
mov r10d, r14d
jmp 0x180084782
mov r8, qword [r13 + 8]
mov r9d, dword [r8]
lea r15, [r8 + rax*8]
mov r10d, dword [r8 + 4]
mov r14d, r9d
add r8, 8
mov r11d, r10d
cmp r8, r15
jae 0x180084782
nop dword [rax]
nop word [rax + rax]
mov eax, dword [r8]
mov edi, eax
mov ecx, dword [r8 + 4]
cmp eax, r14d
cmovge edi, r14d
cmp eax, r9d
mov r14d, edi
cmovle eax, r9d
cmp ecx, r11d
mov r9d, eax
mov eax, ecx
cmovge eax, r11d
cmp ecx, r10d
mov r11d, eax
cmovle ecx, r10d
add r8, 8
mov r10d, ecx
cmp r8, r15
jb 0x180084730
jmp 0x180084782
mov r10d, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x38]
mov r11d, dword [rsp + 0x34]
mov r14d, dword [rsp + 0x30]
mov edi, r14d
mov r12d, r11d
mov r15d, r9d
sar edi, 6
mov r13d, r10d
sar r12d, 6
and r14d, 0x3f
sar r15d, 6
and r11d, 0x3f
sar r13d, 6
and r9d, 0x3f
mov dword [rsp + 0x30], r14d
and r10d, 0x3f
mov dword [rsp + 0x34], r11d
mov dword [rsp + 0x38], r9d
mov dword [rsp + 0x3c], r10d
test edx, edx
je 0x1800847f5
sub edx, 1
je 0x1800847f5
sub edx, 1
je 0x180084867
sub edx, 1
je 0x18008485c
cmp edx, 1
jne 0x1800847f5
lea ebx, [rdx + 5]
lea r8d, [rdx + 3]
mov rdx, rbp
lea rcx, [rsp + 0x30]
call fcn.18008b210
mov edx, dword [rsp + 0x3c]
mov r10d, ebx
mov r8d, dword [rsp + 0x30]
add edx, 0x3f
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x34]
add ecx, 0x3f
sar ecx, 6
sar edx, 6
add edx, r13d
sar r8d, 6
add r8d, edi
sar eax, 6
sub ecx, r8d
mov r9d, edx
sub r9d, eax
add ecx, r15d
sub r9d, r12d
sub r10d, 1
je 0x1800848e4
sub r10d, 1
je 0x180084855
sub r10d, 3
je 0x18008491b
cmp r10d, 1
jne 0x180084855
lea r9d, [r9 + r9*2]
mov eax, ecx
jmp 0x1800848ed
mov ebx, 5
lea r8d, [rbx - 2]
jmp 0x1800847e8
add r9d, 0x20
lea edx, [r14 + 0x1f]
mov r8d, edx
mov ecx, r9d
shr r8d, 6
mov ebx, 1
shr ecx, 6
add r8d, edi
add ecx, r15d
cmp r8d, ecx
jne 0x1800848a3
and r9d, 0x3f
and edx, 0x3f
add r9d, edx
cmp r9d, 0x3f
jae 0x1800848a1
dec r8d
jmp 0x1800848a3
inc ecx
lea r9d, [r11 + 0x1f]
add r10d, 0x20
mov r11d, r9d
mov edx, r10d
shr r11d, 6
shr edx, 6
add r11d, r12d
add edx, r13d
cmp r11d, edx
jne 0x1800848db
and r10d, 0x3f
and r9d, 0x3f
add r10d, r9d
cmp r10d, 0x3f
jae 0x1800848d9
dec r11d
jmp 0x1800848db
inc edx
sub ecx, r8d
mov r9d, edx
sub r9d, r11d
lea eax, [rcx + 0xf]
sar eax, 3
and eax, 0xfffffffe
mov dword [rbp + 0x94], edx
mov edx, 0x100
mov dword [rbp + 0x90], r8d
mov word [rbp + 0x80], dx
mov byte [rbp + 0x82], bl
mov dword [rbp + 0x6c], ecx
mov dword [rbp + 0x68], r9d
mov dword [rbp + 0x70], eax
jmp 0x1800846b7
lea ecx, [rcx + rcx*2]
lea eax, [rcx + 3]
and eax, 0xfffffffc
jmp 0x1800848ed
mov eax, 0x23
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret