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

Disassembly:
push 0xffffffffffffffff
push 0x52c09b
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x59c6b8]
xor eax, esp
mov dword [esp + 0x74], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x59c6b8]
xor eax, esp
push eax
lea eax, [esp + 0x8c]
mov dword fs:[0], eax
mov edi, dword [esp + 0x9c]
mov eax, 0xd
mov dword [esp + 0x60], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x20]
mov esi, ecx
mov ecx, dword [esi + 0xc8]
push eax
mov dword [esp + 0x40], edi
call fcn.004a4090
test eax, eax
jne 0x452d72
mov edi, dword [edi + 0x20]
push 8
call fcn.00511699
add esp, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x94], 0
test eax, eax
je 0x45261e
push edi
mov ecx, eax
call fcn.004a1d60
mov ebx, eax
mov dword [esp + 0x24], eax
jmp 0x452624
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 0
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + 0xc0]
lea eax, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 0xa0], 0xffffffff
mov dword [esp + 0x6c], 9
mov dword [esp + 0x78], edx
call fcn.0044ea00
lea ecx, [esp + 0x60]
call fcn.0044ea50
cmp dword [esp + 0x28], 8
je 0x45268a
push str.Embedded_font_file_object_is_not_a_stream
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
call fcn.00412330
add esp, 0x10
jmp 0x452d48
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
mov edi, eax
test edi, edi
jne 0x4526b3
push str.Embedded_font_stream_is_missing_its_dictionary
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
call fcn.00412330
add esp, 0x10
jmp 0x452d48
push 0
lea ecx, [esp + 0x44]
push ecx
push str.Length1
mov ecx, edi
call fcn.00412200
push 0
lea edx, [esp + 0x54]
push edx
push str.Length2
mov ecx, edi
call fcn.00412200
mov eax, 1
cmp dword [esp + 0x40], eax
jne 0x452d24
cmp dword [esp + 0x50], eax
jne 0x452d24
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
lea ecx, [esp + 0x40]
mov dword [esp + 0x38], eax
call fcn.0044ea50
lea ecx, [esp + 0x50]
call fcn.0044ea50
mov edi, dword [esp + 0x24]
push edi
push str.__BeginResource:_font_0:t_n
push esi
call fcn.00451ba0
mov ecx, dword [esi + 0x188]
add esp, 0xc
push str.___font
call fcn.004a1e60
mov ecx, dword [edi + 4]
push ecx
mov ecx, dword [esi + 0x188]
call fcn.004a1e60
mov ecx, dword [esi + 0x188]
push 0x534c40
call fcn.004a1e60
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
call eax
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov edi, eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x70], edi
call eax
mov ebp, eax
mov dword [esp + 0x74], ebp
cmp edi, 0x80
jne 0x452918
cmp ebp, 1
jne 0x452918
push str.Embedded_Type_1_font_is_in_PFB_format
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
call fcn.00412330
add esp, 0x10
jmp 0x4527b0
mov edi, 2
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov dword [esp + edi*4 + 0x70], eax
inc edi
cmp edi, 6
jl 0x4527b5
mov edi, dword [esp + 0x78]
cmp edi, 0xffffffff
je 0x4528f1
mov edx, dword [esp + 0x7c]
cmp edx, 0xffffffff
je 0x4528f1
mov ecx, dword [esp + 0x80]
cmp ecx, 0xffffffff
je 0x4528f1
mov eax, dword [esp + 0x84]
cmp eax, 0xffffffff
je 0x4528f1
shl eax, 8
lea ebx, [ecx + eax]
shl ebx, 8
add ebx, edx
shl ebx, 8
add ebx, edi
cmp dword [esp + 0x74], 1
jne 0x452840
xor edi, edi
test ebx, ebx
jle 0x452899
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x452899
push eax
mov ecx, esi
call fcn.00451b10
inc edi
cmp edi, ebx
jl 0x452821
jmp 0x452899
xor ebp, ebp
test ebx, ebx
jle 0x452899
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov edi, eax
cmp edi, 0xffffffff
je 0x452899
mov ecx, edi
sar ecx, 4
and ecx, 0xf
movzx edx, byte [ecx + 0x5963f8]
push edx
mov ecx, esi
call fcn.00451b10
and edi, 0xf
movzx eax, byte [edi + 0x5963f8]
push eax
mov ecx, esi
call fcn.00451b10
mov ecx, ebp
and ecx, 0x1f
cmp cl, 0x1f
jne 0x452894
push 0xa
mov ecx, esi
call fcn.00451b10
inc ebp
cmp ebp, ebx
jl 0x452846
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov edi, eax
mov eax, dword [edx + 0x10]
call eax
mov dword [esp + 0x74], eax
cmp edi, 0xffffffff
je 0x4528f1
cmp eax, 0xffffffff
je 0x4528f1
cmp edi, 0x80
jne 0x4528de
cmp eax, 3
je 0x4528f1
cmp eax, 1
je 0x4527b0
cmp eax, 2
je 0x4527b0
push str.Invalid_PFB_header_in_embedded_font_stream
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
call fcn.00412330
add esp, 0x10
mov ecx, dword [esi + 0x19c]
mov byte [esp + 0x14], 0xa
test ecx, ecx
je 0x45290c
push 0xa
call fcn.004a1dd0
jmp 0x452c81
push 1
lea ecx, [esp + 0x18]
push ecx
jmp 0x452c6f
push edi
mov ecx, esi
call fcn.00451b10
push ebp
mov ecx, esi
call fcn.00451b10
mov edi, 2
cmp ebx, edi
jle 0x45294e
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x45294e
push eax
mov ecx, esi
call fcn.00451b10
inc edi
cmp edi, ebx
jl 0x452931
xor ebx, ebx
xor edi, edi
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov dword [esp + edi*4 + 0x70], eax
cmp eax, 0xffffffff
je 0x4529cc
cmp eax, 0x30
jl 0x452970
cmp eax, 0x39
jle 0x452989
cmp eax, 0x41
jl 0x45297a
cmp eax, 0x46
jle 0x452989
cmp eax, 0x61
jl 0x452984
cmp eax, 0x66
jle 0x452989
mov ebx, 1
inc edi
cmp edi, 4
jl 0x452952
test ebx, ebx
je 0x452b7c
xor ebx, ebx
lea esp, [esp]
mov edi, dword [esp + ebx*4 + 0x70]
mov ecx, edi
sar ecx, 4
and ecx, 0xf
mov dl, byte [ecx + 0x5963f8]
mov ecx, dword [esi + 0x19c]
mov byte [esp + 0x20], dl
test ecx, ecx
je 0x4529e8
mov eax, dword [esp + 0x20]
push eax
call fcn.004a1dd0
jmp 0x452a01
push str.Unexpected_end_of_file_in_embedded_font_stream
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
call fcn.00412330
mov ebx, dword [esp + 0x34]
add esp, 0x10
jmp 0x452d48
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x90]
push 1
lea ecx, [esp + 0x24]
push ecx
push edx
call eax
add esp, 0xc
and edi, 0xf
mov cl, byte [edi + 0x5963f8]
mov byte [esp + 0x18], cl
mov ecx, dword [esi + 0x19c]
test ecx, ecx
je 0x452a24
mov edx, dword [esp + 0x18]
push edx
call fcn.004a1dd0
jmp 0x452a3d
mov ecx, dword [esi + 0x94]
mov edx, dword [esi + 0x90]
push 1
lea eax, [esp + 0x1c]
push eax
push ecx
call edx
add esp, 0xc
inc ebx
cmp ebx, 4
jl 0x4529a0
mov ebp, dword [esp + 0x38]
cmp ebx, ebp
jge 0x452b2e
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov edi, eax
cmp edi, 0xffffffff
je 0x452b2e
sar eax, 4
and eax, 0xf
mov cl, byte [eax + 0x5963f8]
mov byte [esp + 0x18], cl
mov ecx, dword [esi + 0x19c]
test ecx, ecx
je 0x452a8f
mov edx, dword [esp + 0x18]
push edx
call fcn.004a1dd0
jmp 0x452aa8
mov ecx, dword [esi + 0x94]
mov edx, dword [esi + 0x90]
push 1
lea eax, [esp + 0x1c]
push eax
push ecx
call edx
add esp, 0xc
mov ecx, dword [esi + 0x19c]
and edi, 0xf
mov al, byte [edi + 0x5963f8]
mov byte [esp + 0x20], al
test ecx, ecx
je 0x452acb
mov edx, dword [esp + 0x20]
push edx
call fcn.004a1dd0
jmp 0x452ae4
mov ecx, dword [esi + 0x94]
mov edx, dword [esi + 0x90]
push 1
lea eax, [esp + 0x24]
push eax
push ecx
call edx
add esp, 0xc
inc ebx
mov eax, ebx
and eax, 0x8000001f
jns 0x452af3
dec eax
or eax, 0xffffffe0
inc eax
jne 0x452b26
mov ecx, dword [esi + 0x19c]
mov byte [esp + 0x14], 0xa
test ecx, ecx
je 0x452b0d
push 0xa
call fcn.004a1dd0
jmp 0x452b26
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x90]
push 1
lea ecx, [esp + 0x18]
push ecx
push edx
call eax
add esp, 0xc
cmp ebx, ebp
jl 0x452a53
and ebx, 0x8000001f
jns 0x452b3b
dec ebx
or ebx, 0xffffffe0
inc ebx
test ebx, ebx
jle 0x452c14
mov ecx, dword [esi + 0x19c]
mov byte [esp + 0x14], 0xa
test ecx, ecx
je 0x452b5e
push 0xa
call fcn.004a1dd0
jmp 0x452c14
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x90]
push 1
lea ecx, [esp + 0x18]
push ecx
push edx
call eax
add esp, 0xc
jmp 0x452c14
xor edi, edi
mov edi, edi
mov cl, byte [esp + edi*4 + 0x70]
mov byte [esp + 0x18], cl
mov ecx, dword [esi + 0x19c]
test ecx, ecx
je 0x452b9e
mov edx, dword [esp + 0x18]
push edx
call fcn.004a1dd0
jmp 0x452bb7
mov ecx, dword [esi + 0x94]
mov edx, dword [esi + 0x90]
push 1
lea eax, [esp + 0x1c]
push eax
push ecx
call edx
add esp, 0xc
inc edi
cmp edi, 4
jl 0x452b80
mov ebx, dword [esp + 0x38]
mov edi, 4
cmp ebx, edi
jle 0x452c14
lea ebx, [ebx]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp eax, 0xffffffff
je 0x452c14
mov ecx, dword [esi + 0x19c]
mov byte [esp + 0x1c], al
test ecx, ecx
je 0x452bf6
push eax
call fcn.004a1dd0
jmp 0x452c0f
mov ecx, dword [esi + 0x94]
mov edx, dword [esi + 0x90]
push 1
lea eax, [esp + 0x20]
push eax
push ecx
call edx
add esp, 0xc
inc edi
cmp edi, ebx
jl 0x452bd0
mov edi, 8
lea esp, [esp]
mov ecx, dword [esi + 0x19c]
test ecx, ecx
je 0x452c36
push str.0000000000000000000000000000000000000000000000000000000000000000_n
call fcn.004a1e60
jmp 0x452c4f
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x90]
push 0x41
push str.0000000000000000000000000000000000000000000000000000000000000000_n
push eax
call ecx
add esp, 0xc
dec edi
jne 0x452c20
mov ecx, dword [esi + 0x19c]
test ecx, ecx
je 0x452c68
push str.cleartomark_n
call fcn.004a1e60
jmp 0x452c81
push 0xc
push str.cleartomark_n
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x90]
push edx
call eax
add esp, 0xc
mov ecx, dword [esi + 0x19c]
xor edi, edi
cmp ecx, edi
je 0x452c99
push str.__EndResource_n
call fcn.004a1e60
jmp 0x452cb2
mov ecx, dword [esi + 0x94]
mov edx, dword [esi + 0x90]
push 0xe
push str.__EndResource_n
push ecx
call edx
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
lea ecx, [esp + 0x28]
call fcn.0044ea50
push 0x24
call fcn.00511699
add esp, 4
cmp eax, edi
je 0x452cff
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x18]
mov edx, dword [esp + 0x24]
mov dword [eax + 4], ecx
or ecx, 0xffffffff
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], edi
mov dword [eax], edx
mov dword [eax + 8], 1
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov edi, eax
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax]
mov dword [edi + 0xc], ecx
mov edx, dword [eax + 4]
mov eax, dword [edi]
push edi
mov dword [edi + 0x10], edx
mov ecx, dword [esi + 0xc8]
push eax
call fcn.004a3fd0
mov eax, edi
jmp 0x452d72
push str.Missing_length_fields_in_embedded_font_stream_dictionary
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
call fcn.00412330
add esp, 0x10
lea ecx, [esp + 0x40]
call fcn.0044ea50
lea ecx, [esp + 0x50]
call fcn.0044ea50
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
lea ecx, [esp + 0x28]
call fcn.0044ea50
test ebx, ebx
je 0x452d70
mov ecx, ebx
call fcn.004a1da0
push ebx
call fcn.0051163f
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x8c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.00511afd
add esp, 0x84
ret 8