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

Disassembly:
sub esp, 0x134
push ebx
push ebp
push esi
mov esi, dword [esp + 0x144]
push edi
mov ebp, ecx
mov eax, dword [esi + 0x18]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.GDI32.dll_SaveDC]
mov ebx, dword [esi + 8]
xor edi, edi
cmp ebx, edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x3c], ebx
jl 0x44fd80
cmp ebp, edi
je 0x44f483
lea esi, [ebp + 4]
mov dword [esp + 0x38], esi
jmp 0x44f489
mov dword [esp + 0x38], edi
mov esi, edi
mov ecx, dword [esi]
lea eax, [esp + 0x134]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esi]
lea edx, [esp + 0x68]
push edx
push ebx
mov dword [esp + 0x70], edi
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x100e
push eax
call edi
mov edx, dword [esi]
lea ecx, [esp + 0xac]
push ecx
push 0
push 0x104b
push edx
mov dword [esp + 0xbc], 0x1e
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], 0
mov dword [esp + 0xcc], 0xffff
call edi
mov esi, dword [ebp + 4]
call dword [sym.imp.USER32.dll_GetFocus]
xor ecx, ecx
cmp esi, eax
sete cl
mov eax, ecx
mov cl, byte [esp + 0xb8]
test cl, 8
mov dword [esp + 0x50], eax
jne 0x44f52f
test cl, 2
je 0x44f528
test eax, eax
jne 0x44f52f
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test al, 8
jne 0x44f52f
mov byte [esp + 0x23], 0
jmp 0x44f534
mov byte [esp + 0x23], 1
test byte [esp + 0xb8], 2
je 0x44f54a
mov edx, dword [0x4e9bb4]
mov dword [esp + 0x54], edx
jmp 0x44f553
mov eax, dword [0x4e9bac]
mov dword [esp + 0x54], eax
mov eax, dword [0x4e9bb0]
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x1c], eax
and eax, 0xff
mov ecx, 0xff
push 0xff
sub ecx, eax
push 0x40
push ecx
mov dword [esp + 0x20], eax
call edi
mov esi, eax
mov eax, dword [esp + 0x14]
add esi, eax
xor eax, eax
mov al, byte [esp + 0x1d]
mov edx, 0xff
and eax, 0xff
push 0xff
sub edx, eax
push 0x40
push edx
mov dword [esp + 0x20], eax
call edi
mov ecx, dword [esp + 0x14]
push 0xff
add eax, ecx
mov ecx, 0xff
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
shr eax, 0x10
mov dword [esp + 0x18], eax
and eax, 0xff
sub ecx, eax
push 0x40
push ecx
call edi
mov dl, byte [esp + 0x14]
and esi, 0xff
add al, dl
xor edx, edx
mov dh, al
mov al, byte [esp + 0xb8]
mov dl, byte [esp + 0x24]
mov dword [ebp + 0x38], 0
shl edx, 8
or edx, esi
test al, 1
mov dword [esp + 0x10], edx
je 0x44f607
mov eax, dword [0x4e9bb0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x44f6aa
mov eax, dword [esp + 0x10]
mov ecx, 0xff
and eax, 0xff
push 0xff
sub ecx, eax
push 0x80
push ecx
mov dword [esp + 0x20], eax
call edi
mov esi, eax
mov eax, dword [esp + 0x14]
add esi, eax
xor eax, eax
mov al, byte [esp + 0x11]
mov edx, 0xff
and eax, 0xff
push 0xff
sub edx, eax
push 0x80
push edx
mov dword [esp + 0x20], eax
call edi
mov ecx, dword [esp + 0x14]
push 0xff
add eax, ecx
mov ecx, 0xff
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
mov dword [esp + 0x18], eax
and eax, 0xff
sub ecx, eax
push 0x80
push ecx
call edi
mov cl, byte [esp + 0x14]
xor edx, edx
add al, cl
and esi, 0xff
mov dh, al
mov dl, byte [esp + 0x1c]
shl edx, 8
or edx, esi
mov dword [esp + 0x10], edx
mov al, byte [esp + 0x23]
test al, al
je 0x44f710
lea eax, [esp + 0x58]
mov ecx, ebp
push eax
push 2
push 0
push ebx
call fcn.00450090
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x70]
mov edi, dword [sym.imp.GDI32.dll_SetBkColor]
push edx
push eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], 0
call edi
mov esi, eax
cmp esi, 0xffffffff
je 0x44f710
mov edx, dword [esp + 0x18]
push 0
push 0
lea ecx, [esp + 0x60]
push 0
push ecx
push 2
push 0
push 0
push edx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [esp + 0x18]
push esi
push eax
call edi
test byte [esp + 0xb8], 1
je 0x44f74d
lea ecx, [esp + 0x40]
push ecx
push 2
push 0
push ebx
mov ecx, ebp
call fcn.00450090
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
dec edx
lea eax, [esp + 0x40]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x70]
dec edx
push eax
push ecx
mov dword [esp + 0x50], edx
call dword [sym.imp.USER32.dll_DrawFocusRect]
mov eax, dword [esp + 0x38]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
lea edx, [esp + 0x114]
xor esi, esi
mov ecx, dword [eax]
push edx
push esi
push 0x105f
push ecx
mov dword [esp + 0x124], 3
mov dword [esp + 0x34], esi
call edi
test eax, eax
je 0x44fd70
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x28], eax
push 0xffffffffffffffff
lea ecx, [edx + eax]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x2c]
push 0xfffffffffffffffe
push edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], ecx
call dword [sym.imp.USER32.dll_InflateRect]
mov ecx, dword [ebp + 4]
lea eax, [esp + 0x28]
push eax
push ebx
push 0x1038
push ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], 0
call edi
mov eax, dword [esp + 0x30]
test eax, eax
jl 0x44fd46
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x13c]
cmp edx, eax
jg 0x44fd46
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x9c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetClipBox]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x7c], eax
lea edx, [esp + 0x7c]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x80], ecx
lea eax, [esp + 0x8c]
push edx
lea ecx, [esp + 0x5c]
push eax
push ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0x94], edi
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x44fd46
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x44fd46
mov eax, dword [0x4d9540]
mov edi, 0x400
mov dword [esp + 0x10], eax
mov ecx, dword [eax - 0xc]
lea edx, [eax - 0xc]
cmp ecx, 1
mov dword [esp + 0x1c], edx
jg 0x44f8c5
cmp dword [eax - 4], edi
jge 0x44f947
mov ecx, dword [eax - 8]
cmp ecx, 0x400
mov dword [esp + 0x14], ecx
jle 0x44f8e0
test ecx, ecx
mov edi, ecx
jne 0x44f8e0
mov dword [esp + 0x10], eax
jmp 0x44f913
lea eax, [edi + edi + 0xe]
push eax
call fcn.004c58a5
xor edx, edx
add esp, 4
cmp eax, edx
je 0x44f949
mov ecx, dword [esp + 0x14]
mov dword [eax], 1
mov word [eax + edi*2 + 0xc], dx
mov edx, dword [esp + 0x1c]
mov dword [eax + 4], edi
mov dword [eax + 8], edi
add eax, 0xc
mov dword [esp + 0x10], eax
lea ecx, [ecx + ecx + 2]
lea esi, [edx + 0xc]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x1c]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax - 8], ecx
call fcn.00401350
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov edx, eax
mov ecx, 9
xor eax, eax
lea edi, [esp + 0xf0]
mov dword [esp + 0xec], 0
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 4]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esp + 0xec]
mov dword [esp + 0xf4], esi
push eax
push ebx
push 0x1073
push ecx
mov dword [esp + 0x114], 0x400
mov dword [esp + 0x110], edx
call edi
mov edx, dword [esp + 0x10]
mov ecx, dword [edx - 0xc]
lea eax, [edx - 0xc]
cmp ecx, 1
mov dword [esp + 0x1c], eax
jle 0x44f9f2
lea ecx, [esp + 0x10]
call fcn.0040e950
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x14]
call fcn.004012f0
test eax, eax
je 0x44f9f2
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 4]
lea esi, [eax + 0xc]
lea ecx, [edx + edx + 2]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x24]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [esp + 0x10]
mov dword [edx - 8], eax
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xdc]
push edx
push 1
mov word [ecx + eax*2], 0
push esi
push ebx
mov ecx, ebp
call fcn.00450090
mov eax, dword [ebp + 4]
push 7
push ebx
push 0x102c
push eax
call edi
mov edx, dword [ebp + 4]
lea ecx, [esp + 0x28]
push ecx
push ebx
push 0x1038
push edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], 2
call edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
add eax, 3
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x54]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [ebp + 0x3c]
xor edi, edi
test eax, eax
je 0x44fa7b
test byte [eax + esi*4], 1
je 0x44fa7b
mov edi, 2
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp + 0x84]
sub ecx, 2
mov edx, dword [ebp]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + ebx*4]
push ecx
push esi
lea eax, [esp + 0x30]
push ebx
lea ecx, [esp + 0x24]
push eax
push ecx
mov ecx, ebp
call dword [edx + 0x10]
test eax, eax
jne 0x44fac6
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
or edi, 0x8804
lea edx, [esp + 0x28]
push edi
push edx
push 0xffffffffffffffff
push eax
push ecx
call dword [sym.imp.USER32.dll_DrawTextW]
test esi, esi
jne 0x44fc04
mov edx, dword [ebp + 0x84]
push 0x31
mov esi, dword [edx + ebx*4]
mov dword [esp + 0x20], esi
call dword [sym.imp.USER32.dll_GetSystemMetrics]
fild dword [esp + 0xdc]
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x2c]
fild dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], ecx
fmul qword [0x4d4290]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
fsubp st(1)
call fcn.004c64c8
mov edi, eax
test esi, esi
lea ecx, [edi + ebx]
mov dword [esp + 0x48], ecx
je 0x44fb7e
mov eax, dword [esi + 4]
test eax, eax
je 0x44fb7e
mov edx, dword [esp + 0x1c]
push esi
push edx
mov ecx, ebp
call fcn.004503a0
push eax
mov ecx, dword [esp + 0x48]
sub esp, 0x10
mov edx, dword [esp + 0x5c]
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 8], edx
lea edx, [esp + 0x2c]
push edx
mov dword [eax + 0xc], ecx
mov ecx, ebp
call fcn.00450460
mov ecx, dword [esp + 0x48]
mov esi, dword [esi + 4]
sub edi, ebx
sub ecx, ebx
test esi, esi
mov dword [esp + 0x48], ecx
jne 0x44fb2e
mov al, byte [esp + 0xb8]
mov esi, 1
test al, 2
je 0x44fb9b
mov eax, dword [esp + 0x50]
test eax, eax
je 0x44fb9b
mov esi, 3
mov edx, dword [ebp + 0x84]
mov eax, dword [ebp]
lea ecx, [esp + 0xac]
push ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [edx + ecx*4]
mov ecx, ebp
push edx
call dword [eax + 0x28]
mov eax, dword [ebp + 0x8c]
mov ecx, dword [ebp + 0x90]
mov edx, dword [esp + 0xe0]
push esi
push 0xff000000
push 0xff000000
push eax
mov eax, dword [esp + 0xec]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0xe0]
push eax
mov eax, dword [ebp + 0x88]
push ecx
push edx
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_DrawEx]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x24]
mov eax, dword [ebp + 0x50]
test eax, eax
je 0x44fd17
push 5
call dword [sym.imp.USER32.dll_GetSysColor]
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebx, eax
mov ecx, ebx
push 0xff
and ecx, 0xff
push 0xdf
push ecx
call edi
xor edx, edx
push 0xff
mov dl, bh
push 0xdf
and edx, 0xff
mov esi, eax
push edx
call edi
shr ebx, 0x10
push 0xff
and ebx, 0xff
push 0xdf
push ebx
mov dword [esp + 0x20], eax
call edi
xor ecx, ecx
and esi, 0xff
mov ch, al
mov cl, byte [esp + 0x14]
shl ecx, 8
or ecx, esi
push ecx
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov edx, dword [esp + 0x18]
mov ebx, dword [sym.imp.GDI32.dll_SelectObject]
mov esi, eax
push esi
push edx
call ebx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edi, eax
lea eax, [esp + 0xd4]
push eax
mov eax, dword [esp + 0x1c]
inc edx
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
inc edx
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_LineTo]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0xd4]
dec edx
push ecx
push edx
push 0
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
dec ecx
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_LineTo]
mov ecx, dword [esp + 0x18]
push edi
push ecx
call ebx
test esi, esi
je 0x44fd0f
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov ecx, dword [0x4d9544]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x44fd46
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x44fd46
mov eax, dword [esp + 0x10]
add eax, 0xfffffff4
push eax
call fcn.004c5432
add esp, 4
mov edx, dword [esp + 0x38]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [esp + 0x114]
inc esi
mov eax, dword [edx]
push ecx
push esi
push 0x105f
push eax
mov dword [esp + 0x34], esi
call edi
test eax, eax
jne 0x44f783
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
push ecx
push edx
call dword [sym.imp.GDI32.dll_RestoreDC]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret 4