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

Disassembly:
sub esp, 0x1d4
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x14]
cmp eax, 0x3c
mov ecx, dword [esp + 0x1e4]
push edi
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x30], 0x3f800000
jbe 0x4480fc
mov eax, 0x800
jmp 0x448117
cmp eax, 0x1e
jbe 0x448108
mov eax, 0x400
jmp 0x448117
cmp eax, 0xf
mov eax, 0x200
ja 0x448117
mov eax, 0x100
lea edx, [esp + 0xb4]
push edx
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], eax
mov eax, dword [ecx]
push ecx
call dword [eax + 0x1c]
mov ecx, dword [esi + 0x28]
mov eax, dword [esp + 0x10c]
cmp ecx, eax
jbe 0x44815e
xor ebx, ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebx
fild qword [esp + 0x24]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebx
mov dword [esi + 0x2c], eax
fidiv dword [esp + 0x24]
mov dword [esi + 0x28], eax
fstp dword [esi + 0x30]
jmp 0x448160
xor ebx, ebx
mov eax, dword [esi + 0x1c]
mov edx, dword [eax]
push ebx
lea ecx, [esi + 0x20]
push ecx
push 1
push 0x1a
push ebx
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0x2c]
push 1
push ecx
mov ecx, dword [esi + 0x28]
push ecx
push eax
call dword [edx + 0x5c]
cmp eax, ebx
jl 0x448511
mov edx, dword [esi + 0x28]
xor eax, eax
mov ecx, 0xa
lea edi, [esp + 0x88]
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x2c]
neg eax
push ebx
mov dword [esp + 0x8c], 0x28
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
mov word [esp + 0x98], 1
mov dword [esp + 0x9c], ebx
mov word [esp + 0x9a], 0x20
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
push ebx
lea ecx, [esp + 0x38]
push ecx
push ebx
lea edx, [esp + 0x98]
mov ebp, eax
push edx
push ebp
call dword [sym.imp.GDI32.dll_CreateDIBSection]
push 1
mov ebx, eax
push ebp
mov dword [esp + 0x40], ebx
call dword [sym.imp.GDI32.dll_SetMapMode]
push 0x48
push 0x5a
push ebp
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul dword [esi + 0x30]
call fcn.004fc6c0
push eax
mov eax, dword [esi + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esi + 0x18]
mov edx, ecx
and dl, 1
neg eax
neg dl
sbb edx, edx
and edx, 0x12c
add edx, 0x190
shr ecx, 1
mov edi, edx
mov edx, dword [esi + 8]
and ecx, 1
test edx, edx
jne 0x448257
mov edx, 0x5153a8
push edx
push 2
push 4
push 0
push 0
push 1
push 0
push 0
push ecx
push edi
push 0
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
mov edi, eax
test edi, edi
mov dword [esp + 0x24], edi
jne 0x448291
pop edi
pop esi
pop ebp
mov eax, 0x80004005
pop ebx
add esp, 0x1d4
ret 4
push ebx
mov ebx, dword [sym.imp.GDI32.dll_SelectObject]
push ebp
call ebx
push edi
push ebp
mov dword [esp + 0x3c], eax
call ebx
push 0xffffff
push ebp
mov dword [esp + 0x44], eax
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0
push ebp
call dword [sym.imp.GDI32.dll_SetBkColor]
push 0
push ebp
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov ax, word [0x53472c]
lea ecx, [esp + 0x1c]
push ecx
push 1
push 0x534728
push ebp
mov dword [esp + 0x24], 0
mov word [esp + 0x2a], ax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
fild dword [esp + 0x20]
sub esp, 8
fmul dword [0x515894]
fstp qword [esp]
call fcn.004fd485
add esp, 8
call fcn.004fc6c0
mov edx, dword [esp + 0x20]
mov dword [esi + 0x1434], eax
mov ebx, eax
mov ecx, 0x500
xor eax, eax
lea edi, [esi + 0x34]
mov dword [esi + 0x14], edx
rep stosd dword es:[edi], eax
mov byte [esp + 0x13], 0x20
lea edi, [esi + 0x2b8]
mov al, byte [esp + 0x13]
lea ecx, [esp + 0x1c]
push ecx
push 1
lea edx, [esp + 0x22]
push edx
push ebp
mov byte [esp + 0x2a], al
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0x1434]
lea edx, [eax + ecx]
mov ecx, dword [esi + 0x28]
add edx, ebx
cmp edx, ecx
jbe 0x448371
mov ecx, dword [esp + 0x14]
mov ebx, eax
mov eax, dword [esp + 0x20]
lea edx, [ecx + eax + 1]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x14]
push 0
push 1
lea eax, [esp + 0x22]
push eax
push 0
push 2
push ecx
push ebx
push ebp
call dword [sym.imp.GDI32.dll_ExtTextOutA]
mov eax, dword [esi + 0x1434]
mov ecx, dword [esi + 0x28]
mov edx, ebx
sub edx, eax
xor eax, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
fild qword [esp + 0x40]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
fidiv dword [esp + 0x80]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x64], eax
add edi, 0x14
fstp dword [edi - 0x18]
fild qword [esp + 0x58]
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x78], edx
fidiv dword [esp + 0x78]
fstp dword [edi - 0x14]
mov edx, dword [esi + 0x1434]
add edx, dword [esp + 0x1c]
add edx, ebx
mov dword [esp + 0x68], edx
mov edx, dword [esi + 0x28]
fild qword [esp + 0x68]
mov dword [esp + 0x48], edx
fidiv dword [esp + 0x48]
fstp dword [edi - 0x10]
mov edx, dword [esp + 0x20]
add edx, ecx
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x50], edx
fild qword [esp + 0x50]
mov dword [esp + 0x60], ecx
fidiv dword [esp + 0x60]
fstp dword [edi - 0xc]
mov dword [edi - 8], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x1434]
lea ecx, [eax + edx*2]
mov al, byte [esp + 0x13]
add ebx, ecx
inc al
cmp al, 0x7f
mov byte [esp + 0x13], al
jl 0x44832e
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov ecx, dword [eax]
push 0
push 0
lea edx, [esp + 0x78]
push edx
push 0
push eax
call dword [ecx + 0x4c]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0x74]
xor edi, edi
test eax, eax
mov dword [esp + 0x14], ecx
jbe 0x4484d0
mov eax, dword [esi + 0x28]
xor edx, edx
test eax, eax
jbe 0x4484be
mov ebx, dword [esp + 0x30]
imul eax, edi
add eax, edx
mov eax, dword [ebx + eax*4]
shr eax, 4
and al, 0xf
jbe 0x4484aa
movzx ax, al
shl eax, 0xc
or eax, 0xfff
mov word [ecx], ax
jmp 0x4484af
mov word [ecx], 0
mov eax, dword [esi + 0x28]
add ecx, 2
inc edx
cmp edx, eax
jb 0x448486
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x70]
mov eax, dword [esi + 0x2c]
add ecx, ebx
inc edi
cmp edi, eax
mov dword [esp + 0x14], ecx
jb 0x44847d
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov edx, dword [eax]
push 0
push eax
call dword [edx + 0x50]
mov eax, dword [esp + 0x34]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebp
call esi
mov ecx, dword [esp + 0x3c]
push ecx
push ebp
call esi
mov edx, dword [esp + 0x38]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push edx
call esi
mov eax, dword [esp + 0x24]
push eax
call esi
push ebp
call dword [sym.imp.GDI32.dll_DeleteDC]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1d4
ret 4