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

Disassembly:
push 0xffffffffffffffff
push 0x623da5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3d0
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x3f0]
xor ebx, ebx
mov dword [esp + 0x2c], ecx
push edi
mov dword [edi], 0xfffffc18
mov dword [edi + 4], ebx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
push ebx
push ebx
push ebx
push str.DISPLAY
mov ebp, eax
call dword [sym.imp.GDI32.dll_CreateDCA]
mov esi, eax
push ebp
push esi
mov dword [esp + 0x40], esi
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
push ebx
push esi
mov dword [esp + 0x48], eax
call dword [sym.imp.GDI32.dll_GetOutlineTextMetricsA]
mov ebp, eax
cmp ebp, ebx
jne 0x4a16de
mov eax, dword [esp + 0x3c]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
xor eax, eax
jmp 0x4a1fde
push ebp
call fcn.00486090
add esp, 4
mov esi, eax
push esi
push ebp
mov ebp, dword [esp + 0x40]
push ebp
call dword [sym.imp.GDI32.dll_GetOutlineTextMetricsA]
mov cl, byte [edi + 0x17]
mov al, byte [edi + 0x14]
sub cl, 2
neg cl
sbb ecx, ecx
and ecx, 0x1c
add ecx, 4
cmp al, bl
mov dword [esp + 0x10], ecx
je 0x4a1719
mov eax, ecx
or al, 0x40
mov dword [esp + 0x10], eax
mov al, byte [edi + 0x1b]
mov dl, al
and dl, 3
cmp dl, 1
jne 0x4a172b
or dword [esp + 0x10], 1
and al, 0xf8
cmp al, 0x10
jne 0x4a1736
or dword [esp + 0x10], 2
cmp al, 0x40
jne 0x4a1744
mov eax, dword [esp + 0x10]
or al, 8
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x58]
mov eax, 0x66666667
imul ecx
mov ecx, dword [esi + 0x60]
push esi
sar edx, 2
mov eax, edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x74]
shr eax, 0x1f
add edx, eax
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 0x64]
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x80]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
call fcn.004860c0
add esp, 4
lea edx, [edi + 0x1c]
lea ecx, [esp + 0x24]
push 0xffffffffffffffff
push edx
call fcn.00489310
push 0x6edc4c
push 0x68f8b0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3f0], ebx
call fcn.0048a410
mov eax, dword [edi + 0x10]
cmp eax, 0x1f4
jle 0x4a17e6
cmp byte [edi + 0x14], bl
je 0x4a17d8
push str._BoldItalic
jmp 0x4a17f0
cmp eax, 0x1f4
jle 0x4a17e6
push str._Bold
jmp 0x4a17f0
cmp byte [edi + 0x14], bl
je 0x4a17f9
push str._Italic
lea ecx, [esp + 0x28]
call fcn.00489870
push 0x14
call fcn.00486010
mov esi, eax
add esp, 4
mov dword [esp + 0x30], esi
cmp esi, ebx
je 0x4a1839
mov dword [esi], 0x632d20
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
mov byte [esp + 0x3e8], 2
call fcn.0048df50
mov dword [esi], 0x632d1c
mov dword [esi + 4], 6
mov dword [esp + 0x28], esi
jmp 0x4a183f
mov dword [esp + 0x28], ebx
mov esi, ebx
mov al, byte [edi + 0x17]
mov byte [esp + 0x3e8], bl
cmp al, bl
mov dword [esp + 0x30], esi
jne 0x4a19ab
push str.Font
push str.Type
mov ecx, esi
call fcn.0048c800
push str.TrueType
push str.Subtype
mov ecx, esi
call fcn.0048c800
lea eax, [esp + 0x24]
mov ecx, esi
push eax
push str.BaseFont
call fcn.0048c8a0
push str.WinAnsiEncoding
push str.Encoding
mov ecx, esi
call fcn.0048c800
push 0x42000000
push str.FirstChar
mov ecx, esi
call fcn.0048ca90
push 0x437f0000
push str.LastChar
mov ecx, esi
call fcn.0048ca90
lea ecx, [esp + 0x60]
push ecx
push 0xff
push 0x20
push ebp
call dword [sym.imp.GDI32.dll_GetCharWidthA]
push 0x20
call fcn.00486010
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a1910
mov dword [esi], 0x632d20
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
push 4
mov byte [esp + 0x3ec], 4
call fcn.0048d690
mov dword [esi], 0x632d18
mov dword [esi + 4], 5
mov dword [esp + 0x18], esi
jmp 0x4a1914
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x60]
mov byte [esp + 0x3e8], bl
mov dword [esp + 0x14], eax
lea ebp, [edx + 0xc]
mov dword [esp + 0x1c], 0xe0
push 0x14
call fcn.00486010
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebx
mov byte [esp + 0x3e8], 5
je 0x4a195e
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov ecx, eax
push edx
call fcn.0048b470
mov esi, eax
jmp 0x4a1960
xor esi, esi
mov edi, dword [ebp + 4]
push 0xffffffffffffffff
mov ecx, ebp
mov byte [esp + 0x3ec], bl
lea eax, [edi + 1]
push eax
call fcn.0048d6c0
mov ecx, dword [ebp]
mov eax, dword [esp + 0x1c]
mov dword [ecx + edi*4], esi
mov ecx, dword [esp + 0x14]
add ecx, 4
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
jne 0x4a1932
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push edx
push str.Widths
call fcn.0048c6b0
jmp 0x4a1db6
push 0x14
call fcn.00486010
mov ebp, eax
add esp, 4
mov dword [esp + 0x30], ebp
cmp ebp, ebx
je 0x4a19e9
mov dword [ebp], 0x632d20
mov dword [ebp + 8], ebx
lea ecx, [ebp + 0xc]
mov byte [esp + 0x3e8], 7
call fcn.0048df50
mov dword [ebp], 0x632d1c
mov dword [ebp + 4], 6
jmp 0x4a19eb
xor ebp, ebp
lea ecx, [esp + 0x18]
mov byte [esp + 0x3e8], bl
mov dword [esp + 0x30], ebp
call fcn.004892c0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3e8], 8
call fcn.004892c0
push 0x20
mov byte [esp + 0x3ec], 9
call fcn.00486010
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a1a56
mov dword [esi], 0x632d20
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
push 4
mov byte [esp + 0x3ec], 0xb
call fcn.0048d690
mov dword [esi], 0x632d18
mov dword [esi + 4], 5
jmp 0x4a1a58
xor esi, esi
mov al, byte [edi + 0x17]
mov byte [esp + 0x3e8], 9
cmp al, 0x88
jne 0x4a1abf
mov eax, dword [esp + 0x3f4]
cmp eax, ebx
mov eax, str.ETHK_B5_V
jne 0x4a1a7c
mov eax, str.ETHK_B5_H
push eax
lea ecx, [esp + 0x1c]
call fcn.004894e0
push str.CNS1
lea ecx, [esp + 0x20]
call fcn.004894e0
mov dword [esp + 0x14], 4
push 1
mov ecx, esi
call fcn.0048bf10
push 0x5f
mov ecx, esi
call fcn.0048bf10
push 0x1f4
mov ecx, esi
call fcn.0048bf10
jmp 0x4a1c0d
cmp al, 0x86
jne 0x4a1b32
mov eax, dword [esp + 0x3f4]
cmp eax, ebx
mov eax, str.GBK_EUC_V
jne 0x4a1ad8
mov eax, str.GBK_EUC_H
push eax
lea ecx, [esp + 0x1c]
call fcn.004894e0
push 0x69bfe8
lea ecx, [esp + 0x20]
call fcn.004894e0
push 0x1e24
mov ecx, esi
mov dword [esp + 0x18], 2
call fcn.0048bf10
push 0x1e24
mov ecx, esi
call fcn.0048bf10
push 0x1f4
mov ecx, esi
call fcn.0048bf10
push 0x32e
mov ecx, esi
call fcn.0048bf10
push 0x38b
jmp 0x4a1aa7
cmp al, 0x81
jne 0x4a1b70
mov eax, dword [esp + 0x3f4]
cmp eax, ebx
mov eax, str.KSCms_UHC_V
jne 0x4a1b4b
mov eax, str.KSCms_UHC_H
push eax
lea ecx, [esp + 0x1c]
call fcn.004894e0
push str.Korea1
lea ecx, [esp + 0x20]
call fcn.004894e0
mov dword [esp + 0x14], 2
jmp 0x4a1a9c
cmp al, 0x80
mov eax, dword [esp + 0x3f4]
jne 0x4a1be3
cmp eax, ebx
mov eax, str.90ms_RKSJ_V
jne 0x4a1b89
mov eax, str.90ms_RKSJ_H
push eax
lea ecx, [esp + 0x1c]
call fcn.004894e0
push str.Japan1
lea ecx, [esp + 0x20]
call fcn.004894e0
push 0xe7
mov ecx, esi
mov dword [esp + 0x18], 5
call fcn.0048bf10
push 0x144
mov ecx, esi
call fcn.0048bf10
push 0x1f4
mov ecx, esi
call fcn.0048bf10
push 0x277
mov ecx, esi
call fcn.0048bf10
push 0x277
jmp 0x4a1aa7
cmp eax, ebx
mov eax, str.Identity_V
jne 0x4a1bf1
mov eax, str.Identity_H
push eax
lea ecx, [esp + 0x1c]
call fcn.004894e0
push str.Identity
lea ecx, [esp + 0x20]
call fcn.004894e0
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x28]
push str.Font
push str.Type
mov ecx, edi
call fcn.0048c800
push str.Type0
push str.Subtype
mov ecx, edi
call fcn.0048c800
lea eax, [esp + 0x24]
mov ecx, edi
push eax
push str.BaseFont
call fcn.0048c8a0
lea ecx, [esp + 0x18]
push ecx
push str.Encoding
mov ecx, edi
call fcn.0048c8a0
push esi
push 0x697698
mov ecx, ebp
call fcn.0048c6b0
push str.Font
push str.Type
mov ecx, ebp
call fcn.0048c800
push str.CIDFontType2
push str.Subtype
mov ecx, ebp
call fcn.0048c800
lea edx, [esp + 0x24]
mov ecx, ebp
push edx
push str.BaseFont
call fcn.0048c8a0
push 0x14
call fcn.00486010
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a1cd1
mov dword [esi], 0x632d20
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
mov byte [esp + 0x3e8], 0xd
call fcn.0048df50
mov dword [esi], 0x632d1c
mov dword [esi + 4], 6
jmp 0x4a1cd3
xor esi, esi
push str.Adobe
push str.Registry
mov ecx, esi
mov byte [esp + 0x3f0], 9
call fcn.0048c910
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
push str.Ordering
call fcn.0048c9f0
mov ecx, dword [esp + 0x14]
push ecx
push str.Supplement
mov ecx, esi
call fcn.0048c7b0
push esi
push str.CIDSystemInfo
mov ecx, ebp
call fcn.0048c6b0
push 0x20
call fcn.00486010
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a1d59
mov dword [esi], 0x632d20
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
push 4
mov byte [esp + 0x3ec], 0xf
call fcn.0048d690
mov dword [esi], 0x632d18
mov dword [esi + 4], 5
jmp 0x4a1d5b
xor esi, esi
push esi
push str.DescendantFonts
mov ecx, edi
mov byte [esp + 0x3f0], 9
call fcn.0048c6b0
mov edx, dword [esp + 0x2c]
push ebp
lea edi, [edx + 0x1c]
mov ecx, edi
call fcn.0048e610
mov eax, dword [esp + 0x2c]
mov ebp, dword [ebp + 8]
neg eax
sbb eax, eax
push ebp
and eax, edi
mov ecx, esi
push eax
call fcn.0048c120
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3e8], 8
call fcn.004892e0
lea ecx, [esp + 0x18]
mov byte [esp + 0x3e8], bl
call fcn.004892e0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push edx
lea ecx, [eax + 0x1c]
call fcn.0048e610
push 0x14
call fcn.00486010
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a1e03
mov dword [esi], 0x632d20
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
mov byte [esp + 0x3e8], 0x11
call fcn.0048df50
mov dword [esi], 0x632d1c
mov dword [esi + 4], 6
jmp 0x4a1e05
xor esi, esi
push str.FontDescriptor
push str.Type
mov ecx, esi
mov byte [esp + 0x3f0], bl
call fcn.0048c800
lea eax, [esp + 0x24]
mov ecx, esi
push eax
push str.FontName
call fcn.0048c8a0
mov ecx, dword [esp + 0x10]
push ecx
push str.Flags
mov ecx, esi
call fcn.0048c7b0
push 0x20
call fcn.00486010
mov edi, eax
add esp, 4
mov dword [esp + 0x20], edi
cmp edi, ebx
je 0x4a1e81
mov dword [edi], 0x632d20
mov dword [edi + 8], ebx
lea ecx, [edi + 0xc]
push 4
mov byte [esp + 0x3ec], 0x13
call fcn.0048d690
mov dword [edi], 0x632d18
mov dword [edi + 4], 5
mov dword [esp + 0x10], edi
jmp 0x4a1e85
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x50]
mov byte [esp + 0x3e8], bl
mov dword [esp + 0x14], eax
lea edi, [edx + 0xc]
mov dword [esp + 0x20], 4
push 0x14
call fcn.00486010
add esp, 4
mov dword [esp + 0x34], eax
cmp eax, ebx
mov byte [esp + 0x3e8], 0x14
je 0x4a1ed1
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov ecx, eax
push edx
call fcn.0048b470
mov dword [esp + 0x34], eax
jmp 0x4a1ed5
mov dword [esp + 0x34], ebx
mov ebp, dword [edi + 4]
push 0xffffffffffffffff
mov ecx, edi
mov byte [esp + 0x3ec], bl
lea eax, [ebp + 1]
push eax
call fcn.0048d6c0
mov ecx, dword [edi]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov dword [ecx + ebp*4], edx
mov ecx, dword [esp + 0x14]
add ecx, 4
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
jne 0x4a1ea3
mov eax, dword [esp + 0x10]
mov ecx, esi
push eax
push str.FontBBox
call fcn.0048c6b0
mov ecx, dword [esp + 0x4c]
push ecx
push str.ItalicAngle
mov ecx, esi
call fcn.0048c7b0
mov edx, dword [esp + 0x48]
mov ecx, esi
push edx
push str.Ascent
call fcn.0048c7b0
mov eax, dword [esp + 0x40]
mov ecx, esi
push eax
push str.Descent
call fcn.0048c7b0
mov ecx, dword [esp + 0x44]
push ecx
push str.CapHeight
mov ecx, esi
call fcn.0048c7b0
push 0x64
push str.StemV
mov ecx, esi
call fcn.0048c7b0
mov edx, dword [esp + 0x2c]
push esi
lea edi, [edx + 0x1c]
mov ecx, edi
call fcn.0048e610
mov ebx, dword [esp + 0x2c]
mov esi, dword [esi + 8]
mov eax, ebx
mov ecx, dword [esp + 0x30]
neg eax
sbb eax, eax
push esi
and eax, edi
push eax
push str.FontDescriptor
call fcn.0048cb30
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, ebx
call fcn.004a5330
lea ecx, [esp + 0x24]
mov esi, eax
mov dword [esp + 0x3e8], 0xffffffff
call fcn.004892e0
mov eax, esi
mov ecx, dword [esp + 0x3e0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3dc
ret 8