Function at 0x44fe40
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c8013
mov eax, dword fs:[0]
push eax
sub esp, 0x170
mov eax, dword [0x4ff94c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov esi, ecx
xor ebx, ebx
mov ecx, 0x50bddc
mov dword [ebp - 0x140], edi
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0x144], ebx
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::GetManager]
push eax
push 0x4cbbf0
lea ecx, [ebp - 0x124]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [ebp - 0x124]
push eax
mov ecx, 0x50bddc
mov dword [ebp - 4], ebx
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
lea ecx, [ebp - 0x124]
sete bl
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
test bl, bl
mov ebx, dword [sym.imp.USER32.dll_LoadIconW]
je 0x450159
push str.PRONTO_Screen
mov ecx, 0x50bddc
call dword [0x4ca7f8]
mov edi, dword [0x50bddc]
call sub.mfc100u.dll_AfxGetModuleState
mov eax, dword [eax + 8]
lea ecx, [ebp - 0x16c]
push ecx
push edi
push eax
call dword [sym.imp.USER32.dll_GetClassInfoW]
mov edi, dword [sym.imp.USER32.dll_LoadCursorW]
test eax, eax
jne 0x450018
mov edx, dword [sym.imp.USER32.dll_DefWindowProcW]
xor eax, eax
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x168], edx
mov dword [ebp - 0x16c], 0xb
call sub.mfc100u.dll_AfxGetModuleState
mov eax, dword [eax + 8]
push 0x88
push 0xe
push 0x88
mov dword [ebp - 0x15c], eax
call sub.mfc100u.dll_AfxFindResourceHandle
push eax
call ebx
push 0x7f00
push 0
mov dword [ebp - 0x158], eax
call edi
mov ecx, dword [0x4f8dec]
push ecx
mov dword [ebp - 0x154], eax
call fcn.004445c0
mov edx, dword [0x50bddc]
mov dword [ebp - 0x150], eax
add esp, 4
lea eax, [ebp - 0x16c]
push eax
mov dword [ebp - 0x148], edx
call sub.mfc100u.dll_AfxRegisterClass
test eax, eax
jne 0x450018
push 0x88
push 0xe
push 0x88
call sub.mfc100u.dll_AfxFindResourceHandle
push eax
call ebx
mov ecx, dword [0x4f8dec]
push eax
push ecx
call fcn.00449d00
add esp, 4
push eax
push 0x7f00
push 0
call edi
push eax
push 0xb
call sub.mfc100u.dll_AfxRegisterWndClass
push eax
mov ecx, 0x50bddc
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
push str.PRONTO_Container_Window
mov ecx, 0x50be40
call dword [0x4ca7f8]
mov edx, dword [0x50be40]
mov dword [ebp - 0x124], edx
call sub.mfc100u.dll_AfxGetModuleState
mov edx, dword [ebp - 0x124]
mov eax, dword [eax + 8]
lea ecx, [ebp - 0x16c]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_GetClassInfoW]
test eax, eax
jne 0x450153
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x148], eax
mov eax, dword [sym.imp.USER32.dll_DefWindowProcW]
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x16c], 0xb
call sub.mfc100u.dll_AfxGetModuleState
mov ecx, dword [eax + 8]
push 0x88
push 0xe
push 0x88
mov dword [ebp - 0x15c], ecx
call sub.mfc100u.dll_AfxFindResourceHandle
push eax
call ebx
push 0x7f00
push 0
mov dword [ebp - 0x158], eax
call edi
mov edx, dword [0x4f8dec]
push edx
mov dword [ebp - 0x154], eax
call fcn.004445c0
add esp, 4
mov dword [ebp - 0x150], eax
mov eax, dword [0x50be40]
lea ecx, [ebp - 0x16c]
push ecx
mov dword [ebp - 0x148], eax
call sub.mfc100u.dll_AfxRegisterClass
test eax, eax
jne 0x450153
push 0x88
push 0xe
push 0x88
call sub.mfc100u.dll_AfxFindResourceHandle
push eax
call ebx
mov edx, dword [0x4f8dec]
push eax
push edx
call fcn.00449d00
add esp, 4
push eax
push 0x7f00
push 0
call edi
push eax
push 0xb
call sub.mfc100u.dll_AfxRegisterWndClass
push eax
mov ecx, 0x50be40
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov edi, dword [ebp - 0x140]
mov eax, dword [esi + 0x8c]
test eax, eax
jne 0x45016a
xor eax, eax
jmp 0x45102e
cmp dword [esi + 0x84], 0
mov ecx, dword [ebp + 0xc]
je 0x4501ac
test ecx, ecx
jne 0x4501ac
test edi, edi
je 0x4501a2
push edi
lea ecx, [esi + 0x80]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
push edi
mov ecx, esi
call sub.mfc100u.dll_CWnd::SetWindowTextW
mov esi, dword [esi + 0x78]
test esi, esi
je 0x4501a2
push edi
mov ecx, esi
call sub.mfc100u.dll_CWnd::SetWindowTextW
mov eax, 1
jmp 0x45102e
cmp word [eax + 0x56], 0
je 0x4501bb
test ecx, ecx
je 0x450378
test dword [eax + 0x10], 0x200
je 0x4501d6
fild dword [0x50bc6c]
fmul qword [eax + 0x28]
lea eax, [ebp - 0x134]
push eax
jmp 0x4501e6
fild dword [0x50bcd4]
lea edx, [ebp - 0x134]
push edx
fmul qword [eax + 0x28]
sub esp, 8
fst qword [ebp - 0x134]
fstp qword [esp]
call dword [sym.imp.MSVCR100.dll_modf]
fcomp qword [0x4ccec0]
add esp, 0xc
fnstsw ax
test ah, 1
jne 0x45021a
fld qword [ebp - 0x134]
fadd qword [0x4cce90]
fstp qword [ebp - 0x134]
fld qword [ebp - 0x134]
call fcn.004b8100
mov ecx, dword [esi + 0x8c]
mov word [ecx + 0x56], ax
fild dword [0x50bce4]
mov edx, dword [esi + 0x8c]
lea eax, [ebp - 0x134]
fmul qword [edx + 0x30]
push eax
sub esp, 8
fst qword [ebp - 0x134]
fstp qword [esp]
call dword [sym.imp.MSVCR100.dll_modf]
fcomp qword [0x4ccec0]
add esp, 0xc
fnstsw ax
test ah, 1
jne 0x450279
fld qword [ebp - 0x134]
fadd qword [0x4cce90]
fstp qword [ebp - 0x134]
fld qword [ebp - 0x134]
call fcn.004b8100
mov ecx, dword [esi + 0x8c]
mov word [ecx + 0x58], ax
fild dword [0x50bcd4]
mov edx, dword [esi + 0x8c]
lea eax, [ebp - 0x134]
fmul qword [edx + 0x38]
push eax
sub esp, 8
fst qword [ebp - 0x134]
fstp qword [esp]
call dword [sym.imp.MSVCR100.dll_modf]
fcomp qword [0x4ccec0]
add esp, 0xc
fnstsw ax
test ah, 1
jne 0x4502d8
fld qword [ebp - 0x134]
fadd qword [0x4cce90]
fstp qword [ebp - 0x134]
fld qword [ebp - 0x134]
call fcn.004b8100
mov ecx, dword [esi + 0x8c]
mov word [ecx + 0x5a], ax
fild dword [0x50bce4]
mov edx, dword [esi + 0x8c]
lea eax, [ebp - 0x134]
fmul qword [edx + 0x40]
push eax
sub esp, 8
fst qword [ebp - 0x134]
fstp qword [esp]
call dword [sym.imp.MSVCR100.dll_modf]
fcomp qword [0x4ccec0]
add esp, 0xc
fnstsw ax
test ah, 1
jne 0x450337
fld qword [ebp - 0x134]
fadd qword [0x4cce90]
fstp qword [ebp - 0x134]
fld qword [ebp - 0x134]
call fcn.004b8100
mov ecx, dword [esi + 0x8c]
mov word [ecx + 0x5c], ax
mov edx, dword [esi + 0x8c]
test byte [edx + 0x10], 0x40
je 0x450378
push 0x2d
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edi, dword [esi + 0x8c]
mov ebx, eax
push 2
add ebx, ebx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, ebx
add word [edi + 0x56], ax
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, dword [esi + 0x8c]
push 0x2d
call edi
add word [ebx + 0x56], ax
mov ebx, dword [esi + 0x8c]
push 0x2e
call edi
add eax, eax
add word [ebx + 0x58], ax
xor ebx, ebx
cmp word [0x4f9078], bx
jge 0x4503af
xor eax, eax
mov word [0x4f9078], ax
cmp dword [esi + 0x84], ebx
jne 0x450558
mov eax, dword [esi + 0x8c]
mov dword [esi + 0xa4], ebx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xac], ebx
mov dword [esi + 0xb4], ebx
cmp dword [eax + 0x50], ebx
je 0x450558
cmp word [0x4f907c], 2
jne 0x450405
test dword [eax + 0x10], 0x800000
je 0x450405
mov dword [ebp - 0x144], 1
push 0x20019
push ebx
mov ecx, esi
call fcn.0044ccf0
mov dword [ebp - 0x138], eax
cmp eax, ebx
je 0x450558
cmp word [0x4f9078], bx
jne 0x4504ed
lea ecx, [ebp - 0x124]
push ecx
mov ecx, dword [ebp - 0x138]
lea edx, [ebp - 0x110]
push edx
lea eax, [ebp - 0x130]
push eax
push ebx
push str.Size
push ecx
mov dword [ebp - 0x124], 0x100
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4504ed
mov dl, byte [ebp - 0x110]
lea ecx, [ebp - 0x110]
test dl, dl
je 0x450494
cmp dl, 0x30
jl 0x450494
cmp dl, 0x39
jg 0x450494
movsx edx, dl
and edx, 0xf
lea eax, [eax + eax*4]
inc ecx
lea eax, [edx + eax*2]
mov dl, byte [ecx]
test dl, dl
jne 0x450477
mov edi, dword [esi + 0x8c]
movsx edx, word [edi + 0x56]
cmp eax, edx
jle 0x4504ac
sub eax, edx
mov dword [esi + 0xa4], eax
jmp 0x4504b2
mov dword [esi + 0xa4], ebx
mov dl, byte [ecx]
inc ecx
cmp dl, 0x2f
jne 0x4504ed
mov al, byte [ecx]
xor edx, edx
test al, al
je 0x4504ed
cmp al, 0x30
jl 0x4504dd
cmp al, 0x39
jg 0x4504dd
movsx eax, al
and eax, 0xf
lea edx, [edx + edx*4]
inc ecx
lea edx, [eax + edx*2]
mov al, byte [ecx]
test al, al
jne 0x4504c2
cmp edx, ebx
jle 0x4504ed
movsx eax, word [edi + 0x58]
sub edx, eax
mov dword [esi + 0xa8], edx
mov dword [ebp - 0x124], 0x100
cmp word [0x4f907c], bx
je 0x45054b
cmp dword [ebp - 0x144], ebx
jne 0x45054b
mov ecx, dword [esi + 0x8c]
test dword [ecx + 0x10], 0x800000
je 0x45054b
lea edx, [ebp - 0x17c]
push edx
mov edx, dword [ebp - 0x138]
push ebx
push ebx
push ebx
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x110]
push ecx
push ebx
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
jne 0x45054b
mov dword [ebp - 0x144], 1
mov eax, dword [ebp - 0x138]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x124]
push ecx
lea edx, [ebp - 0x128]
push edx
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x138]
push ecx
mov ecx, esi
call fcn.0044b200
mov eax, dword [esi + 0x8c]
movsx ebx, word [eax + 0x58]
movsx edi, word [eax + 0x56]
add ebx, dword [esi + 0xa8]
add edi, dword [esi + 0xa4]
add ebx, dword [ebp - 0x138]
add edi, dword [ebp - 0x13c]
add ebx, dword [ebp - 0x128]
add edi, dword [ebp - 0x124]
cmp dword [esi + 0x84], 0
mov dword [ebp - 0x130], ebx
jne 0x45094a
xor edx, edx
cmp dword [eax], edx
je 0x450606
mov eax, dword [eax]
mov eax, dword [eax + 0x64]
mov dword [ebp - 0x12c], eax
cmp eax, edx
je 0x45063f
cmp dword [eax + 0x84], edx
jne 0x4505f8
push edx
push 0x4dab4c
mov ecx, eax
call fcn.0044fe40
test eax, eax
je 0x450163
mov eax, dword [ebp - 0x12c]
mov ecx, dword [eax + 0x9c]
mov dword [esi + 0x9c], ecx
jmp 0x450645
mov eax, dword [0x50bd84]
mov ecx, dword [0x50af20]
cmp eax, edx
jg 0x450621
cmp ecx, edx
je 0x450621
mov dword [esi + 0x9c], ecx
jmp 0x450645
cmp eax, 1
jne 0x45063f
mov eax, dword [0x5120e4]
cmp eax, edx
je 0x45063f
cmp dword [eax + 0x4cc], edx
jne 0x45063f
mov dword [esi + 0x9c], ecx
jmp 0x450645
mov dword [esi + 0x9c], edx
cmp dword [ebp - 0x140], 0
jne 0x450658
mov dword [ebp - 0x140], 0x4dab4c
mov edx, dword [ebp - 0x140]
push edx
lea ecx, [esi + 0x80]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov eax, dword [esi + 0x8c]
test byte [eax + 0x10], 2
jne 0x45093e
push 0x13c
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x12c], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x4506a3
push esi
mov ecx, eax
call fcn.004036b0
jmp 0x4506a5
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x78], eax
test eax, eax
je 0x450163
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x2d
call ebx
push 0x20
mov dword [ebp - 0x12c], eax
call ebx
mov ecx, dword [ebp - 0x12c]
mov edx, dword [esi + 0x78]
add ecx, eax
add ecx, ecx
push 0x2e
mov dword [edx + 0x124], ecx
call ebx
push 0x21
mov ebx, eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add ebx, eax
push 4
add ebx, ebx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [esi + 0x78]
add eax, ebx
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ecx + 0x128], eax
mov eax, dword [esi + 0x8c]
movsx edx, word [eax + 0x5a]
mov dword [ebp - 0x120], edx
movsx eax, word [eax + 0x5c]
push 0x2d
mov dword [ebp - 0x11c], eax
call ebx
push 0x20
mov dword [ebp - 0x12c], eax
call ebx
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x120]
add ecx, eax
lea eax, [edx + ecx*2]
add eax, edi
push 0x2e
mov dword [ebp - 0x118], eax
call ebx
push 0x21
mov edi, eax
call ebx
add edi, eax
push 4
add edi, edi
call ebx
mov ecx, dword [esi + 0x8c]
add eax, edi
add eax, dword [ebp - 0x11c]
add eax, dword [ebp - 0x130]
mov dword [ebp - 0x114], eax
test dword [ecx + 0x10], 0x200000
je 0x450798
mov edi, dword [esi + 0x78]
push 4
mov dword [ebp - 0x12c], 0x41000000
call ebx
sub dword [edi + 0x128], eax
jmp 0x4507cb
cmp dword [0x50af18], 0
mov dword [ebp - 0x12c], 0x40cc0000
je 0x4507cb
push 0x4cbbf0
push 0x50b230
call fcn.004043c0
add esp, 8
test al, al
je 0x4507cb
mov dword [ebp - 0x12c], 0x40ce0000
mov ecx, dword [esi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c0]
push 0
push 0
lea eax, [ebp - 0x120]
push eax
mov eax, dword [ebp - 0x12c]
push eax
mov eax, dword [ebp - 0x140]
push eax
mov eax, dword [0x50be40]
push eax
call edx
test eax, eax
je 0x450163
cmp dword [ebp - 0x144], 0
je 0x450850
push 0x228
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x130], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x45082f
mov ecx, eax
call fcn.00491c90
jmp 0x450831
xor eax, eax
mov ecx, dword [esi + 0x78]
mov dword [ecx + 0x120], eax
mov eax, dword [esi + 0x78]
mov ecx, dword [eax + 0x120]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.00491da0
mov edx, dword [esi + 0x8c]
test dword [edx + 0x10], 0x1000000
je 0x45089c
push 0x84
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x130], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x45088a
mov ecx, dword [esi + 0x78]
push ecx
mov ecx, eax
call fcn.00401dd0
jmp 0x45088c
xor eax, eax
mov edx, dword [esi + 0x78]
mov dword [ebp - 4], 0xffffffff
mov dword [edx + 0x11c], eax
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x128]
push ecx
lea edx, [ebp - 0x13c]
push edx
lea eax, [ebp - 0x138]
push eax
mov ecx, esi
call fcn.0044b200
mov eax, dword [esi + 0x8c]
movsx edi, word [eax + 0x56]
movsx ebx, word [eax + 0x58]
add edi, dword [esi + 0xa4]
add ebx, dword [esi + 0xa8]
add edi, dword [ebp - 0x13c]
add ebx, dword [ebp - 0x138]
add edi, dword [ebp - 0x124]
add ebx, dword [ebp - 0x128]
mov dword [esi + 0xc0], 0
mov eax, dword [eax + 0x10]
and eax, 0x1000
or eax, 0x88000
shr eax, 0xc
movzx eax, ax
push eax
push 0xe
push eax
call sub.mfc100u.dll_AfxFindResourceHandle
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov ecx, dword [esi + 0x78]
mov edx, dword [ecx + 0x20]
push eax
push 0
push 0x80
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x12c], eax
jmp 0x45094a
mov ecx, dword [0x50a920]
mov dword [ebp - 0x12c], ecx
mov eax, dword [esi + 0x8c]
test dword [eax + 0x10], 0x200000
je 0x450a31
cmp dword [esi + 0x84], 0
jne 0x45096c
inc dword [0x50bd88]
cmp dword [0x50af0c], 0
je 0x450981
or edx, 0xffffffff
mov word [0x5095b0], dx
jmp 0x45098e
mov ecx, dword [0x50af1c]
push 3
call sub.mfc100u.dll_CWnd::ShowWindow
mov eax, dword [esi + 0x8c]
xor ecx, ecx
mov word [eax + 0x5a], cx
mov edx, dword [esi + 0x8c]
xor eax, eax
lea ecx, [ebp - 0x174]
mov word [edx + 0x5c], ax
push ecx
mov ecx, dword [0x50af1c]
call fcn.004335e0
mov ecx, dword [esi + 0x8c]
movsx edx, word [ecx + 0x58]
mov eax, dword [ebp - 0x170]
mov ecx, dword [0x50bd48]
mov ebx, eax
sub eax, edx
sub eax, dword [ebp - 0x138]
inc ecx
sub eax, dword [ebp - 0x128]
mov edi, dword [ebp - 0x174]
cdq
idiv ecx
mov ecx, dword [esi + 0x8c]
mov edx, ebx
sub edx, dword [ebp - 0x128]
sub edx, dword [ebp - 0x138]
mov dword [esi + 0xb0], eax
mov eax, edi
sub eax, dword [ebp - 0x124]
sub eax, dword [ebp - 0x13c]
mov word [ecx + 0x56], ax
mov eax, dword [esi + 0x8c]
mov word [eax + 0x58], dx
xor eax, eax
mov dword [esi + 0xa8], eax
mov dword [esi + 0xa4], eax
jmp 0x450de7
xor ecx, ecx
cmp word [eax + 0x54], cx
lea edx, [ebp - 0x120]
sete cl
push ecx
push edx
call fcn.0044ab60
mov eax, dword [esi + 0x8c]
movsx ecx, word [eax + 0x56]
mov edx, edi
sub edx, ecx
sub edx, dword [ebp - 0x13c]
add esp, 8
sub edx, dword [ebp - 0x124]
mov dword [esi + 0xa4], edx
movsx ecx, word [eax + 0x58]
mov edx, ebx
sub edx, ecx
sub edx, dword [ebp - 0x138]
sub edx, dword [ebp - 0x128]
mov dword [esi + 0xa8], edx
mov edx, dword [ebp - 0x118]
sub edx, dword [ebp - 0x120]
cmp edi, edx
jle 0x450ada
movsx edi, word [eax + 0x56]
mov ecx, dword [ebp - 0x118]
sub ecx, edi
sub ecx, dword [ebp - 0x120]
sub ecx, dword [ebp - 0x13c]
sub ecx, dword [ebp - 0x124]
mov dword [esi + 0xa4], ecx
jns 0x450ac4
mov dword [esi + 0xa4], 0
movsx edi, word [eax + 0x56]
add edi, dword [esi + 0xa4]
add edi, dword [ebp - 0x13c]
add edi, dword [ebp - 0x124]
mov ecx, dword [0x50af24]
test ecx, ecx
je 0x450b03
cmp dword [esi + 0xc0], 0
jne 0x450b03
mov eax, dword [eax + 0x10]
and eax, 0x40000000
push eax
push edx
push edi
call fcn.00480510
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0x8c]
test dword [eax + 0x10], 0x800000
mov dword [ebp - 0x128], eax
je 0x450b3f
mov eax, dword [esi + 0xa8]
mov ecx, dword [0x50bd48]
inc ecx
cdq
idiv ecx
mov ecx, dword [esi + 0xa8]
mov dword [esi + 0xb0], eax
test ecx, ecx
jns 0x450b3f
dec eax
mov dword [esi + 0xb0], eax
mov edx, dword [esi + 0x78]
mov eax, ebx
mov dword [ebp - 0x124], eax
mov ecx, edi
test edx, edx
je 0x450b66
mov eax, dword [edx + 0x128]
mov ecx, dword [edx + 0x124]
add eax, ebx
mov dword [ebp - 0x124], eax
add ecx, edi
mov edx, dword [ebp - 0x128]
movsx edx, word [edx + 0x54]
dec edx
cmp edx, 8
ja case.default.0x450b7a
jmp dword [edx*4 + 0x45104c]
xor eax, eax
mov ecx, dword [ebp - 0x128]
mov word [ecx + 0x5c], ax
mov edx, dword [esi + 0x8c]
xor eax, eax
mov word [edx + 0x5a], ax
jmp 0x450dc1
mov eax, dword [ebp - 0x128]
xor edx, edx
mov word [eax + 0x5c], dx
mov eax, dword [ebp - 0x118]
sub eax, ecx
sub eax, dword [ebp - 0x120]
mov ecx, dword [esi + 0x8c]
cdq
sub eax, edx
sar eax, 1
mov word [ecx + 0x5a], ax
jmp 0x450dc1
xor edx, edx
mov eax, dword [ebp - 0x128]
mov word [eax + 0x5c], dx
mov edx, dword [ebp - 0x118]
sub edx, dword [ebp - 0x120]
mov eax, dword [esi + 0x8c]
sub edx, ecx
mov word [eax + 0x5a], dx
jmp 0x450dc1
mov eax, dword [ebp - 0x114]
sub eax, dword [ebp - 0x124]
sub eax, dword [ebp - 0x11c]
cdq
sub eax, edx
sar eax, 1
jmp 0x450b83
mov eax, dword [ebp - 0x114]
sub eax, dword [ebp - 0x124]
sub eax, dword [ebp - 0x11c]
cdq
sub eax, edx
mov edx, dword [ebp - 0x128]
sar eax, 1
mov word [edx + 0x5c], ax
jmp 0x450baa
mov eax, dword [ebp - 0x114]
sub eax, dword [ebp - 0x124]
sub eax, dword [ebp - 0x11c]
cdq
sub eax, edx
mov edx, dword [ebp - 0x128]
sar eax, 1
mov word [edx + 0x5c], ax
mov eax, dword [ebp - 0x118]
sub eax, dword [ebp - 0x120]
sub eax, ecx
mov ecx, dword [esi + 0x8c]
mov word [ecx + 0x5a], ax
jmp 0x450dc1
mov edx, dword [ebp - 0x114]
sub edx, dword [ebp - 0x11c]
sub edx, eax
mov eax, dword [ebp - 0x128]
mov word [eax + 0x5c], dx
mov ecx, dword [esi + 0x8c]
xor edx, edx
mov word [ecx + 0x5a], dx
jmp 0x450dc1
mov eax, dword [ebp - 0x114]
sub eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x128]
sub eax, dword [ebp - 0x124]
mov word [edx + 0x5c], ax
jmp 0x450baa
mov edx, dword [ebp - 0x114]
sub edx, dword [ebp - 0x11c]
sub edx, eax
jmp 0x450bce
cmp dword [0x50af0c], 0
je 0x450d05
mov eax, dword [0x50af20]
test eax, eax
je 0x450d05
cmp dword [eax + 0x7c], 0
je 0x450d05
mov edx, dword [ebp - 0x128]
xor ecx, ecx
mov word [edx + 0x5c], cx
mov eax, dword [esi + 0x8c]
mov word [eax + 0x5a], cx
jmp 0x450dc1
mov edx, dword [ebp - 0x128]
movzx eax, word [edx + 0x5a]
movsx edx, ax
mov eax, dword [ebp - 0x118]
sub eax, edx
sub eax, ecx
sub eax, dword [ebp - 0x120]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [ebp - 0x128]
movzx eax, word [eax + 0x5a]
sar edx, 1
add edx, eax
add edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x128]
mov word [eax + 0x5a], dx
mov eax, dword [esi + 0x8c]
movsx edx, word [eax + 0x5a]
mov eax, dword [ebp - 0x118]
add edx, ecx
cmp edx, eax
jle 0x450d6a
sub eax, ecx
mov ecx, dword [esi + 0x8c]
sub eax, 2
mov word [ecx + 0x5a], ax
mov ecx, dword [esi + 0x8c]
movzx eax, word [ecx + 0x5c]
movsx edx, ax
mov eax, dword [ebp - 0x114]
sub eax, edx
sub eax, dword [ebp - 0x124]
sub eax, dword [ebp - 0x11c]
cdq
sub eax, edx
mov edx, eax
movzx eax, word [ecx + 0x5c]
sar edx, 1
add edx, eax
mov word [ecx + 0x5c], dx
mov ecx, dword [esi + 0x8c]
movsx edx, word [ecx + 0x5c]
add edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x114]
cmp edx, eax
jle 0x450dc1
sub eax, dword [ebp - 0x124]
dec eax
mov word [ecx + 0x5c], ax
mov eax, dword [esi + 0x8c]
cmp word [eax + 0x5a], 0
jge 0x450dd4
xor ecx, ecx
mov word [eax + 0x5a], cx
mov eax, dword [esi + 0x8c]
cmp word [eax + 0x5c], 0
jge 0x450de7
xor edx, edx
mov word [eax + 0x5c], dx
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x128]
push ecx
lea edx, [ebp - 0x13c]
push edx
lea eax, [ebp - 0x138]
push eax
mov ecx, esi
call fcn.0044b200
cmp dword [esi + 0x84], 0
je 0x450ebd
cmp dword [esi + 0x88], 0
mov dword [ebp - 0x12c], 0x24
jne 0x450e34
mov dword [ebp - 0x12c], 0x66
mov ecx, dword [esi + 0x78]
test ecx, ecx
je 0x450e6b
mov edx, dword [ebp - 0x12c]
mov eax, dword [esi + 0x8c]
push edx
mov edx, dword [ecx + 0x128]
add edx, ebx
push edx
mov edx, dword [ecx + 0x124]
add edx, edi
push edx
movsx edx, word [eax + 0x5c]
movsx eax, word [eax + 0x5a]
push edx
push eax
push 0
call sub.mfc100u.dll_CWnd::SetWindowPos
mov eax, dword [esi + 0x8c]
movsx edx, word [eax + 0x58]
movsx eax, word [eax + 0x56]
mov ecx, dword [ebp - 0x12c]
add edx, dword [esi + 0xa8]
add eax, dword [esi + 0xa4]
push ecx
mov ecx, dword [ebp - 0x138]
push edx
mov edx, dword [ebp - 0x13c]
push eax
push ecx
push edx
push 0
mov ecx, esi
call sub.mfc100u.dll_CWnd::SetWindowPos
mov eax, dword [esi + 0x20]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, 1
jmp 0x45102e
mov ecx, dword [esi + 0x78]
test ecx, ecx
je 0x450f01
mov edx, dword [ecx + 0x128]
mov eax, dword [esi + 0x8c]
push 0x24
add edx, ebx
push edx
mov edx, dword [ecx + 0x124]
add edx, edi
push edx
movsx edx, word [eax + 0x5c]
movsx eax, word [eax + 0x5a]
push edx
push eax
push 0
call sub.mfc100u.dll_CWnd::SetWindowPos
mov ecx, dword [esi + 0x78]
mov ecx, dword [ecx + 0x11c]
test ecx, ecx
je 0x450f01
call fcn.00401e60
mov ecx, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x138]
mov eax, dword [esi + 0x8c]
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x11c], edx
movsx edi, word [eax + 0x56]
add edi, dword [esi + 0xa4]
add edi, ecx
mov dword [ebp - 0x118], edi
movsx eax, word [eax + 0x58]
add eax, dword [esi + 0xa8]
xor edi, edi
add eax, edx
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
push edi
push edi
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x12c]
push eax
mov eax, dword [ebp - 0x140]
lea ecx, [ebp - 0x120]
push ecx
mov ecx, dword [0x50bddc]
push 0x40000000
push eax
push ecx
mov ecx, esi
call edx
test eax, eax
je 0x450163
cmp dword [esi + 0x78], edi
je 0x450f91
mov eax, dword [sym.imp.mfc100u.dll_CWnd::wndTopMost]
push 3
push edi
push edi
push edi
push edi
push eax
mov ecx, esi
call sub.mfc100u.dll_CWnd::SetWindowPos
mov ecx, dword [0x50bdd0]
mov edx, dword [esi + 0x8c]
mov ebx, 1
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xa0], edi
mov dword [esi + 0xbc], edi
mov dword [esi + 0x98], edi
mov dword [esi + 0x84], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x90], ebx
test dword [edx + 0x10], 0x40000000
mov ecx, esi
je 0x450fe7
push edi
call fcn.0044f5f0
push edi
mov ecx, esi
call fcn.0044f720
jmp 0x450ff5
push ebx
call fcn.0044f720
push ebx
mov ecx, esi
call fcn.00451070
mov eax, dword [esi + 0x8c]
mov ecx, dword [eax + 0x10]
and ecx, 0x1800
cmp ecx, 0x1000
jne 0x451013
mov ecx, esi
call fcn.0044cec0
push ebx
mov ecx, esi
call sub.mfc100u.dll_CWnd::EnableToolTips
cmp dword [0x50bbc8], edi
je 0x45102c
push edi
call fcn.00449010
add esp, 4
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b7f56
mov esp, ebp
pop ebp
ret 8