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

Disassembly:
push 0xffffffffffffffff
push 0x488239
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1a8
push ebx
push ebp
push esi
xor esi, esi
push edi
mov ebp, ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], vtable.CFont.0
mov ebx, dword [esp + 0x1c8]
push 0x48
push 0x5a
push ebx
mov dword [esp + 0x1cc], esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
mov dword [esp + 0x7c], eax
mov edi, 0x4a422c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], esi
lea edx, [esp + 0x98]
mov eax, ecx
mov esi, edi
mov edi, edx
mov byte [esp + 0x90], 0
shr ecx, 2
mov byte [esp + 0x91], 0
mov byte [esp + 0x92], 0
mov byte [esp + 0x93], 0
mov byte [esp + 0x94], 4
mov byte [esp + 0x95], 0
mov byte [esp + 0x96], 0
mov byte [esp + 0x97], 0x20
push 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.GDI32.dll_SetBkMode]
call esi
lea ecx, [esp + 0x7c]
push ecx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
push eax
lea ecx, [esp + 0x2c]
call fcn.00474b2b
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0x28]
neg eax
sbb eax, eax
and eax, edi
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebx
call edi
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x1c]
lea edx, [esp + 0x6c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [esp + 0x5c]
push ecx
push 5
push str.19999
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
sub edx, dword [esp + 0x60]
add ecx, eax
xor eax, eax
push 1
mov dword [esp + 0x74], eax
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0x78]
add edx, 0xfffffffc
mov dword [ebp + 0x4c], eax
sub eax, ecx
push ebx
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x58], edx
call esi
mov ecx, dword [ebp + 0x58]
xor esi, esi
cmp ecx, esi
jle 0x43d0e5
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
cdq
idiv ecx
mov edi, eax
test edi, edi
jge 0x43d00c
xor edi, edi
jmp 0x43d019
cmp edi, 0xff
jle 0x43d019
mov edi, 0xff
mov ecx, eax
test ecx, ecx
jge 0x43d023
xor ecx, ecx
jmp 0x43d030
cmp ecx, 0xff
jle 0x43d030
mov ecx, 0xff
test eax, eax
jge 0x43d038
xor eax, eax
jmp 0x43d044
cmp eax, 0xff
jle 0x43d044
mov eax, 0xff
xor edx, edx
and edi, 0xff
mov dh, al
mov dl, cl
lea ecx, [esp + 0x30]
shl edx, 8
or edx, edi
push edx
push 1
push 0
call fcn.00474b98
mov edi, dword [esp + 0x34]
lea eax, [esp + 0x30]
neg eax
sbb eax, eax
and eax, edi
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebp + 0x44]
mov edi, eax
mov eax, dword [ebp + 0x48]
push 0
add eax, esi
push eax
push ecx
push ebx
call dword [sym.imp.GDI32.dll_MoveToEx]
mov edx, dword [ebp + 0x48]
mov eax, dword [ebp + 0x4c]
add edx, esi
push edx
push eax
push ebx
call dword [sym.imp.GDI32.dll_LineTo]
push edi
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x30], vtable.CGdiObject.0
lea ecx, [esp + 0x30]
mov byte [esp + 0x1c0], 1
call fcn.00474b82
mov ecx, dword [esp + 0x10]
inc esi
add ecx, 0x40
mov byte [esp + 0x1c0], 0
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0x58]
cmp esi, ecx
jl 0x43cffb
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push 0
push 2
push 0
lea ecx, [esp + 0x54]
call fcn.00474b98
mov esi, dword [esp + 0x4c]
lea eax, [esp + 0x48]
neg eax
sbb eax, eax
mov byte [esp + 0x1c0], 2
and eax, esi
push eax
push ebx
call edi
mov ecx, dword [ebp + 0x48]
mov edx, dword [ebp + 0x44]
dec ecx
push 0
dec edx
push ecx
push edx
push ebx
mov dword [esp + 0x20], eax
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x4c]
mov esi, dword [sym.imp.GDI32.dll_LineTo]
dec eax
inc ecx
push eax
push ecx
push ebx
call esi
mov edx, dword [ebp + 0x50]
mov eax, dword [ebp + 0x4c]
inc edx
inc eax
push edx
push eax
push ebx
call esi
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x44]
inc ecx
dec edx
push ecx
push edx
push ebx
call esi
mov eax, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x44]
dec eax
dec ecx
push eax
push ecx
push ebx
call esi
mov edx, dword [esp + 0x10]
push edx
push ebx
call edi
push 0x707070
push 1
push 0
lea ecx, [esp + 0x5c]
call fcn.00474b98
push 0x404040
push 1
push 0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1cc], 3
call fcn.00474b98
mov eax, dword [ebp + 0x3c]
test eax, eax
je 0x43d4f2
mov eax, dword [0x4a8c20]
mov dword [esp + 0x18], eax
mov esi, dword [sym.imp.GDI32.dll_SetTextAlign]
push 0
push ebx
mov byte [esp + 0x1c8], 5
call esi
lea ecx, [esp + 0xb8]
push 0x4a8454
push ecx
call fcn.00449ffa
lea edi, [esp + 0xc0]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 0x50]
lea edx, [esp + 0xb8]
not ecx
dec ecx
add eax, 2
push ecx
mov ecx, dword [ebp + 0x44]
push edx
push eax
push ecx
push ebx
call dword [sym.imp.GDI32.dll_TextOutA]
push 2
push ebx
call esi
mov edi, 0x4a8440
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xb8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [ebp + 0x50]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
add edx, 2
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0xb8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 0x4c]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0xbc]
push ecx
push edx
push eax
push ebx
call dword [sym.imp.GDI32.dll_TextOutA]
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x14], 0
movsx ecx, byte [eax + 9]
movsx eax, byte [eax + 7]
mov edi, eax
mov dword [esp + 0x24], ecx
sub edi, ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x20], edi
js 0x43d3e5
mov esi, ecx
mov dword [esp + 0x1c], esi
jmp 0x43d28e
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
cmp esi, ecx
je 0x43d2c3
cmp esi, eax
je 0x43d2c3
mov eax, esi
mov ecx, 0xa
cdq
idiv ecx
test edx, edx
je 0x43d2c3
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x40]
neg eax
sbb eax, eax
and eax, edx
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x10], eax
jmp 0x43d383
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x50]
neg eax
sbb eax, eax
and eax, ecx
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x40]
lea edx, [esp + 0x18]
push 0
push edx
push eax
push esi
call fcn.0041a050
mov edi, dword [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xb8]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp + 0x58]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
imul eax, edi
cdq
idiv dword [esp + 0x20]
mov esi, eax
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
mov esi, eax
mov eax, dword [ebp + 0x50]
neg esi
sub esi, edx
add esi, eax
mov eax, dword [ebp + 0x60]
sub eax, esi
cmp eax, ecx
jg 0x43d34f
test edi, edi
jne 0x43d378
lea edi, [esp + 0xb8]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp + 0x44]
repne scasb al, byte es:[edi]
not ecx
dec ecx
sub edx, 4
push ecx
lea ecx, [esp + 0xbc]
push ecx
push esi
push edx
push ebx
call dword [sym.imp.GDI32.dll_TextOutA]
mov edi, dword [esp + 0x20]
mov dword [ebp + 0x60], esi
mov esi, dword [esp + 0x1c]
mov eax, esi
mov ecx, 5
cdq
idiv ecx
test edx, edx
jne 0x43d3cf
mov edx, dword [esp + 0x24]
mov eax, esi
sub eax, edx
mov esi, dword [ebp + 0x50]
imul eax, dword [ebp + 0x58]
cdq
idiv edi
mov edx, dword [ebp + 0x44]
push 0
sub esi, eax
push esi
push edx
push ebx
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp + 0x4c]
push esi
push eax
push ebx
call dword [sym.imp.GDI32.dll_LineTo]
mov ecx, dword [esp + 0x10]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
inc eax
inc esi
cmp eax, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
jle 0x43d286
push 0xffff
push 1
push 0
lea ecx, [esp + 0x44]
call fcn.00474b98
mov esi, dword [esp + 0x3c]
lea eax, [esp + 0x38]
neg eax
sbb eax, eax
and eax, esi
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebp + 0x3c]
xor esi, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
mov si, word [ecx + 0x1e]
test esi, esi
jle 0x43d4b3
jmp 0x43d430
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
xor edx, edx
mov dx, word [ecx + 0x20]
lea eax, [edx + eax + 1]
cdq
idiv esi
mov eax, dword [ebp + 0x54]
imul eax, dword [esp + 0x14]
mov cl, byte [edx + ecx + 0x22]
cdq
idiv esi
mov edx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [ebp + 0x44]
add esi, eax
movsx eax, cl
sub eax, edx
imul eax, dword [ebp + 0x58]
cdq
idiv edi
mov edi, dword [ebp + 0x50]
sub edi, eax
cmp cl, 0x80
je 0x43d499
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x43d493
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x5c]
push 0
push ecx
push edx
push ebx
call dword [sym.imp.GDI32.dll_MoveToEx]
push edi
push esi
push ebx
call dword [sym.imp.GDI32.dll_LineTo]
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x60], edi
mov ecx, dword [ebp + 0x3c]
mov eax, dword [esp + 0x14]
xor esi, esi
inc eax
mov si, word [ecx + 0x1e]
mov dword [esp + 0x14], eax
cmp eax, esi
jl 0x43d42c
mov eax, dword [esp + 0x10]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, vtable.CGdiObject.0
mov dword [esp + 0x38], esi
lea ecx, [esp + 0x38]
mov byte [esp + 0x1c0], 6
call fcn.00474b82
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 4
call fcn.0047162c
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x43d4f7
mov esi, vtable.CGdiObject.0
mov ecx, dword [esp + 0x58]
push ecx
push ebx
call edi
mov dword [esp + 0x40], esi
lea ecx, [esp + 0x40]
mov byte [esp + 0x1c0], 7
call fcn.00474b82
mov dword [esp + 0x50], esi
lea ecx, [esp + 0x50]
mov byte [esp + 0x1c0], 8
call fcn.00474b82
mov dword [esp + 0x48], esi
lea ecx, [esp + 0x48]
mov byte [esp + 0x1c0], 9
call fcn.00474b82
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c0], 0xa
call fcn.00474b82
mov ecx, dword [esp + 0x1b8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1b4
ret 4