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

Disassembly:
push 0xffffffffffffffff
push 0x43e220
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
push esi
mov esi, ecx
lea eax, [esp + 0x4c]
mov dword [esp + 8], esi
mov ecx, dword [esi + 0x1c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x7c]
lea eax, [edx - 2]
cmp ecx, eax
jle 0x404461
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x80]
push ebx
push ebp
push edi
mov ecx, dword [eax + 0x130]
mov ebx, dword [eax + 4]
mov edi, dword [eax + 0x12c]
mov dword [esp + 0x18], ecx
mov cl, byte [esp + 0x90]
mov dword [esp + 0x20], ebx
test cl, cl
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], edi
je 0x4044b6
mov edx, dword [eax + 0x134]
mov ecx, dword [eax + 0x138]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 0x13c]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
xor ebp, ebp
mov dword [esp + 0x30], vtable.CPen.0
mov dword [esp + 0x34], ebp
push edi
push ebp
push ebp
mov dword [esp + 0x7c], ebp
call dword [sym.imp.GDI32.dll_CreatePen]
push eax
lea ecx, [esp + 0x34]
call fcn.0043b9eb
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], vtable.CBrush.0
push edi
mov byte [esp + 0x74], 1
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [esp + 0x2c]
call fcn.0043b9eb
mov ebp, dword [esp + 0x78]
lea eax, [esp + 0x30]
push eax
mov ecx, ebp
call fcn.0043b4c2
lea ecx, [esp + 0x28]
mov dword [esp + 0x24], eax
push ecx
mov ecx, ebp
call fcn.0043b4c2
cmp edi, ebx
mov dword [esp + 0x78], eax
je 0x40454f
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [ebp + 4]
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_Rectangle]
mov ecx, dword [esi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.00437096
mov edx, dword [eax + 0x1c]
push 0
push 0
push 0x31
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push eax
call fcn.0043b9d6
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x28]
mov dword [esp + 0x90], eax
mov al, byte [esp + 0x90]
push 0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x4c], al
call fcn.00417e30
mov cl, byte [esp + 0x90]
push 0
mov byte [esp + 0x3c], cl
lea ecx, [esp + 0x3c]
mov byte [esp + 0x74], 2
call fcn.00417e30
mov esi, dword [esp + 0x8c]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x3c]
push ebx
call fcn.00403160
test al, al
je 0x4045f9
mov edi, dword [esp + 0x3c]
mov ecx, ebx
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x3c]
call fcn.004030c0
mov edi, 0x44c230
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x70], 3
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push eax
push 0x44c230
lea ecx, [esp + 0x44]
call fcn.00403030
mov esi, eax
mov eax, dword [0x441678]
cmp esi, eax
je 0x40472b
push eax
lea eax, [esp + 0x3c]
push 0
push eax
lea ecx, [esp + 0x54]
call fcn.00402e20
mov eax, dword [esp + 0x50]
lea edi, [esi + 1]
cmp eax, edi
jae 0x40464a
mov edi, eax
test edi, edi
jbe 0x404691
lea ecx, [esp + 0x48]
call fcn.004030e0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
sub eax, edi
lea edx, [ecx + edi]
push eax
push edx
push ecx
call fcn.00427550
mov ebx, dword [esp + 0x5c]
add esp, 0xc
sub ebx, edi
lea ecx, [esp + 0x48]
push 0
push ebx
call fcn.00403160
test al, al
je 0x404691
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], ebx
mov byte [ecx + ebx], 0
mov edx, dword [0x441678]
lea eax, [esp + 0x48]
push edx
push 0
push eax
lea ecx, [esp + 0x54]
call fcn.00402e20
mov eax, dword [esp + 0x40]
mov edi, dword [0x441678]
cmp eax, esi
jae 0x4046bb
call fcn.00431cfc
mov eax, dword [esp + 0x40]
sub eax, esi
cmp eax, edi
jae 0x4046c7
mov edi, eax
test edi, edi
jbe 0x404714
lea ecx, [esp + 0x38]
call fcn.004030e0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
sub eax, esi
lea ecx, [edx + esi]
sub eax, edi
add ecx, edi
add esi, edx
push eax
push ecx
push esi
call fcn.00427550
mov esi, dword [esp + 0x4c]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x38]
push 0
push esi
call fcn.00403160
test al, al
je 0x404714
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], esi
mov byte [ecx + esi], 0
mov edx, dword [0x441678]
lea eax, [esp + 0x38]
push edx
push 0
push eax
lea ecx, [esp + 0x44]
call fcn.00402e20
mov eax, dword [esp + 0x18]
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x30]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
cmp esi, eax
je 0x40474f
mov edx, dword [ebp]
push esi
mov ecx, ebp
call dword [edx + 0x2c]
jmp 0x404758
push 1
mov ecx, ebp
call fcn.0043b537
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x404765
mov eax, 0x44167c
mov edx, dword [ebp]
lea ecx, [esp + 0x7c]
push 0
push ecx
push 0xffffffffffffffff
push eax
mov ecx, ebp
call dword [edx + 0x68]
mov edx, dword [esp + 0x4c]
mov edi, 0x44167c
test edx, edx
je 0x404786
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4047c1
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x7c]
mov ecx, dword [eax + 0x134]
add edi, ecx
test edx, edx
mov dword [esp + 0x7c], edi
jne 0x4047af
mov edx, 0x44167c
mov eax, dword [ebp]
lea ecx, [esp + 0x7c]
push 0
push ecx
push 0xffffffffffffffff
push edx
mov ecx, ebp
call dword [eax + 0x68]
mov ebx, dword [esp + 0x1c]
cmp esi, ebx
je 0x4048d7
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.00437096
cmp eax, dword [esp + 0x14]
jne 0x4048d7
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x84]
mov edi, dword [sym.imp.GDI32.dll_SetPixel]
cmp eax, ecx
mov esi, eax
jge 0x40481c
mov edx, dword [esp + 0x80]
mov eax, dword [ebp + 4]
push ebx
push edx
push esi
push eax
call edi
mov ecx, dword [esp + 0x84]
add esi, 2
cmp esi, ecx
jl 0x4047fa
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 0x7c]
and esi, 0x80000001
jns 0x404830
dec esi
or esi, 0xfffffffe
inc esi
dec esi
neg esi
sbb esi, esi
neg esi
add esi, eax
cmp esi, ecx
jge 0x40485c
mov eax, dword [esp + 0x88]
mov ecx, dword [ebp + 4]
dec eax
push ebx
push eax
push esi
push ecx
call edi
mov ecx, dword [esp + 0x84]
add esi, 2
cmp esi, ecx
jl 0x40483d
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x88]
cmp esi, edx
jge 0x404897
mov edx, dword [esp + 0x7c]
mov eax, dword [ebp + 4]
push ebx
push esi
push edx
push eax
call edi
mov edx, dword [esp + 0x88]
add esi, 2
cmp esi, edx
jl 0x40486e
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov eax, ecx
sub eax, dword [esp + 0x7c]
and eax, 0x80000001
jns 0x4048a9
dec eax
or eax, 0xfffffffe
inc eax
dec eax
neg eax
sbb eax, eax
neg eax
add esi, eax
cmp esi, edx
jge 0x4048d7
jmp 0x4048bf
mov ecx, dword [esp + 0x84]
dec ecx
push ebx
push esi
push ecx
mov ecx, dword [ebp + 4]
push ecx
call edi
mov eax, dword [esp + 0x88]
add esi, 2
cmp esi, eax
jl 0x4048b8
mov eax, dword [esp + 0x90]
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x28]
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, ebp
call fcn.0043b4c2
mov edx, dword [esp + 0x24]
mov ecx, ebp
push edx
call fcn.0043b4c2
mov eax, dword [esp + 0x3c]
xor esi, esi
pop edi
pop ebp
cmp eax, esi
pop ebx
je 0x404925
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40491c
dec al
mov byte [ecx], al
jmp 0x404925
push ecx
call fcn.00439dae
add esp, 4
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], esi
cmp eax, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
je 0x404952
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x404949
dec al
mov byte [ecx], al
jmp 0x404952
push ecx
call fcn.00439dae
add esp, 4
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov esi, vtable.CGdiObject.0
mov dword [esp + 0x1c], esi
lea ecx, [esp + 0x1c]
mov byte [esp + 0x64], 4
call fcn.0043ba42
mov dword [esp + 0x24], esi
lea ecx, [esp + 0x24]
mov dword [esp + 0x64], 5
call fcn.0043ba42
mov ecx, dword [esp + 0x5c]
pop esi
mov dword fs:[0], ecx
add esp, 0x64
ret 0x1c