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

Disassembly:
jmp 0x140014f40
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
mov rdi, rdx
mov r14, rcx
xor ecx, ecx
mov dword [rbp + 0x68], ecx
mov r12d, ecx
mov r15d, ecx
xor al, al
mov byte [rbp + 0x50], al
mov byte [rbp + 0x60], al
mov dword [rsp + 0x44], 4
mov r13d, ecx
mov dword [rsp + 0x40], ecx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rcx
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.14000178f
test al, al
je 0x14001586b
mov esi, dword [rsp + 0x38]
test esi, esi
je 0x140015856
lea rcx, [rsp + 0x30]
call fcn.14000206d
mov rbx, rax
mov r9d, dword [rdi + 0x24]
test r9d, r9d
jle 0x140015147
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x20], eax
mov r8d, dword [rdi + 0x20]
mov edx, esi
mov rcx, rbx
call fcn.1400023a1
mov rbx, rax
lea rax, [0x14007342c]
cmp qword [rbx + 8], rax
jne 0x1400150b6
mov edx, dword [rbx + 0x10]
lea rdi, [r14 + 0x68]
cmp edx, dword [r14 + 0x70]
jl 0x14001500f
add edx, 0x1e
xor r8d, r8d
mov rcx, rdi
call fcn.14000272f
movsxd rcx, dword [rbx + 0x10]
mov rax, qword [rdi]
mov rcx, qword [rax + rcx*8]
test rcx, rcx
je 0x140015029
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
movsxd rcx, dword [rbx + 0x10]
mov rax, qword [rdi]
mov qword [rax + rcx*8], rbx
cmp byte [rbp + 0x50], 0
jne 0x1400150ad
cmp dword [r14 + 0x28], 0
je 0x1400150ad
movsxd rcx, dword [r14 + 0x28]
mov rax, qword [r14 + 0x20]
mov rcx, qword [rax + rcx*8 - 8]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rbx, rax
test rax, rax
je 0x1400150a9
mov ecx, 0x48
call fcn.140001118
mov qword [rbp - 0x38], rax
test rax, rax
je 0x140015086
lea r9, [rbx + 8]
mov r8b, 1
mov rdx, r14
mov rcx, rax
call fcn.1400011d6
mov r13, rax
jmp 0x140015089
xor r13d, r13d
xor eax, eax
mov dword [rsp + 0x40], eax
movsxd rcx, dword [r14 + 0x28]
mov rax, qword [r14 + 0x20]
mov qword [rax + rcx*8 - 8], r13
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
mov byte [rbp + 0x50], 1
mov rdi, qword [rbp + 0x58]
jmp 0x1400155a6
mov rdx, rbx
mov rcx, r14
call fcn.140001500
cmp byte [rbp + 0x60], 0
jne 0x1400155a6
cmp dword [r14 + 0x28], 0
je 0x1400155a6
movsxd rcx, dword [r14 + 0x28]
mov rax, qword [r14 + 0x20]
mov rcx, qword [rax + rcx*8 - 8]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rbx, rax
test rax, rax
je 0x14001513e
mov ecx, 0x48
call fcn.140001118
mov qword [rbp - 0x30], rax
test rax, rax
je 0x14001511b
lea r9, [rbx + 8]
xor r8d, r8d
mov rdx, r14
mov rcx, rax
call fcn.1400011d6
mov r13, rax
jmp 0x14001511e
xor r13d, r13d
xor eax, eax
mov dword [rsp + 0x40], eax
movsxd rcx, dword [r14 + 0x28]
mov rax, qword [r14 + 0x20]
mov qword [rax + rcx*8 - 8], r13
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
mov byte [rbp + 0x60], 1
jmp 0x1400155a6
cmp byte [rax], 0x25
jne 0x140015208
mov ecx, 0x20
call fcn.140001118
mov rdi, rax
mov qword [rbp - 0x28], rax
test rax, rax
je 0x1400151a5
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x30]
call fcn.140002b99
nop
or dword [rbp + 0x68], 1
lea rcx, vtable.Efont::Type1CopyItem.0
mov qword [rdi], rcx
mov rdx, qword [rax + 0x10]
mov ecx, dword [rax + 8]
mov rax, qword [rax]
mov qword [rdi + 8], rax
mov dword [rdi + 0x10], ecx
mov qword [rdi + 0x18], rdx
test rdx, rdx
je 0x1400151a8
mov eax, dword [rdx]
inc eax
mov dword [rdx], eax
jmp 0x1400151a8
mov rdi, rax
mov eax, dword [r14 + 0x2c]
cmp dword [r14 + 0x28], eax
jl 0x1400151c4
mov edx, 0xffffffff
lea rcx, [r14 + 0x20]
call fcn.14000285b
test al, al
je 0x1400151d4
movsxd rcx, dword [r14 + 0x28]
mov rax, qword [r14 + 0x20]
mov qword [rax + rcx*8], rdi
inc dword [r14 + 0x28]
mov eax, dword [rbp + 0x68]
test al, 1
je 0x140015852
and dword [rbp + 0x68], 0xfffffffe
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x140015203
mov ecx, dword [rax]
sub ecx, 1
mov rax, qword [rbp - 0x70]
mov dword [rax], ecx
jne 0x140015203
mov rcx, qword [rbp - 0x70]
call fcn.1400018d4
nop
jmp 0x140015852
lea rax, [0x14007342c]
cmp qword [r14 + 0xa8], rax
jne 0x14001537d
lea rdx, str.string_currentfile
mov rcx, rbx
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x14001537d
lea rdx, str.readstring
mov rcx, rbx
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x14001537d
mov rcx, rbx
cmp byte [rbx], 0
je 0x140015265
movzx eax, byte [rbx]
cmp al, 0x2f
je 0x140015265
inc rcx
movzx eax, byte [rcx]
test al, al
jne 0x140015257
lea r9, [rcx + 1]
mov r8, r9
cmp byte [rcx], 0
je 0x14001537d
nop word [rax + rax]
movzx eax, byte [r8]
test al, al
je 0x14001537d
cmp al, 0x20
je 0x140015299
cmp al, 0x7b
je 0x140015299
inc r8
jmp 0x140015280
sub r8, rcx
dec r8
lea rdx, str.__s
lea rcx, [rbp - 0x20]
call fcn.140001fdc
mov rcx, qword [rax]
mov qword [r14 + 0xa8], rcx
mov rax, qword [rdi]
mov rdx, rcx
mov rcx, rdi
call qword [rax + 0x18]
mov ecx, 0x20
call fcn.140001118
mov rdi, rax
mov qword [rbp - 0x18], rax
test rax, rax
je 0x14001531a
lea rdx, [rbp - 0x68]
lea rcx, [rsp + 0x30]
call fcn.140002b99
nop
or dword [rbp + 0x68], 2
lea rcx, vtable.Efont::Type1CopyItem.0
mov qword [rdi], rcx
mov rdx, qword [rax + 0x10]
mov ecx, dword [rax + 8]
mov rax, qword [rax]
mov qword [rdi + 8], rax
mov dword [rdi + 0x10], ecx
mov qword [rdi + 0x18], rdx
test rdx, rdx
je 0x14001531d
mov eax, dword [rdx]
inc eax
mov dword [rdx], eax
jmp 0x14001531d
mov rdi, rax
mov eax, dword [r14 + 0x2c]
cmp dword [r14 + 0x28], eax
jl 0x140015339
mov edx, 0xffffffff
lea rcx, [r14 + 0x20]
call fcn.14000285b
test al, al
je 0x140015349
movsxd rcx, dword [r14 + 0x28]
mov rax, qword [r14 + 0x20]
mov qword [rax + rcx*8], rdi
inc dword [r14 + 0x28]
mov eax, dword [rbp + 0x68]
test al, 2
je 0x140015852
and dword [rbp + 0x68], 0xfffffffd
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x140015378
mov ecx, dword [rax]
sub ecx, 1
mov rax, qword [rbp - 0x58]
mov dword [rax], ecx
jne 0x140015378
mov rcx, qword [rbp - 0x58]
call fcn.1400018d4
nop
jmp 0x140015852
cmp qword [r14 + 0xb0], 0
jne 0x1400153b5
mov r8d, 0xa
lea rdx, str._Encoding
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
jne 0x1400153b5
lea r8, [rbx + 0xa]
mov rdx, rdi
mov rcx, r14
call fcn.140001014
jmp 0x1400155a6
movzx eax, byte [rbx]
cmp al, 0x2f
je 0x1400153d1
cmp al, 0x20
jne 0x140015430
mov rax, rbx
lea rax, [rax + 1]
cmp byte [rax], 0x20
je 0x1400153c3
cmp byte [rax], 0x2f
jne 0x140015430
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140001a46
mov rdi, rax
test rax, rax
je 0x14001542c
mov rcx, qword [rax + 8]
cmp rcx, qword [0x1400723c0]
jne 0x140015403
lea rdx, [rsp + 0x44]
mov rcx, rax
call fcn.140002af4
mov r8, rdi
mov edx, r12d
mov rcx, r14
call fcn.14000182f
xor esi, esi
cmp dword [rsp + 0x3c], 0
jge 0x140015423
mov dword [rsp + 0x3c], esi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x38], esi
jmp 0x140015852
mov rdi, qword [rbp + 0x58]
cmp r15d, 2
jne 0x1400154d3
xor eax, eax
mov edi, eax
cmp byte [rbx], al
jne 0x140015451
test esi, esi
jle 0x140015451
inc edi
inc rbx
dec esi
cmp byte [rbx], al
je 0x140015442
mov ecx, 0x20
call fcn.140001118
mov rbx, rax
mov qword [rbp - 0x10], rax
test rax, rax
je 0x14001548d
lea r8d, [rsi + rdi*2]
mov edx, 0x30
lea rcx, [rbp - 0x50]
call fcn.140001a78
nop
or dword [rbp + 0x68], 4
mov rdx, rax
mov rcx, rbx
call fcn.140002770
xor esi, esi
jmp 0x140015491
xor esi, esi
mov eax, esi
mov rdx, rax
mov rcx, r14
call fcn.140002360
nop
mov eax, dword [rbp + 0x68]
test al, 4
je 0x1400154c8
and dword [rbp + 0x68], 0xfffffffb
mov rax, qword [rbp - 0x40]
test rax, rax
je 0x1400154c8
mov ecx, dword [rax]
sub ecx, 1
mov rax, qword [rbp - 0x40]
mov dword [rax], ecx
jne 0x1400154c8
mov rcx, qword [rbp - 0x40]
call fcn.1400018d4
nop
mov r15d, 3
jmp 0x140015413
cmp r15d, 1
jne 0x140015508
lea rdx, str.FontDirectory
mov rcx, rbx
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x140015508
lea r9, [rsp + 0x30]
mov r8, rbx
mov rdx, rdi
mov rcx, r14
call fcn.14000114f
test al, al
jne 0x1400155a6
test r13, r13
je 0x1400155c0
mov esi, dword [rsp + 0x40]
test esi, esi
je 0x14001555a
lea rdx, [0x14005b1b8]
mov rcx, rbx
call sub.VCRUNTIME140.dll_strstr
test rax, rax
jne 0x140015541
lea rdx, [0x14005b1bc]
mov rcx, rbx
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x140015553
mov edx, 0x2f
mov rcx, rbx
call sub.VCRUNTIME140.dll_strchr
test rax, rax
je 0x14001555a
xor esi, esi
mov r13d, esi
jmp 0x1400155c2
xor r9d, r9d
lea r8d, [r9 - 1]
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.140001767
nop
lea rdx, [rsp + 0x68]
mov rcx, r13
call fcn.14000195b
nop
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x1400155a0
mov ecx, dword [rax]
sub ecx, 1
mov rax, qword [rsp + 0x78]
mov dword [rax], ecx
jne 0x1400155a0
mov rcx, qword [rsp + 0x78]
call fcn.1400018d4
nop
inc esi
mov dword [rsp + 0x40], esi
xor esi, esi
cmp dword [rsp + 0x3c], esi
jge 0x1400155b7
mov dword [rsp + 0x3c], esi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x38], esi
jmp 0x140015856
xor esi, esi
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140002b99
nop
mov ecx, 0x20
call fcn.140001118
mov rdi, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14001561b
lea rax, vtable.Efont::Type1CopyItem.0
mov qword [rdi], rax
mov r8, qword [rsp + 0x58]
mov edx, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov qword [rdi + 8], rcx
mov dword [rdi + 0x10], edx
mov qword [rdi + 0x18], r8
test r8, r8
je 0x14001561e
mov eax, dword [r8]
inc eax
mov dword [r8], eax
jmp 0x14001561e
mov rdi, rsi
mov eax, dword [r14 + 0x2c]
cmp dword [r14 + 0x28], eax
jl 0x14001563a
mov edx, 0xffffffff
lea rcx, [r14 + 0x20]
call fcn.14000285b
test al, al
je 0x14001564a
movsxd rcx, dword [r14 + 0x28]
mov rax, qword [r14 + 0x20]
mov qword [rax + rcx*8], rdi
inc dword [r14 + 0x28]
mov rdi, qword [rsp + 0x48]
test r15d, r15d
jne 0x14001570e
lea r8d, [r15 + 0x11]
lea rdx, str.currentfile_eexec
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
jne 0x14001579d
lea rbx, [rdi + 0x11]
movzx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x14001568d
cmp byte [rbx], al
jne 0x14001579d
movzx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x1400156b0
nop word [rax + rax]
inc rbx
movzx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
jne 0x1400156a0
mov r9d, dword [rsp + 0x50]
sub r9d, ebx
add r9d, dword [rsp + 0x48]
mov r8, rbx
mov dl, 1
mov rcx, qword [rbp + 0x58]
call fcn.140001749
mov ecx, 0x10
call fcn.140001118
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1400156ef
lea rcx, vtable.Efont::Type1EexecItem.0
mov qword [rax], rcx
mov byte [rax + 8], 1
jmp 0x1400156f2
mov rax, rsi
mov edx, dword [r14 + 0x28]
dec edx
mov r8, rax
mov rcx, r14
call fcn.140001fd7
mov r15d, 1
jmp 0x14001582f
cmp r15d, 1
jne 0x14001579d
lea rdx, str.currentfile_closefile
mov rcx, rdi
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x14001579d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp + 0x58]
call fcn.140001749
lea ecx, [r15 + 0xf]
call fcn.140001118
mov rdi, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140015763
lea rax, vtable.Efont::Type1EexecItem.0
mov qword [rdi], rax
mov byte [rdi + 8], 0
jmp 0x140015766
mov rdi, rsi
mov eax, dword [r14 + 0x2c]
cmp dword [r14 + 0x28], eax
jl 0x140015782
mov edx, 0xffffffff
lea rcx, [r14 + 0x20]
call fcn.14000285b
test al, al
je 0x140015792
movsxd rcx, dword [r14 + 0x28]
mov rax, qword [r14 + 0x20]
mov qword [rax + rcx*8], rdi
inc dword [r14 + 0x28]
mov r15d, 2
jmp 0x14001582f
lea rdx, str.begin
mov rcx, rdi
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x140015813
mov ebx, r12d
lea rdx, str._Private
mov rcx, rdi
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x1400157d0
mov r12d, 2
jmp 0x1400157e9
lea rdx, str._FontInfo
mov rcx, rdi
call sub.VCRUNTIME140.dll_strstr
mov r12d, esi
test rax, rax
setne r12b
lea rdx, str._Blend
mov rcx, rdi
call sub.VCRUNTIME140.dll_strstr
test rax, rax
je 0x140015803
add r12d, 3
jmp 0x14001582f
cmp ebx, 3
jne 0x14001582f
cmp r12d, 1
jne 0x14001582f
add r12d, ebx
jmp 0x14001582f
cmp r12d, 1
jne 0x14001582f
lea rdx, [0x14005b1b8]
mov rcx, rdi
call sub.VCRUNTIME140.dll_strstr
test rax, rax
cmovne r12d, esi
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140015852
mov ecx, dword [rax]
sub ecx, 1
mov rax, qword [rsp + 0x58]
mov dword [rax], ecx
jne 0x140015852
mov rcx, qword [rsp + 0x58]
call fcn.1400018d4
nop
mov rdi, qword [rbp + 0x58]
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.14000178f
test al, al
jne 0x140014fa4
mov rax, qword [r14 + 0x30]
mov ebx, dword [rax + 0x28]
mov edx, 1
mov rcx, r14
call fcn.1400024af
sub eax, ebx
mov dword [r14 + 0x54], eax
mov rax, qword [r14 + 0x30]
mov ebx, dword [rax + 0x48]
mov edx, 2
mov rcx, r14
call fcn.1400024af
sub eax, ebx
mov dword [r14 + 0x58], eax
mov rax, qword [r14 + 0x30]
mov ebx, dword [rax + 0x68]
mov edx, 3
mov rcx, r14
call fcn.1400024af
sub eax, ebx
mov dword [r14 + 0x5c], eax
mov rax, qword [r14 + 0x30]
mov ebx, dword [rax + 0x88]
mov edx, 4
mov rcx, r14
call fcn.1400024af
sub eax, ebx
mov dword [r14 + 0x60], eax
mov rax, qword [r14 + 0x30]
mov ebx, dword [rax + 0xa8]
mov edx, 5
mov rcx, r14
call fcn.1400024af
sub eax, ebx
mov dword [r14 + 0x64], eax
cmp dword [r14 + 0x80], 0
jne 0x140015938
mov rdx, qword [r14 + 0xc8]
test rdx, rdx
je 0x140015938
mov rdx, qword [rdx + 8]
add rdx, 0x78
lea rcx, [r14 + 0x78]
call fcn.140002a04
mov rax, qword [r14 + 0xc8]
mov rdx, qword [rax + 8]
add rdx, 0x88
lea rcx, [r14 + 0x88]
call fcn.14000287e
mov rcx, r14
call fcn.140001cd0
movzx ebx, al
cmp dword [rsp + 0x3c], 0
jle 0x140015958
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
call fcn.140001d1b
lea eax, [rbx - 1]
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret