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

Disassembly:
push 0xffffffffffffffff
push 0x5841d8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
mov al, byte [esp + 0x84]
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_CopyRect]
mov dword [esp + 0xc], ecx
push esi
mov cl, byte [esp + 0x8c]
push edi
test al, al
mov dword [esp + 0x18], 0xffffffff
mov byte [esp + 0x13], 0
je 0x4b92e3
test cl, cl
je 0x4b92eb
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x38]
push eax
push ecx
call ebp
mov esi, dword [esp + 0x88]
test esi, esi
jne 0x4b905f
xor edi, edi
jmp 0x4b9062
mov edi, dword [esi + 4]
mov ebx, dword [sym.imp.USER32.dll_GetSysColor]
push 0x15
call ebx
push eax
push edi
lea ecx, [esp + 0x60]
call fcn.0044eeb0
test esi, esi
mov dword [esp + 0x80], 0
jne 0x4b908a
xor edi, edi
jmp 0x4b908d
mov edi, dword [esi + 4]
push 0
push 0x14
push 0xf
call ebx
push eax
call fcn.0044eb20
add esp, 0xc
lea ecx, [esp + 0x48]
push eax
push edi
call fcn.0044eff0
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
sub eax, 4
push ebp
mov dword [0x5f40c8], ecx
mov dword [0x5f40cc], edi
mov dword [0x5f40d0], eax
mov dword [0x5f40d4], ebp
mov edx, dword [esi + 4]
push eax
push edi
push ecx
push edx
mov byte [esp + 0x94], 1
mov dword [esp + 0x54], eax
mov byte [esp + 0x27], 1
call dword [sym.imp.GDI32.dll_Rectangle]
mov eax, dword [esp + 0x40]
push 0xf
mov dword [esp + 0x3c], eax
add eax, 4
mov dword [esp + 0x44], eax
call ebx
push eax
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call sub.MFC42.DLL_CDC::FillSolidRect_1
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x98], 0
mov dword [esp + 0x1c], 2
mov esi, dword [esp + 0x1c]
xor edx, edx
test esi, esi
setle dl
dec edx
mov edi, eax
and edx, esi
mov esi, dword [esp + 0x98]
mov ebp, edx
xor edx, edx
test esi, esi
setle dl
inc edx
sub edi, edx
mov dword [esp + 0x20], edx
sub edi, ecx
sub edi, esi
cmp ebp, edi
jge 0x4b927e
test ebp, ebp
jne 0x4b9168
xor eax, eax
jmp 0x4b9194
cmp ebp, 1
jne 0x4b917e
mov edx, dword [esp + 0x98]
xor eax, eax
cmp edx, 2
setge al
jmp 0x4b9194
cmp ebp, 2
jne 0x4b918d
mov eax, dword [esp + 0x1c]
test eax, eax
mov eax, ebp
jle 0x4b9194
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x98]
lea eax, [eax + eax*4]
mov esi, 0x5d
lea ecx, [ecx + ebp + 4]
sub esi, eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x8c]
sub eax, ebx
mov edx, dword [ecx + 4]
dec eax
push eax
push edx
call dword [sym.imp.GDI32.dll_GetPixel]
mov ecx, eax
mov eax, 0x51eb851f
mov edx, ecx
xor ebx, ebx
shr edx, 0x10
and edx, 0xff
imul edx, esi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bh, dl
xor edx, edx
mov dl, ch
and ecx, 0xff
and edx, 0xff
imul ecx, esi
imul edx, esi
mov edi, edx
mov esi, ecx
imul edi
mov edi, edx
sar edi, 5
mov eax, edi
mov edx, edi
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
mov bl, dl
imul esi
sar edx, 5
mov eax, edx
mov esi, dword [esp + 0x98]
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x40]
shl ebx, 8
and edx, 0xff
sub eax, esi
or ebx, edx
mov edx, dword [esp + 0x3c]
mov ecx, ebx
dec eax
lea edx, [edx + ebp + 4]
push ecx
push edx
push eax
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.GDI32.dll_SetPixel]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
mov edx, eax
inc ebp
sub edx, ecx
mov ecx, dword [esp + 0x3c]
sub edx, ecx
sub edx, esi
cmp ebp, edx
jl 0x4b9160
mov ebx, dword [esp + 0x98]
mov edx, dword [esp + 0x1c]
inc ebx
dec edx
cmp edx, 0xfffffffe
mov dword [esp + 0x98], ebx
mov dword [esp + 0x1c], edx
jg 0x4b912d
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 0
call fcn.0044f080
lea ecx, [esp + 0x58]
mov dword [esp + 0x80], 0xffffffff
call fcn.0044ef30
mov ebp, dword [sym.imp.USER32.dll_CopyRect]
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov ebx, dword [sym.imp.USER32.dll_GetSysColor]
jmp 0x4b94bd
test cl, cl
jne 0x4b93a3
mov cl, byte [esp + 0x98]
test cl, cl
je 0x4b9305
mov cl, byte [esp + 0x9c]
test cl, cl
je 0x4b93a3
test al, al
jne 0x4b937d
mov edi, dword [esp + 0x8c]
lea eax, [esp + 0x38]
push edi
push eax
call ebp
mov ebx, dword [sym.imp.USER32.dll_GetSysColor]
push 0
push 0x14
push 0xf
mov dword [esp + 0x4c], 0x16
call ebx
push eax
call fcn.0044eb20
mov esi, dword [esp + 0x94]
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
push ecx
mov ecx, esi
call sub.MFC42.DLL_CDC::FillSolidRect_1
mov edx, dword [esp + 0x40]
mov eax, dword [edi + 8]
push 0
push 0x4b
push 0xf
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], eax
call ebx
push eax
call fcn.0044eb20
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
push ecx
mov ecx, esi
call sub.MFC42.DLL_CDC::FillSolidRect_1
jmp 0x4b94bd
mov ebx, dword [sym.imp.USER32.dll_GetSysColor]
push 0xf
call ebx
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
push eax
push edi
mov ecx, esi
call sub.MFC42.DLL_CDC::FillSolidRect_1
jmp 0x4b94bd
mov ebx, dword [sym.imp.USER32.dll_GetSysColor]
push 0xd
call ebx
mov esi, dword [esp + 0x88]
mov edi, eax
test esi, esi
jne 0x4b93be
xor eax, eax
jmp 0x4b93c1
mov eax, dword [esi + 4]
push edi
push eax
lea ecx, [esp + 0x50]
call fcn.0044eeb0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x80], 2
call fcn.004b8d90
test al, al
je 0x4b93ef
push 0
push 0x49
push 0xf
call ebx
push eax
jmp 0x4b93f4
push 0xffffffffffffffc7
push 0x46
push edi
call fcn.0044eb20
add esp, 0xc
mov dword [esp + 0x18], eax
test esi, esi
jne 0x4b9408
xor ecx, ecx
jmp 0x4b940b
mov ecx, dword [esi + 4]
push eax
push ecx
lea ecx, [esp + 0x60]
call fcn.0044eff0
mov al, byte [esp + 0x94]
mov edi, dword [esp + 0x8c]
test al, al
mov byte [esp + 0x80], 3
je 0x4b947f
lea edx, [esp + 0x38]
push edi
push edx
call ebp
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
sub eax, 4
push ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x44], eax
push eax
mov eax, dword [esp + 0x40]
push edx
push eax
push ecx
call dword [sym.imp.GDI32.dll_Rectangle]
mov eax, dword [esp + 0x40]
push 0xf
mov dword [esp + 0x3c], eax
add eax, 4
mov dword [esp + 0x44], eax
call ebx
lea edx, [esp + 0x38]
push eax
push edx
mov ecx, esi
call sub.MFC42.DLL_CDC::FillSolidRect_1
jmp 0x4b9498
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
push eax
mov eax, dword [edi]
push ecx
mov ecx, dword [esi + 4]
push edx
push eax
push ecx
call dword [sym.imp.GDI32.dll_Rectangle]
lea ecx, [esp + 0x58]
mov byte [esp + 0x80], 2
call fcn.0044f080
lea ecx, [esp + 0x48]
mov dword [esp + 0x80], 0xffffffff
call fcn.0044ef30
mov ecx, dword [esp + 0x14]
call fcn.004b8d40
test al, al
je 0x4b9553
test esi, esi
jne 0x4b94d6
xor ebp, ebp
jmp 0x4b94d9
mov ebp, dword [esi + 4]
push 0
push 0xffffffffffffffee
push 0xf
call ebx
push eax
call fcn.0044eb20
add esp, 0xc
lea ecx, [esp + 0x58]
push eax
push ebp
call fcn.0044eeb0
mov eax, dword [edi + 4]
mov ebp, dword [edi + 0xc]
add eax, ebp
mov ecx, esi
cdq
sub eax, edx
mov edx, dword [edi]
sar eax, 1
push eax
add edx, 0x1e
lea eax, [esp + 0x24]
push edx
push eax
mov dword [esp + 0x8c], 4
call sub.MFC42.DLL_CDC::MoveTo
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 8]
add eax, edx
cdq
sub eax, edx
sar eax, 1
dec ecx
push eax
push ecx
mov ecx, esi
call sub.MFC42.DLL_CDC::LineTo
lea ecx, [esp + 0x58]
mov dword [esp + 0x80], 0xffffffff
call fcn.0044ef30
jmp 0x4b9aaf
lea edx, [esp + 0x28]
push edi
push edx
call ebp
lea ecx, [esp + 0x98]
call sub.MFC42.DLL_CString::CString_5
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x98]
push eax
mov dword [esp + 0x84], 5
call fcn.004b8bd0
test eax, eax
jle 0x4b9a98
mov al, byte [esp + 0x9c]
test al, al
je 0x4b959a
push 0x10
jmp 0x4b95bc
mov ecx, dword [esp + 0x14]
call fcn.004b8d90
test al, al
je 0x4b95ba
push 0
push 0xffffffffffffffee
push 0xf
call ebx
push eax
call fcn.0044eb20
add esp, 0xc
jmp 0x4b95be
push 7
call ebx
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x38]
push 1
mov ecx, esi
call sub.MFC42.DLL_CDC::SetBkMode
lea eax, [esp + 0x88]
push 0
push eax
push 0
push 0x100a
mov dword [esp + 0x98], 1
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov al, byte [esp + 0xa0]
test al, al
je 0x4b960e
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x4b960e
mov ebp, 0x100000
jmp 0x4b9610
xor ebp, ebp
mov al, byte [esp + 0x94]
test al, al
je 0x4b9647
mov eax, dword [esp + 0x30]
mov edx, dword [esi]
sub eax, 4
or ebp, 0x25
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x98]
lea edi, [esp + 0x28]
push ebp
mov ecx, dword [eax - 8]
push edi
push ecx
push eax
mov ecx, esi
call dword [edx + 0x70]
jmp 0x4b9a98
test esi, esi
jne 0x4b964f
xor ebx, ebx
jmp 0x4b9652
mov ebx, dword [esi + 4]
mov ecx, dword [esp + 0x14]
call fcn.004b8da0
push eax
push ebx
lea ecx, [esp + 0x70]
call fcn.0044f260
mov eax, dword [esp + 0x98]
mov edx, dword [esi]
or ebp, 0x24
mov dword [esp + 0x28], 0x1e
mov ecx, dword [eax - 8]
lea ebx, [esp + 0x28]
push ebp
push ebx
push ecx
push eax
mov ecx, esi
mov byte [esp + 0x90], 6
call dword [edx + 0x70]
lea ecx, [esp + 0x9c]
call sub.MFC42.DLL_CString::CString_5
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x9c]
push eax
mov byte [esp + 0x84], 7
call fcn.004b8c70
test eax, eax
jle 0x4b96e0
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x9c]
mov edx, dword [esi]
sub ebp, 0xc
mov dword [esp + 0x30], ebp
mov ecx, dword [eax - 8]
lea ebx, [esp + 0x28]
push 0x26
push ebx
push ecx
push eax
mov ecx, esi
call dword [edx + 0x70]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.004b8d60
test al, al
je 0x4b97a7
push 0xd
call dword [sym.imp.USER32.dll_GetSysColor]
test esi, esi
mov ebp, eax
jne 0x4b9705
xor eax, eax
jmp 0x4b9708
mov eax, dword [esi + 4]
push ebp
push eax
lea ecx, [esp + 0x50]
call fcn.0044eeb0
mov ecx, ebx
mov byte [esp + 0x80], 8
call fcn.004b8d90
test al, al
je 0x4b9735
push 0
push 0x49
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
jmp 0x4b974b
mov al, byte [esp + 0x90]
test al, al
je 0x4b9746
push 0xffffffffffffffce
push 0x32
jmp 0x4b974a
push 0xffffffffffffffc7
push 0x46
push ebp
call fcn.0044eb20
add esp, 0xc
mov ebx, eax
test esi, esi
mov dword [esp + 0x18], ebx
jne 0x4b9761
xor eax, eax
jmp 0x4b9764
mov eax, dword [esi + 4]
push ebx
push eax
lea ecx, [esp + 0x60]
call fcn.0044eff0
mov eax, dword [edi + 0xc]
mov edx, dword [edi]
mov ecx, dword [edi + 4]
dec eax
lea ebp, [edx + 0x14]
inc ecx
push eax
mov eax, dword [esi + 4]
inc edx
push ebp
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_Rectangle]
lea ecx, [esp + 0x58]
call fcn.0044f080
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 7
call fcn.0044ef30
jmp 0x4b97ab
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x4b992a
cmp dword [ebp + 0x34], 0xffffffff
je 0x4b992a
mov ecx, ebp
call fcn.004b8d90
test al, al
jne 0x4b97de
mov al, byte [esp + 0x90]
test al, al
je 0x4b97de
mov bl, 1
jmp 0x4b97e0
xor bl, bl
mov ecx, ebp
mov byte [esp + 0x94], bl
call fcn.004b8d90
test al, al
jne 0x4b9810
mov al, byte [esp + 0x90]
test al, al
je 0x4b98b6
mov ecx, ebp
call fcn.004b8d60
test al, al
jne 0x4b98b6
mov eax, dword [esp + 0x14]
push 0
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x30]
push ecx
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
test bl, bl
mov ebp, eax
je 0x4b9832
push 0xffffffffffffffbe
push 0x32
push 0xd
jmp 0x4b9838
push 0
push 0xffffffffffffffe5
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
call fcn.0044eb20
add esp, 0xc
lea ecx, [esp + 0x20]
push eax
call sub.MFC42.DLL_CBrush::CBrush
test eax, eax
jne 0x4b9859
xor ebx, ebx
jmp 0x4b985c
mov ebx, dword [eax + 4]
mov dl, byte [esp + 0x94]
mov eax, dword [edi]
xor ecx, ecx
push 0x83
test dl, dl
mov edx, dword [esp + 0x30]
push 0x10
setne cl
add ecx, 3
push 0x10
add eax, ecx
add ecx, edx
mov edx, dword [esi + 4]
push ecx
push eax
push 0
push ebp
push 0
push ebx
push edx
call dword [sym.imp.USER32.dll_DrawStateA]
mov dword [esp + 0x20], 0x5916f4
lea ecx, [esp + 0x20]
mov byte [esp + 0x80], 9
call sub.MFC42.DLL_CGdiObject::DeleteObject
push ebp
call dword [sym.imp.USER32.dll_DestroyIcon]
mov ebp, dword [esp + 0x14]
mov ecx, ebp
call fcn.004b8d90
test al, al
jne 0x4b9a73
mov al, byte [esp + 0x90]
test al, al
je 0x4b98e0
mov ecx, ebp
call fcn.004b8d60
test al, al
mov ebx, 2
je 0x4b98e5
mov ebx, 3
mov al, byte [esp + 0x90]
test al, al
je 0x4b9900
mov ecx, ebp
call fcn.004b8d60
test al, al
mov eax, 2
je 0x4b9905
mov eax, 3
mov ecx, dword [esp + 0x2c]
mov edx, dword [edi]
add ebx, ecx
mov ecx, dword [ebp + 0x34]
push 1
add edx, eax
mov eax, dword [esi + 4]
push ebx
push edx
mov edx, dword [ebp + 0x30]
push eax
push ecx
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_Draw]
jmp 0x4b9a73
mov ecx, ebp
call fcn.004b8d60
test al, al
je 0x4b9a73
mov edi, dword [edi]
mov ecx, ebp
add edi, 5
mov dword [esp + 0x28], edi
add edi, 0xf
mov dword [esp + 0x30], edi
call fcn.004b8d70
test al, al
je 0x4b9a27
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
add eax, ecx
mov ecx, dword [esp + 0x14]
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
mov edi, eax
mov eax, dword [esp + 0x30]
add eax, edx
cdq
sub eax, edx
mov ebp, eax
sar edi, 1
sar ebp, 1
call fcn.004b8d90
test al, al
je 0x4b999e
push 0
push 0xffffffffffffffe5
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
call fcn.0044eb20
add esp, 0xc
jmp 0x4b99a6
push 7
call dword [sym.imp.USER32.dll_GetSysColor]
test esi, esi
mov ebx, eax
jne 0x4b99b0
xor eax, eax
jmp 0x4b99b3
mov eax, dword [esi + 4]
push ebx
push eax
lea ecx, [esp + 0x50]
call fcn.0044eeb0
test esi, esi
mov byte [esp + 0x80], 0xa
jne 0x4b99ce
xor eax, eax
jmp 0x4b99d1
mov eax, dword [esi + 4]
push ebx
push eax
lea ecx, [esp + 0x60]
call fcn.0044eff0
lea eax, [edi + 4]
lea ecx, [ebp + 3]
lea edx, [edi - 3]
push eax
lea ebx, [ebp - 4]
push ecx
mov ecx, dword [esi + 4]
push edx
push ebx
push ecx
call dword [sym.imp.GDI32.dll_Ellipse]
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 4]
add edi, 2
inc ebp
push edx
push edi
push ebp
push eax
call dword [sym.imp.GDI32.dll_SetPixel]
lea ecx, [esp + 0x58]
call fcn.0044f080
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 7
call fcn.0044ef30
jmp 0x4b9a73
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx + 0x34]
push 0x7ff8
push 0
call dword [sym.imp.USER32.dll_LoadBitmapA]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
mov edi, eax
mov eax, dword [esp + 0x34]
mov esi, dword [esi + 4]
sub eax, edx
sub ecx, ebp
push 4
add edx, 3
push eax
push ecx
push edx
push ebp
push 0
push edi
push 0
push 0
push esi
call dword [sym.imp.USER32.dll_DrawStateA]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
lea ecx, [esp + 0x9c]
mov byte [esp + 0x80], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x68]
mov byte [esp + 0x80], 5
call fcn.0044f330
lea ecx, [esp + 0x98]
mov dword [esp + 0x80], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x78]
mov al, byte [esp + 0x13]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x74
ret 0x1c