Function at 0x445700
Capabilities:
Check for unmoving mouse cursor
Log keystrokes via polling

Disassembly:
sub esp, 0x148
push ebx
mov ebx, dword [esp + 0x154]
push ebp
push esi
mov esi, dword [esp + 0x164]
push edi
mov edi, dword [esp + 0x164]
cmp ebx, 0x15
mov ebp, ecx
ja 0x4459ec
cmp ebx, 0x15
je 0x4459d3
lea eax, [ebx - 1]
cmp eax, 0xf
ja case.0x446246.517
xor ecx, ecx
mov cl, byte [eax + 0x446a08]
jmp dword [ecx*4 + 0x4469e8]
push 0x730
call fcn.004be967
mov esi, eax
xor ebx, ebx
add esp, 4
cmp esi, ebx
je 0x4457c0
mov edi, dword [esp + 0x15c]
mov edx, dword [ebp + 4]
push edi
push edx
mov ecx, esi
call fcn.0045d7e0
push 0x402
push edi
mov ecx, esi
mov dword [esi + 0x720], ebp
mov dword [esi], 0x4cc994
mov dword [esi + 0x724], ebx
mov dword [esi + 0x728], ebx
mov dword [esi + 0x6dc], 1
call fcn.00460f10
push 1
mov ecx, esi
call fcn.00460bc0
mov dword [ebp + 8], esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
xor esi, esi
pop edi
mov dword [ebp + 8], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov ecx, dword [ebp + 8]
push 0
push 0
call fcn.0045fcf0
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4457ed
mov eax, dword [ecx]
push 1
call dword [eax]
pop edi
mov dword [ebp + 8], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
cmp word [esp + 0x164], 0
je 0x445858
mov eax, dword [ebp + 0xc]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
jne 0x445858
mov eax, dword [0x4eb468]
test eax, eax
je 0x445858
push 0
call dword [sym.imp.USER32.dll_SetCursor]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
xor eax, eax
pop edi
mov dword [ebp + 0x7c], eax
mov dword [ebp + 0x78], eax
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x80], eax
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [ebp + 0xac]
test eax, eax
je 0x4458cb
mov al, byte [0x4eb3fc]
test al, al
je 0x4458cb
mov ecx, dword [esp + 0x15c]
mov edx, dword [str.SoftwareACD_SystemsACDSee32]
push ecx
push str.ViewerWndPos
push edx
call fcn.00449620
add esp, 0xc
pop edi
mov dword [ebp + 0xac], 0
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x148
ret 0x10
mov edi, dword [esp + 0x164]
cmp edi, 1
jne 0x445928
mov eax, dword [ebp + 0x38]
xor esi, esi
cmp eax, esi
je case.0x445a14.28
mov eax, dword [ebp + 0xc]
push 0x64
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, ebp
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x5c], esi
call fcn.00447a80
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov ecx, ebp
call fcn.00441cf0
mov eax, dword [ebp + 0xa8]
xor esi, esi
cmp eax, esi
je 0x44598a
mov al, byte [0x4eb3fc]
test al, al
je 0x445960
mov ecx, dword [esp + 0x15c]
mov edx, dword [str.SoftwareACD_SystemsACDSee32]
push ecx
push str.ViewerWndPos
push edx
call fcn.00449620
add esp, 0xc
cmp dword [ebp + 0xb0], esi
jne 0x445984
mov eax, dword [0x4eb3ec]
mov ecx, dword [0x4eb3f0]
cmp eax, esi
jne 0x44597b
cmp ecx, esi
je 0x445984
push ecx
push eax
mov ecx, ebp
call fcn.0043f3b0
mov dword [ebp + 0xa8], esi
cmp edi, esi
jne case.0x445a14.28
mov eax, dword [ebp + 0xc]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
jne case.0x445a14.28
cmp dword [ebp + 0x1bc], esi
je case.0x445a14.28
push 1
mov ecx, ebp
mov dword [ebp + 0x1bc], esi
call fcn.0043f610
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov ecx, dword [esp + 0x15c]
push esi
push edi
push 0x15
push ecx
call fcn.00449590
add esp, 0x10
jmp 0x446934
cmp ebx, 0x11f
ja 0x44621d
je 0x4460df
lea eax, [ebx - 0x1c]
cmp eax, 0xfb
ja case.0x446246.517
xor edx, edx
mov dl, byte [eax + 0x446a4c]
jmp dword [edx*4 + 0x446a18]
mov eax, dword [esp + 0x168]
mov ecx, ebp
push eax
call fcn.00449130
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [esp + 0x164]
cmp eax, 0x64
jne 0x445a59
mov ecx, ebp
call fcn.00441b60
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
cmp eax, 0x65
jne case.0x445a14.28
mov esi, dword [esp + 0x15c]
push eax
push esi
mov dword [ebp + 0x94], 0
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [ebp + 0x44]
test eax, eax
jne case.0x445a14.28
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [0x4eb3f4]
test eax, eax
je 0x445ab4
mov ecx, ebp
call fcn.0043ef10
push esi
call dword [sym.imp.USER32.dll_SetFocus]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [str.SoftwareACD_SystemsACDSee32]
push 0xa
push esi
push str.ViewerWndPos
push eax
call fcn.004496a0
add esp, 0x10
push esi
call dword [sym.imp.USER32.dll_SetFocus]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x2c]
mov esi, dword [esp + 0x15c]
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x445b23
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x445b23
mov eax, dword [ebp + 0xc]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
jne 0x445b23
push 1
mov ecx, ebp
call fcn.0043f610
jmp 0x445b2d
mov dword [ebp + 0x1bc], 1
mov ebp, dword [ebp + 0x58]
test ebp, ebp
je 0x446934
mov ecx, ebp
call fcn.0045b110
jmp 0x446934
mov eax, dword [ebp + 0x98]
test eax, eax
jne 0x445b7c
mov eax, dword [ebp + 0x9c]
test eax, eax
jne 0x445b7c
mov eax, dword [esp + 0x168]
pop edi
pop esi
pop ebp
mov dword [eax + 0x18], 0x14f
mov dword [eax + 0x1c], 0x64
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [esp + 0x168]
pop edi
pop esi
pop ebp
mov dword [eax + 0x18], 0x1cc
mov dword [eax + 0x1c], 0x96
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
cmp edi, 0xc8
jne 0x445c08
mov edi, dword [0x4eb3e4]
xor eax, eax
test edi, edi
mov edx, dword [esp + 0x15c]
push 3
sete al
xor ecx, ecx
push 0
test eax, eax
setne cl
push 0
push 0
add ecx, 0xfffffffe
push 0
push ecx
push edx
mov dword [0x4eb3e4], eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x4eb3e4]
mov ecx, dword [ebp + 0x20]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0xc8
push ecx
call dword [sym.imp.USER32.dll_CheckMenuItem]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov esi, edi
and esi, 0xfff0
cmp esi, 0xf120
jne 0x445c39
mov edx, dword [esp + 0x15c]
push edx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x445c39
mov dword [ebp + 0xa8], 1
jmp 0x446934
cmp esi, 0xf030
jne 0x446934
mov dword [ebp + 0xa8], 1
jmp 0x446934
mov esi, dword [esp + 0x15c]
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x445da8
mov ecx, dword [esp + 0x164]
lea eax, [ecx - 0x10]
cmp eax, 0x58
ja case.0x445c85.26
xor edx, edx
mov dl, byte [eax + 0x446b74]
jmp dword [edx*4 + 0x446b48]
mov ecx, ebp
call fcn.00448a10
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
mov esi, dword [ecx + 0x50]
jmp 0x445e18
pop edi
mov dword [ebp + 0x78], 1
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
pop edi
mov dword [ebp + 0x7c], 1
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
pop edi
mov dword [ebp + 0x80], 1
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
pop edi
mov dword [ebp + 0x84], 1
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [ebp + 0x9c]
xor ecx, ecx
test eax, eax
sete cl
mov dword [ebp + 0x9c], ecx
mov ecx, ebp
call fcn.00441cf0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [ebp + 0x98]
xor edx, edx
test eax, eax
sete dl
mov ecx, ebp
mov dword [ebp + 0x98], edx
call fcn.00441cf0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [ebp + 0x1c]
push eax
push esi
call dword [sym.imp.USER32.dll_SetMenu]
mov ecx, ebp
call fcn.00441cf0
push 0
push 0xf100
push 0x112
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov esi, dword [esp + 0x15c]
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x445dcd
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
push eax
push ecx
push ebx
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [esp + 0x164]
lea eax, [ecx - 0x10]
cmp eax, 0x58
ja case.0x445c85.26
xor edx, edx
mov dl, byte [eax + 0x446bf0]
jmp dword [edx*4 + 0x446bd0]
mov ecx, ebp
call fcn.00448a10
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
mov esi, dword [ecx + 0x50]
push eax
call dword [sym.imp.USER32.dll_WindowFromPoint]
cmp eax, esi
jne case.0x445a14.28
mov ecx, dword [ebp + 8]
call fcn.00460b80
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
pop edi
mov dword [ebp + 0x78], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
pop edi
mov dword [ebp + 0x7c], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
pop edi
mov dword [ebp + 0x80], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
pop edi
mov dword [ebp + 0x84], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov edx, dword [esp + 0x168]
push edx
push ecx
push ebx
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [esp + 0x168]
cmp ax, 0xffff
jne case.0x445a14.28
shr eax, 0x10
cmp eax, 0xffff
jne case.0x445a14.28
mov esi, dword [esp + 0x15c]
lea eax, [esp + 0x24]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x10]
cdq
sub eax, edx
push ecx
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
cdq
sub eax, edx
push esi
sar eax, 1
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
mov ecx, ebp
call fcn.00441360
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [esi + 8]
cmp eax, 0xfffffd3a
je 0x445fb0
cmp eax, 0xfffffd3c
je 0x445f8b
cmp eax, 0xfffffdf8
jne 0x446934
mov eax, dword [0x4eb76c]
test eax, eax
je 0x446934
mov esi, dword [esp + 0x168]
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 4]
mov dword [esi + 0x60], ecx
push edx
call fcn.00404f50
add esp, 4
and eax, 0xffff
mov dword [esi + 0xc], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [ebp + 0x10]
push 0
push 0
push 0x421
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x148
ret 0x10
cmp dword [esi + 0xc], 0x4f28
jne 0x445f9e
mov ecx, dword [ebp + 4]
push 0x7d
push ecx
call dword [sym.imp.USER32.dll_LoadMenuA]
mov esi, eax
push 0
push esi
call dword [sym.imp.USER32.dll_GetSubMenu]
lea edx, [esp + 0x10]
mov edi, eax
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0
push eax
push 0
push ecx
push edx
push 0
push edi
call dword [sym.imp.USER32.dll_TrackPopupMenu]
push esi
call dword [sym.imp.USER32.dll_DestroyMenu]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
push eax
push ecx
mov ecx, ebp
call fcn.00446c80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
mov edx, dword [ebp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor edi, edi
mov dword [esp + 0x20], eax
test eax, eax
jle 0x446934
mov ebx, dword [sym.imp.USER32.dll_GetMenuItemID]
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [esp + 0x164]
push edi
push eax
call ebx
cmp eax, 0x4f3b
jne 0x446081
push 0xf
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
neg eax
sbb eax, eax
inc eax
push eax
push 0x4f3b
jmp 0x4460c4
cmp eax, 0x4f70
jne 0x4460ca
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x48]
push 1
push edx
call fcn.0045f8a0
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x20], edx
call dword [sym.imp.USER32.dll_SetRectEmpty]
push 1
push 0x4f70
mov ecx, dword [ebp + 0x1c]
push ecx
call esi
mov eax, dword [esp + 0x20]
inc edi
cmp edi, eax
jl 0x44605a
mov ebx, dword [esp + 0x160]
jmp 0x446934
mov ecx, dword [esp + 0x164]
mov eax, ecx
shr eax, 0x10
cmp ax, 0xffff
jne 0x446143
mov edx, dword [ebp + 0x18]
push 0
push 0
push 0x409
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp + 0xc]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
je 0x446124
mov eax, dword [0x4eb420]
test eax, eax
jne case.0x445a14.28
mov ecx, dword [esp + 0x15c]
push 0
push ecx
call dword [sym.imp.USER32.dll_SetMenu]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
test al, 0x10
jne 0x4461fb
test ah, 0x20
jne 0x4461fb
test ah, 8
je 0x446181
mov edx, dword [ebp + 0x18]
push 0x4eb858
push 0xff
push 0x401
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
lea eax, [esp + 0x58]
push 0x100
and ecx, 0xffff
push eax
push ecx
mov ecx, dword [ebp + 4]
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x4461d9
mov eax, dword [ebp + 0x18]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
lea edx, [esp + 0x58]
push edx
push 0xff
push 0x401
push eax
call esi
mov ecx, dword [ebp + 0x18]
push 0
push 1
push 0x409
push ecx
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov edx, dword [ebp + 0x18]
push 0
push 0
push 0x409
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [ebp + 0x18]
push 0
push 0
push 0x409
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
cmp ebx, 0x216
ja 0x44644e
je 0x44642c
lea eax, [ebx - 0x200]
cmp eax, 0x14
ja case.0x446246.517
xor ecx, ecx
mov cl, byte [eax + 0x446c64]
jmp dword [ecx*4 + 0x446c4c]
call dword [sym.imp.USER32.dll_GetFocus]
mov ecx, dword [esp + 0x15c]
mov bl, byte [esp + 0x164]
cmp eax, ecx
jne 0x44629d
mov edx, dword [ebp + 0xc]
push 0xfffffffffffffff0
push edx
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xc00000
jne 0x44629d
mov eax, dword [0x4eb468]
test eax, eax
je 0x44629d
mov eax, dword [ebp + 8]
add eax, 0x6ec
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
je 0x44629d
test bl, 0x1f
jne 0x44629d
push 0
jmp 0x4462ab
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
test bl, 4
je case.0x445a14.28
mov ecx, ebp
call fcn.00448a10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, 1
pop edi
mov dword [ebp + 0xa8], eax
mov dword [ebp + 0xa4], 0
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [ebp + 0xc]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
and eax, 0xc00000
mov ecx, 0
neg eax
sbb eax, eax
inc eax
sete cl
push ecx
mov ecx, ebp
mov dword [esp + 0x14], eax
call fcn.0043f610
mov eax, dword [ebp + 0xb0]
mov dword [ebp + 0xa8], 1
test eax, eax
jne 0x4463c6
mov eax, dword [0x4eb3ec]
mov ecx, dword [0x4eb3f0]
test eax, eax
jne 0x4463bd
test ecx, ecx
je 0x4463c6
jmp 0x4463bd
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 0x1c]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
test byte [esp + 0x164], 1
je 0x4463df
mov eax, dword [ebp + 0xc]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
and eax, 0xc00000
mov ecx, 0
neg eax
sbb eax, eax
inc eax
sete cl
push ecx
mov ecx, ebp
mov dword [esp + 0x14], eax
call fcn.0043f610
mov eax, dword [ebp + 0xb0]
mov dword [ebp + 0xa8], 1
test eax, eax
jne 0x4463c6
mov eax, dword [0x4eb3ec]
mov ecx, dword [0x4eb3f0]
test eax, eax
jne 0x4463bd
test ecx, ecx
je 0x4463c6
push ecx
push eax
mov ecx, ebp
call fcn.0043f3b0
pop edi
mov dword [ebp + 0xa8], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x15c]
mov edx, eax
shr eax, 0x10
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
and edx, 0xffff
push eax
push ecx
mov dword [esp + 0x18], edx
call dword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
mov ecx, ebp
call fcn.00441360
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov eax, 1
pop edi
mov dword [ebp + 0xac], eax
mov dword [ebp + 0xa4], 0
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
cmp ebx, 0x311
ja 0x446747
je 0x446692
cmp ebx, 0x233
je 0x446479
cmp ebx, 0x30f
je 0x44669f
jmp case.0x446246.517
mov ecx, dword [ebp + 8]
xor ebx, ebx
cmp dword [ecx + 0x728], ebx
jne case.0x445a14.28
mov edx, dword [esp + 0x164]
push ebx
push ebx
push 0xffffffffffffffff
push edx
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov esi, eax
cmp esi, 0x64
mov dword [esp + 0x40], esi
jle 0x4464be
push 0x7f02
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x15c]
push eax
call dword [sym.imp.USER32.dll_BringWindowToTop]
push 0x80
mov dword [esp + 0x28], 0x4cc6f4
call fcn.004be967
add esp, 4
cmp esi, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0x1f
mov dword [esp + 0x38], 0x40
mov dword [esp + 0x34], 1
mov dword [esp + 0x20], ebx
jle 0x4465d6
mov ecx, dword [esp + 0x164]
push 0
push 0
push ebx
push ecx
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov esi, eax
inc esi
push esi
call fcn.004be967
mov edx, dword [esp + 0x168]
add esp, 4
mov edi, eax
push esi
push edi
push ebx
push edx
mov dword [esp + 0x54], edi
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
test edi, edi
je 0x4465c5
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + 1]
cmp edx, ecx
jne 0x4465b1
mov edx, dword [esp + 0x38]
add eax, edx
lea eax, [eax*4 + 4]
push eax
call fcn.004be967
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
mov ebx, eax
lea ecx, [ecx*4 + 4]
mov edi, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x2c]
push eax
call fcn.004be975
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x4c]
add esp, 8
add eax, ecx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov dword [edx + eax*4], edi
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
inc ebx
cmp ebx, eax
mov dword [esp + 0x20], ebx
jl 0x44650d
mov ecx, dword [esp + 0x164]
push ecx
call dword [sym.imp.SHELL32.dll_DragFinish]
mov edx, dword [0x4eb458]
push 0
dec edx
lea eax, [esp + 0x28]
neg edx
sbb edx, edx
mov ecx, ebp
and edx, 3
push edx
push 0
push eax
call fcn.00440190
test eax, eax
jne 0x446628
mov ecx, dword [str.ACDSee_32]
mov edx, dword [esp + 0x15c]
push eax
mov eax, dword [ebp + 4]
push ecx
push 0x223
push edx
push eax
call fcn.0044ace0
add esp, 0x14
mov eax, dword [esp + 0x10]
test eax, eax
je 0x446637
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], 0x4cc6f4
test eax, eax
je 0x446676
mov eax, dword [esp + 0x2c]
xor esi, esi
test eax, eax
jle 0x446676
cmp esi, eax
jge 0x446662
test esi, esi
jl 0x446662
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + esi*4]
jmp 0x446664
xor eax, eax
push eax
call fcn.004be975
mov eax, dword [esp + 0x30]
add esp, 4
inc esi
cmp esi, eax
jl 0x446655
mov edx, dword [esp + 0x28]
push edx
call fcn.004be975
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
cmp edi, dword [esp + 0x15c]
je case.0x445a14.28
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x44]
cmp eax, ecx
jge 0x446934
test eax, eax
jl 0x446934
mov ecx, dword [ebp + 0x40]
mov edi, dword [ecx + eax*4]
test edi, edi
je 0x446934
push 0xffffffffffffffff
mov ecx, edi
call fcn.0045af40
test eax, eax
je 0x446934
mov edx, dword [esp + 0x15c]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push 0
push 0xffffffffffffffff
mov ecx, edi
mov esi, eax
call fcn.0045af40
mov ebx, dword [sym.imp.GDI32.dll_SelectPalette]
push eax
push esi
call ebx
push esi
mov edi, eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test edi, edi
mov dword [esp + 0x10], eax
je 0x446710
push 0
push edi
push esi
call ebx
mov eax, dword [esp + 0x15c]
push esi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov esi, dword [esp + 0x10]
test esi, esi
je 0x446738
mov ecx, dword [ebp + 8]
push 1
push 0
mov edx, dword [ecx + 0x50]
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
mov eax, ebx
sub eax, 0x401
je 0x4469ca
dec eax
je 0x446960
mov edx, dword [0x4eb82c]
cmp ebx, edx
je 0x446778
cmp ebx, 0x20a
jne 0x446934
mov edi, dword [esp + 0x164]
mov eax, edi
and eax, 0xffff
mov esi, eax
and eax, 4
and esi, 8
shr edi, 0x10
cmp ebx, edx
movsx ecx, di
jne 0x4467b5
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
mov si, ax
push 0x10
shr esi, 0xf
and esi, 1
call edi
mov ecx, dword [esp + 0x164]
shr eax, 0xf
and eax, 1
xor edi, edi
cmp esi, edi
je 0x4467dd
cmp ecx, edi
jge 0x4467cb
mov ecx, ebp
call fcn.004434c0
jmp 0x446934
jle 0x446934
mov ecx, ebp
call fcn.00443390
jmp 0x446934
cmp eax, edi
je 0x44680d
cmp ecx, edi
jge 0x4467f6
push 0x4efe
mov ecx, ebp
call fcn.00443290
jmp 0x446934
jle 0x446934
push 0x4eff
mov ecx, ebp
call fcn.00443290
jmp 0x446934
cmp ecx, edi
jge 0x4468a8
cmp dword [ebp + 0x38], edi
je 0x446833
mov eax, dword [ebp + 0xc]
push 0x64
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, ebp
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x5c], edi
call fcn.00447a80
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x60]
lea edx, [eax - 1]
cmp ecx, edx
jge 0x446934
add eax, 0xfffffffe
xor edx, edx
cmp ecx, eax
mov dword [ebp + 0x74], edi
sete dl
mov dword [ebp + 0x70], edx
mov eax, dword [0x4eb464]
cmp eax, edi
je 0x446879
mov eax, dword [ebp + 0x10]
push 0x4eb4
push eax
call fcn.00404250
add esp, 8
test eax, eax
je 0x446879
mov esi, 1
jmp 0x44687b
xor esi, esi
push edi
push edi
mov ecx, ebp
mov dword [ebp + 0x94], edi
call fcn.0043ff60
push eax
mov ecx, ebp
call fcn.0043fcd0
cmp esi, edi
je 0x446934
mov ecx, dword [ebp + 0x10]
push 0x4eb4
push ecx
jmp 0x44692c
jle 0x446934
cmp dword [ebp + 0x38], edi
je 0x4468cc
mov edx, dword [ebp + 0xc]
push 0x64
push edx
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, ebp
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x5c], edi
call fcn.00447a80
mov eax, dword [ebp + 0x60]
cmp eax, edi
jle 0x446934
xor ecx, ecx
cmp eax, 1
setne cl
mov dword [ebp + 0x70], ecx
mov dword [ebp + 0x74], edi
cmp dword [0x4eb464], edi
je 0x446905
mov edx, dword [ebp + 0x10]
push 0x4eb3
push edx
call fcn.00404250
add esp, 8
test eax, eax
je 0x446905
mov esi, 1
jmp 0x446907
xor esi, esi
push edi
push 1
mov ecx, ebp
mov dword [ebp + 0x94], edi
call fcn.0043ff60
push eax
mov ecx, ebp
call fcn.0043fcd0
cmp esi, edi
je 0x446934
mov eax, dword [ebp + 0x10]
push 0x4eb3
push eax
call fcn.004041d0
add esp, 8
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov eax, dword [esp + 0x15c]
push ecx
push edx
push ebx
push eax
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x148
ret 0x10
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x44697c
mov ecx, dword [0x4eb408]
mov edx, dword [ebp + 0xc]
push 0
push ecx
push 0x64
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, dword [0x4eb40c]
test eax, eax
je case.0x445c85.24
mov ecx, dword [ebp + 0x58]
test ecx, ecx
je case.0x445c85.24
push 0xffffffffffffffff
call fcn.0045b0c0
test eax, eax
jne case.0x445c85.24
mov ecx, dword [ebp + 0x58]
call fcn.0045aeb0
test eax, eax
jne case.0x445c85.24
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, ebp
call fcn.00448f10
mov ecx, ebp
call fcn.00441f90
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10
mov ecx, dword [esp + 0x168]
push ecx
mov ecx, ebp
call fcn.00448b30
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10