Function at 0x476460
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 0x4764ce
cmp byte [esi], 0
je 0x4764ce
mov eax, dword [0x5b4314]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
cmp edi, ebx
je 0x4764ce
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 0x4764d9
mov eax, dword [0x5b4314]
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.00500370
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 0x476508
sub eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x80]
test eax, eax
mov dword [esp + 0x28], ecx
jne 0x4766bf
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x476541
mov edx, dword [esp + 0x14]
push ecx
mov ecx, edi
call fcn.00500390
sub eax, ebp
jmp 0x4766d4
lea ecx, [esp + 0x34]
push ecx
push edi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x4766d8
lea esp, [esp]
mov eax, dword [0x5b121c]
test eax, eax
je 0x476581
mov edx, dword [esp + 0x14]
push ebx
push edx
call fcn.00572da3
add esp, 8
cmp eax, 1
je case.0x47659a.4
cmp eax, 2
je case.0x47659a.4
mov eax, dword [esp + 0x14]
lea ecx, [ebx + eax]
movzx eax, byte [ecx]
add eax, 0xfffffffe
cmp eax, 0x1d
ja case.0x47659a.4
movzx edx, byte [eax + 0x476724]
jmp dword [edx*4 + 0x476710]
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.0x47659a.22
push 0
push 0
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x3c]
call fcn.00500120
add ebx, eax
jmp case.0x47659a.22
mov dword [esp + 0x1c], 1
mov dword [esp + 0x10], 0
jmp case.0x47659a.22
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x476694
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x1c], 0
je 0x476694
mov eax, dword [esp + 0x20]
test eax, eax
je 0x47661d
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
test esi, esi
je 0x476628
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 0x47665d
push 0x2bc
jmp 0x476662
push 0x190
push 0
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
mov esi, eax
test esi, esi
je 0x476683
push esi
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x20], eax
jmp 0x47668b
mov dword [esp + 0x20], 0
mov ecx, edi
call fcn.00500370
mov ebp, eax
mov ecx, dword [esp + 0x14]
lea edx, [ebx + ecx]
push 1
mov ecx, edi
call fcn.00500390
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 0x476560
jmp 0x4766d8
cmp eax, 1
jne 0x4766d8
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 0x4766e9
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
test esi, esi
je 0x4766f4
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [0x5b4314]
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