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

Disassembly:
sub esp, 0x5c
push ebx
push esi
mov esi, edx
xor ebx, ebx
cmp esi, ebx
push edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], ecx
je 0x472e0e
cmp byte [esi], 0
je 0x472e0e
mov eax, dword [0x5a1b00]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
cmp edi, ebx
je 0x472e0e
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
push esi
push ebx
mov edx, dword [esp + 0x74]
push ebx
push ebx
push ebx
push ecx
push ebx
neg eax
push ebx
sbb eax, eax
push ebx
and eax, 0x12c
add eax, 0x190
push eax
push ebx
push ebx
push ebx
push edx
call dword [sym.imp.GDI32.dll_CreateFontA]
mov esi, eax
cmp esi, ebx
jne 0x472e19
mov eax, dword [0x5a1b00]
push edi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x14
push ebp
push esi
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.004f8fa0
mov ebp, eax
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x472e48
sub eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x80]
test eax, eax
mov dword [esp + 0x28], ecx
jne 0x472fff
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x472e81
mov edx, dword [esp + 0x14]
push ecx
mov ecx, edi
call fcn.004f8fc0
sub eax, ebp
jmp 0x473014
lea ecx, [esp + 0x34]
push ecx
push edi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x473018
lea esp, [esp]
mov eax, dword [0x59f66c]
test eax, eax
je 0x472ec1
mov edx, dword [esp + 0x14]
push ebx
push edx
call fcn.00565618
add esp, 8
cmp eax, 1
je case.0x472eda.4
cmp eax, 2
je case.0x472eda.4
mov eax, dword [esp + 0x14]
lea ecx, [ebx + eax]
movzx eax, byte [ecx]
add eax, 0xfffffffe
cmp eax, 0x1d
ja case.0x472eda.4
movzx edx, byte [eax + 0x473064]
jmp dword [edx*4 + 0x473050]
mov ecx, dword [esp + 0x10]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x1c], 1
mov dword [esp + 0x10], eax
jmp case.0x472eda.22
push 0
push 0
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x3c]
call fcn.004f8d50
add ebx, eax
jmp case.0x472eda.22
mov dword [esp + 0x1c], 1
mov dword [esp + 0x10], 0
jmp case.0x472eda.22
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x472fd4
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x1c], 0
je 0x472fd4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x472f5d
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
test esi, esi
je 0x472f68
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x10]
push ecx
push 0
push 0
push 0
push 0
push edx
push 0
push 0
mov dword [esp + 0x94], eax
test eax, eax
mov eax, dword [esp + 0x90]
push 0
je 0x472f9d
push 0x2bc
jmp 0x472fa2
push 0x190
push 0
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
mov esi, eax
test esi, esi
je 0x472fc3
push esi
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x20], eax
jmp 0x472fcb
mov dword [esp + 0x20], 0
mov ecx, edi
call fcn.004f8fa0
mov ebp, eax
mov ecx, dword [esp + 0x14]
lea edx, [ebx + ecx]
push 1
mov ecx, edi
call fcn.004f8fc0
mov ecx, dword [esp + 0x18]
sub eax, ebp
add ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x28]
inc ebx
cmp ebx, eax
jl 0x472ea0
jmp 0x473018
cmp eax, 1
jne 0x473018
lea edx, [esp + 0x34]
push edx
push edi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
test eax, eax
pop ebp
je 0x473029
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
test esi, esi
je 0x473034
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [0x5a1b00]
push edi
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
add esp, 0x5c
ret 0x14