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

Disassembly:
push 0xffffffffffffffff
push 0x4b6c20
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 dword [esp + 0xc], ecx
mov cl, byte [esp + 0x88]
or ebx, 0xffffffff
push esi
push edi
test al, al
mov dword [esp + 0x20], ebx
mov byte [esp + 0x13], 0
je 0x4748be
test cl, cl
je 0x4748c6
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.USER32.dll_CopyRect]
mov esi, dword [esp + 0x88]
test esi, esi
jne 0x47463c
xor edi, edi
jmp 0x47463f
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.004739d0
test esi, esi
mov dword [esp + 0x80], 0
jne 0x474667
xor edi, edi
jmp 0x47466a
mov edi, dword [esi + 4]
push 0
push 0x14
push 0xf
call ebx
push eax
call fcn.00463e10
add esp, 0xc
lea ecx, [esp + 0x48]
push eax
push edi
call fcn.00473ad0
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
sub eax, 4
push ebp
mov dword [0x4fb958], ecx
mov dword [0x4fb95c], edi
mov dword [0x4fb960], eax
mov dword [0x4fb964], ebp
mov edx, dword [esi + 4]
push eax
push edi
push ecx
push edx
mov byte [esp + 0x94], 1
mov dword [esp + 0x44], eax
mov byte [esp + 0x27], 1
call dword [sym.imp.GDI32.dll_Rectangle]
mov eax, dword [esp + 0x30]
push 0xf
mov dword [esp + 0x2c], eax
add eax, 4
mov dword [esp + 0x34], eax
call ebx
push eax
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call sub.MFC42.DLL_CDC::FillSolidRect_1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x98], 0
mov dword [esp + 0x18], 2
mov esi, dword [esp + 0x18]
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 + 0x1c], edx
sub edi, ecx
sub edi, esi
cmp ebp, edi
jge 0x47485b
test ebp, ebp
jne 0x474745
xor eax, eax
jmp 0x474771
cmp ebp, 1
jne 0x47475b
mov edx, dword [esp + 0x98]
xor eax, eax
cmp edx, 2
setge al
jmp 0x474771
cmp ebp, 2
jne 0x47476a
mov eax, dword [esp + 0x18]
test eax, eax
mov eax, ebp
jle 0x474771
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 + 0x30]
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 + 0x30]
shl ebx, 8
and edx, 0xff
sub eax, esi
or ebx, edx
mov edx, dword [esp + 0x2c]
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 + 0x34]
mov ecx, dword [esp + 0x1c]
mov edx, eax
inc ebp
sub edx, ecx
mov ecx, dword [esp + 0x2c]
sub edx, ecx
sub edx, esi
cmp ebp, edx
jl 0x47473d
mov ebx, dword [esp + 0x98]
mov edx, dword [esp + 0x18]
inc ebx
dec edx
cmp edx, 0xfffffffe
mov dword [esp + 0x98], ebx
mov dword [esp + 0x18], edx
jg 0x47470a
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 0
call fcn.00473b60
lea ecx, [esp + 0x58]
mov dword [esp + 0x80], 0xffffffff
call fcn.00473a50
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x20]
mov ebp, dword [sym.imp.USER32.dll_GetSysColor]
jmp 0x474a9e
test cl, cl
jne 0x474982
mov cl, byte [esp + 0x98]
test cl, cl
je 0x4748e0
mov cl, byte [esp + 0x9c]
test cl, cl
je 0x474982
test al, al
jne 0x47495c
mov edi, dword [esp + 0x8c]
lea eax, [esp + 0x28]
push edi
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov ebp, dword [sym.imp.USER32.dll_GetSysColor]
push 0
push 0x14
push 0xf
mov dword [esp + 0x3c], 0x16
call ebp
push eax
call fcn.00463e10
mov esi, dword [esp + 0x94]
add esp, 0xc
lea ecx, [esp + 0x28]
push eax
push ecx
mov ecx, esi
call sub.MFC42.DLL_CDC::FillSolidRect_1
mov edx, dword [esp + 0x30]
mov eax, dword [edi + 8]
push 0
push 0x4b
push 0xf
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], eax
call ebp
push eax
call fcn.00463e10
add esp, 0xc
lea ecx, [esp + 0x28]
push eax
push ecx
mov ecx, esi
call sub.MFC42.DLL_CDC::FillSolidRect_1
jmp 0x474a9e
mov ebp, dword [sym.imp.USER32.dll_GetSysColor]
push 0xf
call ebp
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 0x474a9e
mov ebp, dword [sym.imp.USER32.dll_GetSysColor]
push 0xd
call ebp
mov esi, dword [esp + 0x88]
mov edi, eax
test esi, esi
jne 0x47499d
xor eax, eax
jmp 0x4749a0
mov eax, dword [esi + 4]
push edi
push eax
lea ecx, [esp + 0x50]
call fcn.004739d0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x80], 2
call fcn.00474370
test al, al
je 0x4749ce
push 0
push 0x49
push 0xf
call ebp
push eax
jmp 0x4749d3
push 0xffffffffffffffc7
push 0x46
push edi
call fcn.00463e10
add esp, 0xc
mov ebx, eax
test esi, esi
jne 0x4749e5
xor eax, eax
jmp 0x4749e8
mov eax, dword [esi + 4]
push ebx
push eax
lea ecx, [esp + 0x60]
call fcn.00473ad0
mov al, byte [esp + 0x94]
mov edi, dword [esp + 0x8c]
test al, al
mov byte [esp + 0x80], 3
je 0x474a60
lea edx, [esp + 0x38]
push edi
push edx
call dword [sym.imp.USER32.dll_CopyRect]
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 ebp
lea edx, [esp + 0x38]
push eax
push edx
mov ecx, esi
call sub.MFC42.DLL_CDC::FillSolidRect_1
jmp 0x474a79
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.00473b60
lea ecx, [esp + 0x48]
mov dword [esp + 0x80], 0xffffffff
call fcn.00473a50
mov ecx, dword [esp + 0x14]
call fcn.00474340
test al, al
je 0x474b34
test esi, esi
jne 0x474ab7
xor ebx, ebx
jmp 0x474aba
mov ebx, dword [esi + 4]
push 0
push 0xffffffffffffffee
push 0xf
call ebp
push eax
call fcn.00463e10
add esp, 0xc
lea ecx, [esp + 0x58]
push eax
push ebx
call fcn.004739d0
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.00473a50
jmp 0x474fcc
lea edx, [esp + 0x38]
push edi
push edx
call dword [sym.imp.USER32.dll_CopyRect]
lea ecx, [esp + 0x98]
call fcn.0047a1ec
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x98]
push eax
mov dword [esp + 0x84], 5
call fcn.004741d0
test eax, eax
jle 0x474fb5
mov al, byte [esp + 0x9c]
test al, al
je 0x474b7f
push 0x10
jmp 0x474ba5
mov ecx, dword [esp + 0x14]
call fcn.00474370
test al, al
je 0x474ba3
push 0
push 0xffffffffffffffee
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
call fcn.00463e10
add esp, 0xc
jmp 0x474bab
push 7
call dword [sym.imp.USER32.dll_GetSysColor]
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 0x474bfb
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x474bfb
mov ebp, 0x100000
jmp 0x474bfd
xor ebp, ebp
mov al, byte [esp + 0x94]
test al, al
je 0x474c34
mov eax, dword [esp + 0x40]
mov edx, dword [esi]
sub eax, 4
or ebp, 0x25
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x98]
lea edi, [esp + 0x38]
push ebp
mov ecx, dword [eax - 8]
push edi
push ecx
push eax
mov ecx, esi
call dword [edx + 0x70]
jmp 0x474fb5
test esi, esi
jne 0x474c41
mov dword [esp + 0x94], esi
jmp 0x474c4b
mov eax, dword [esi + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x14]
call fcn.00474380
mov ecx, dword [esp + 0x94]
push eax
push ecx
lea ecx, [esp + 0x70]
call fcn.00473d40
mov eax, dword [esp + 0x98]
mov edx, dword [esi]
or ebp, 0x24
mov dword [esp + 0x38], 0x1e
mov ecx, dword [eax - 8]
push ebp
lea ebp, [esp + 0x3c]
mov byte [esp + 0x84], 6
push ebp
push ecx
push eax
mov ecx, esi
call dword [edx + 0x70]
lea ecx, [esp + 0x9c]
call fcn.0047a1ec
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x9c]
push eax
mov byte [esp + 0x84], 7
call fcn.00474270
test eax, eax
jle 0x474ce0
mov eax, dword [esp + 0x40]
mov edx, dword [esi]
sub eax, 0xc
lea ebp, [esp + 0x38]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x9c]
push 0x26
push ebp
mov ecx, dword [eax - 8]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x70]
mov ebp, dword [esp + 0x14]
mov ecx, ebp
call fcn.00474360
test al, al
je 0x474da5
push 0xd
call dword [sym.imp.USER32.dll_GetSysColor]
test esi, esi
mov ebx, eax
jne 0x474d05
xor eax, eax
jmp 0x474d08
mov eax, dword [esi + 4]
push ebx
push eax
lea ecx, [esp + 0x50]
call fcn.004739d0
mov ecx, ebp
mov byte [esp + 0x80], 8
call fcn.00474370
test al, al
je 0x474d35
push 0
push 0x49
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
jmp 0x474d4b
mov al, byte [esp + 0x90]
test al, al
je 0x474d46
push 0xffffffffffffffce
push 0x32
jmp 0x474d4a
push 0xffffffffffffffc7
push 0x46
push ebx
call fcn.00463e10
add esp, 0xc
mov ebx, eax
test esi, esi
jne 0x474d5d
xor eax, eax
jmp 0x474d60
mov eax, dword [esi + 4]
push ebx
push eax
lea ecx, [esp + 0x60]
call fcn.00473ad0
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.00473b60
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 7
call fcn.00473a50
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp + 0x34]
test eax, eax
je 0x474f29
cmp dword [ebp + 0x38], 0xffffffff
je 0x474f29
mov ecx, ebp
call fcn.00474370
test al, al
jne 0x474dd8
mov al, byte [esp + 0x90]
mov byte [esp + 0x94], 1
test al, al
jne 0x474de0
mov byte [esp + 0x94], 0
mov ecx, ebp
call fcn.00474370
test al, al
jne 0x474e09
mov al, byte [esp + 0x90]
test al, al
je 0x474eb8
mov ecx, ebp
call fcn.00474360
test al, al
jne 0x474eb8
mov eax, dword [esp + 0x14]
push 0
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x34]
push ecx
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
mov ebp, eax
mov al, byte [esp + 0x94]
test al, al
je 0x474e32
push 0xffffffffffffffbe
push 0x32
push 0xd
jmp 0x474e38
push 0
push 0xffffffffffffffe5
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
call fcn.00463e10
add esp, 0xc
lea ecx, [esp + 0x20]
push eax
call sub.MFC42.DLL_CBrush::CBrush
test eax, eax
jne 0x474e59
xor ebx, ebx
jmp 0x474e5c
mov ebx, dword [eax + 4]
mov dl, byte [esp + 0x94]
xor ecx, ecx
test dl, dl
mov edx, dword [edi]
push 0x83
setne cl
add ecx, 3
push 0x11
mov eax, ecx
push 0x10
add eax, edx
mov edx, dword [esp + 0x48]
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], vtable.CGdiObject.0
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.00474370
test al, al
jne 0x474f90
mov al, byte [esp + 0x90]
test al, al
je 0x474ee2
mov ecx, ebp
call fcn.00474360
test al, al
mov ebx, 2
je 0x474ee7
mov ebx, 3
mov al, byte [esp + 0x90]
test al, al
je 0x474f02
mov ecx, ebp
call fcn.00474360
test al, al
mov eax, 2
je 0x474f07
mov eax, 3
mov ecx, dword [esp + 0x3c]
mov edx, dword [edi]
add ebx, ecx
mov ecx, dword [ebp + 0x38]
push 1
add edx, eax
mov eax, dword [esi + 4]
push ebx
push edx
mov edx, dword [ebp + 0x34]
push eax
push ecx
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_Draw]
jmp 0x474f90
mov ecx, ebp
call fcn.00474360
test al, al
je 0x474f90
mov edi, dword [edi]
mov eax, dword [esi]
add edi, 5
push ebx
mov dword [esp + 0x3c], edi
add edi, 0xf
mov ecx, esi
mov dword [esp + 0x44], edi
call dword [eax + 0x34]
push 0x7ff8
push 0
call dword [sym.imp.USER32.dll_LoadBitmapA]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
mov edi, eax
mov eax, dword [esp + 0x44]
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.00473e10
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