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

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x144
push ebx
mov ebx, dword [esp + 0x150]
push ebp
push esi
mov ebp, ecx
push edi
mov ecx, dword [esp + 0x160]
mov edi, dword [esp + 0x158]
cmp ebx, 0x10
ja 0x439aa3
cmp ebx, 0x10
je 0x439a8c
lea eax, [ebx - 1]
cmp eax, 7
ja case.0x4398f3.3
jmp dword [eax*4 + 0x43aaa8]
push 0x708
call fcn.004985f0
add esp, 4
test eax, eax
je 0x439931
mov ecx, dword [esp + 0x158]
mov edx, dword [ebp + 8]
push ecx
push edx
push ebp
mov ecx, eax
call fcn.00431680
mov dword [ebp + 0xc], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
xor eax, eax
mov dword [ebp + 0xc], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, dword [ebp + 0xc]
push 0
push 1
push 1
push 0
call fcn.00449910
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x439960
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebp + 0xc], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp word [esp + 0x160], 0
je 0x4399ac
mov ecx, ebp
call fcn.0043c070
test eax, eax
je 0x4399ac
mov eax, dword [0x4cab84]
test eax, eax
je 0x4399ac
push 0
call dword [sym.imp.USER32.dll_SetCursor]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
xor eax, eax
mov dword [ebp + 0x88], eax
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x90], eax
mov dword [ebp + 0x8c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov edi, dword [esp + 0x160]
xor esi, esi
cmp edi, 1
mov ecx, ebp
jne 0x439a0d
call fcn.00435fd0
jmp 0x439a4b
call fcn.00436300
cmp dword [ebp + 0xb4], esi
je 0x439a4b
mov ecx, ebp
call fcn.00436000
cmp dword [ebp + 0xc0], esi
jne 0x439a45
mov eax, dword [0x4cab10]
mov ecx, dword [0x4cab14]
cmp eax, esi
jne 0x439a3c
cmp ecx, esi
je 0x439a45
push ecx
push eax
mov ecx, ebp
call fcn.00433670
mov dword [ebp + 0xb4], esi
cmp edi, esi
jne 0x43aa96
mov ecx, ebp
call fcn.0043c070
test eax, eax
je 0x43aa96
cmp dword [ebp + 0x1dc], esi
je 0x43aa96
push 1
mov ecx, ebp
mov dword [ebp + 0x1dc], esi
call fcn.00433850
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp ebx, 0x1c
ja 0x439b02
je 0x439aeb
cmp ebx, 0x15
jne case.0x4398f3.3
push eax
push ecx
push ebx
push edi
call fcn.0043c180
add esp, 0x10
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x158]
push eax
push ecx
push ebx
push edx
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, dword [ebp + 0xc]
call fcn.00431710
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp ebx, 0x2b
ja 0x439d0b
je 0x439b72
cmp ebx, 0x24
jne case.0x4398f3.3
mov eax, dword [ebp + 0xa4]
test eax, eax
jne 0x439b4e
mov eax, dword [ebp + 0xa8]
test eax, eax
jne 0x439b4e
mov eax, dword [esp + 0x164]
mov dword [eax + 0x18], 0x14a
mov dword [eax + 0x1c], 0x64
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, dword [esp + 0x164]
mov dword [eax + 0x18], 0x1c7
mov dword [eax + 0x1c], 0x96
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov esi, dword [esp + 0x164]
push 0
push 0
push 0x31
lea eax, [esi + 0x1c]
mov ebx, dword [esi + 0x2c]
mov edx, eax
mov ecx, dword [edx]
mov dword [esp + 0x1c], ecx
mov eax, dword [edx + 4]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x24], eax
sub eax, ecx
sub eax, 2
mov edx, dword [edx + 0xc]
imul eax, ebx
add eax, 0x270f
mov dword [esp + 0x28], edx
mov ecx, eax
mov eax, 0x68db8bad
imul ecx
mov ecx, dword [ebp + 0x18]
sar edx, 0xc
mov eax, edx
push ecx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x34], edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esi + 0x18]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x70]
cmp eax, ecx
jge 0x439bf5
test eax, eax
jl 0x439bf5
mov ecx, dword [ebp + 0x48]
mov ebp, dword [ecx + eax*4]
jmp 0x439bf7
xor ebp, ebp
mov dl, byte [0x4caf4c]
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x29]
mov byte [esp + 0x28], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
test ebp, ebp
stosb byte es:[edi], al
je 0x439c9e
mov ecx, ebp
call fcn.00444ee0
test eax, eax
je 0x439c34
lea eax, [esp + 0x28]
push str.Loading...
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
test ebp, ebp
je 0x439c9e
mov ecx, ebp
call fcn.004449e0
test eax, eax
je 0x439c9e
push 0xffffffffffffffff
mov ecx, ebp
call fcn.00444cb0
test eax, eax
je 0x439c9e
mov ecx, ebp
call fcn.004449e0
mov ecx, eax
xor edx, edx
add ecx, 0x32
mov edi, 0x3e8
mov eax, ecx
div edi
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x10624dd3
push edx
mul ecx
shr edx, 6
push edx
lea ecx, [esp + 0x30]
push str.Loaded_in__d._01d_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
test ebx, ebx
jne 0x439ca0
or ebx, 0xffffffff
test ebx, ebx
jl 0x439ccb
push 0xffffffffffffffff
lea edx, [esp + 0x14]
push 0xffffffffffffffff
push edx
call dword [sym.imp.USER32.dll_InflateRect]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
inc eax
push 0x200
add ecx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
jmp 0x439cd9
mov ebp, dword [esp + 0x10]
push 0x100
inc ebp
mov dword [esp + 0x14], ebp
mov ecx, dword [esi + 0x18]
lea edx, [esp + 0x2c]
lea eax, [esp + 0x14]
push edx
push eax
push ecx
call dword [sym.imp.COMCTL32.dll_DrawStatusTextA]
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 0x18]
push edx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp ebx, 0x7b
ja 0x439e12
je 0x439d9a
cmp ebx, 0x4e
jne case.0x4398f3.3
mov eax, dword [eax + 8]
cmp eax, 0xfffffd3c
je 0x439d75
cmp eax, 0xfffffdf8
jne 0x439abf
mov eax, dword [0x4cae84]
test eax, eax
je 0x439abf
mov esi, dword [esp + 0x164]
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 4]
mov dword [esi + 0x60], ecx
push edx
call fcn.00404b90
and eax, 0xffff
add esp, 4
mov dword [esi + 0xc], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, dword [ebp + 0x14]
push 0
push 0
push 0x421
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, dword [esp + 0x164]
cmp ax, 0xffff
jne 0x43aa96
shr eax, 0x10
cmp eax, 0xffff
jne 0x43aa96
mov esi, dword [esp + 0x158]
lea ecx, [esp + 0x28]
push ecx
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x30]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
cdq
sub eax, edx
lea edx, [esp + 0x10]
sar eax, 1
push edx
push esi
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
mov ecx, ebp
call fcn.00435920
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp ebx, 0x100
ja 0x43a02d
je 0x439e7e
cmp ebx, 0x7e
jne case.0x4398f3.3
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x2c]
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x439e5d
push edi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x439e5d
mov ecx, ebp
call fcn.0043c070
test eax, eax
je 0x439e5d
push 1
mov ecx, ebp
call fcn.00433850
jmp 0x439e67
mov dword [ebp + 0x1dc], 1
mov ebp, dword [ebp + 0x60]
test ebp, ebp
je 0x439abf
mov ecx, ebp
call fcn.004450e0
jmp 0x439abf
mov esi, dword [esp + 0x158]
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x439eb9
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x160]
push eax
push ecx
push 0x100
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, dword [esp + 0x160]
lea eax, [ecx - 0x10]
cmp eax, 0x58
ja case.0x439ed4.30
xor edx, edx
mov dl, byte [eax + 0x43ab04]
jmp dword [edx*4 + 0x43aac8]
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x10]
push edx
mov esi, dword [ecx + 0x44]
push eax
call dword [sym.imp.USER32.dll_WindowFromPoint]
cmp eax, esi
jne 0x43aa96
mov ecx, dword [ebp + 0x2c]
push ecx
call dword [sym.imp.USER32.dll_SetCursor]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov dword [ebp + 0x84], 1
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov dword [ebp + 0x88], 1
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov dword [ebp + 0x8c], 1
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov dword [ebp + 0x90], 1
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, ebp
call fcn.00436520
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, ebp
mov dword [ebp + 0xa8], 1
call fcn.00436300
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, ebp
mov dword [ebp + 0xa4], 1
call fcn.00436300
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov edx, dword [ebp + 0x1c]
push edx
push esi
call dword [sym.imp.USER32.dll_SetMenu]
mov ecx, ebp
call fcn.00436300
push 0
push 0xf100
push 0x112
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, dword [esp + 0x164]
push eax
push ecx
push 0x100
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp ebx, 0x111
ja 0x43a239
je 0x43a215
cmp ebx, 0x101
jne case.0x4398f3.3
mov edi, dword [esp + 0x158]
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x43a082
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0x160]
push ecx
push edx
push ebx
push edi
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov esi, dword [esp + 0x160]
and eax, 0x8000
lea ecx, [esi - 0x10]
cmp ecx, 0x58
ja case.0x43a0aa.29
xor edx, edx
mov dl, byte [ecx + 0x43ab98]
jmp dword [edx*4 + 0x43ab60]
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x10]
push edx
mov esi, dword [ecx + 0x44]
push eax
call dword [sym.imp.USER32.dll_WindowFromPoint]
cmp eax, esi
jne 0x43aa96
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x10]
push ecx
mov eax, dword [edx + 0x44]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
push 0
push eax
mov eax, dword [esp + 0x18]
mov edx, dword [ecx]
push eax
call dword [edx + 0xc]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov dword [ebp + 0x84], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov dword [ebp + 0x88], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov dword [ebp + 0x8c], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov dword [ebp + 0x90], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, ebp
call fcn.00436520
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
test eax, eax
jne 0x43a1dd
mov ecx, ebp
call fcn.0043c070
mov ecx, dword [0x4cab38]
neg eax
sbb eax, eax
not eax
and eax, ecx
mov ecx, ebp
mov dword [ebp + 0xa8], eax
call fcn.00436300
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
test eax, eax
jne 0x43a1dd
mov ecx, ebp
call fcn.0043c070
mov ecx, dword [0x4cab34]
neg eax
sbb eax, eax
not eax
and eax, ecx
mov dword [ebp + 0xa4], eax
mov ecx, ebp
call fcn.00436300
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, dword [esp + 0x164]
push ecx
push esi
push 0x101
push edi
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov edx, dword [esp + 0x164]
mov eax, dword [esp + 0x160]
push edx
push eax
mov ecx, ebp
call fcn.0043ac00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp ebx, 0x117
ja 0x43a419
je 0x43a3b5
mov eax, ebx
sub eax, 0x112
je 0x43a308
dec eax
jne case.0x4398f3.3
mov eax, dword [esp + 0x160]
cmp eax, 0x64
jne 0x43a281
mov ecx, ebp
call fcn.00436150
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp eax, 0x65
jne 0x43aa96
mov esi, dword [esp + 0x158]
push eax
push esi
mov dword [ebp + 0xa0], 0
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [ebp + 0x4c]
test eax, eax
jne 0x43aa96
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [0x4cab18]
test eax, eax
je 0x43a2dc
mov ecx, ebp
call fcn.004332c0
push esi
call dword [sym.imp.USER32.dll_SetFocus]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, dword [str.SoftwareACD_SystemsACDSee32]
push 0xa
push esi
push str.ViewerWndPos
push eax
call fcn.0043c280
add esp, 0x10
push esi
call dword [sym.imp.USER32.dll_SetFocus]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp ecx, 0xc8
jne 0x43a370
mov edi, dword [0x4cab08]
xor eax, eax
test edi, edi
mov edx, dword [esp + 0x158]
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 [0x4cab08], eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x4cab08]
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]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov esi, ecx
and esi, 0xfff0
cmp esi, 0xf120
jne 0x43a39a
push edi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x43a39a
mov dword [ebp + 0xb4], 1
jmp 0x439abf
cmp esi, 0xf030
jne 0x439abf
mov dword [ebp + 0xb4], 1
jmp 0x439abf
mov edx, dword [ebp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor esi, esi
mov dword [esp + 0x20], eax
test eax, eax
jle 0x439abf
mov edi, dword [sym.imp.USER32.dll_GetMenuItemID]
mov ebx, dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [esp + 0x160]
push esi
push eax
call edi
cmp eax, 0x4f3b
jne 0x43a404
push 0xf
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
mov ecx, dword [ebp + 0x1c]
neg eax
sbb eax, eax
inc eax
push eax
push 0x4f3b
push ecx
call ebx
mov eax, dword [esp + 0x20]
inc esi
cmp esi, eax
jl 0x43a3d9
mov ebx, dword [esp + 0x15c]
jmp 0x439abf
cmp ebx, 0x200
ja 0x43a614
je 0x43a56d
cmp ebx, 0x11f
jne case.0x4398f3.3
mov ecx, dword [esp + 0x160]
mov eax, ecx
shr eax, 0x10
cmp ax, 0xffff
jne 0x43a493
mov edx, dword [ebp + 0x18]
push 0
push 0
push 0x409
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, ebp
call fcn.0043c070
test eax, eax
jne 0x43a474
mov eax, dword [0x4cab3c]
test eax, eax
jne 0x43aa96
mov eax, dword [esp + 0x158]
push 0
push eax
call dword [sym.imp.USER32.dll_SetMenu]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
test al, 0x10
jne 0x43a54b
test ah, 0x20
jne 0x43a54b
test ah, 8
je 0x43a4d1
mov ecx, dword [ebp + 0x18]
push 0x4caf4c
push 0xff
push 0x401
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, dword [ebp + 8]
lea edx, [esp + 0x54]
push 0x100
and ecx, 0xffff
push edx
push ecx
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x43a529
mov edx, dword [ebp + 0x18]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x54]
push ecx
push 0xff
push 0x401
push edx
call esi
mov eax, dword [ebp + 0x18]
push 0
push 1
push 0x409
push eax
call esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, dword [ebp + 0x18]
push 0
push 0
push 0x409
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov edx, dword [ebp + 0x18]
push 0
push 0
push 0x409
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
call dword [sym.imp.USER32.dll_GetFocus]
mov ecx, dword [esp + 0x158]
mov bl, byte [esp + 0x160]
cmp eax, ecx
jne 0x43a5c6
mov ecx, ebp
call fcn.0043c070
test eax, eax
je 0x43a5c6
mov eax, dword [0x4cab84]
test eax, eax
je 0x43a5c6
lea eax, [ebp + 0xc4]
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
je 0x43a5c6
test bl, 0x17
jne 0x43a5c6
push 0
call dword [sym.imp.USER32.dll_SetCursor]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x6ec]
test eax, eax
jne 0x43a5fb
test bl, 4
jne 0x43a5fb
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov edx, dword [ebp + 0x2c]
push edx
call dword [sym.imp.USER32.dll_SetCursor]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
cmp ebx, 0x214
ja 0x43a6f5
je 0x43a6dd
mov eax, ebx
sub eax, 0x203
je 0x43a6c4
sub eax, 2
je 0x43a657
sub eax, 2
jne case.0x4398f3.3
mov ecx, ebp
call fcn.004390b0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
test byte [esp + 0x160], 1
je 0x43a677
mov ecx, ebp
call fcn.004390b0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, dword [esp + 0x164]
lea edx, [esp + 0x10]
mov ecx, eax
push edx
shr eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x15c]
and ecx, 0xffff
push eax
mov dword [esp + 0x18], ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
mov ecx, ebp
call fcn.00435920
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax + 0x1c]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, 1
mov dword [ebp + 0xb4], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, ebx
sub eax, 0x233
je 0x43a894
sub eax, 0xdc
je 0x43a7f0
sub eax, 2
je 0x43a7e8
mov edx, dword [0x4caf24]
cmp ebx, edx
je 0x43a733
cmp ebx, 0x20a
jne 0x439abf
mov ecx, dword [esp + 0x160]
mov eax, ecx
and eax, 0xffff
mov esi, eax
and eax, 4
and esi, 8
shr ecx, 0x10
cmp ebx, edx
movsx ecx, cx
jne 0x43a770
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 + 0x160]
shr eax, 0xf
and eax, 1
test esi, esi
je 0x43a796
test ecx, ecx
jge 0x43a784
mov ecx, ebp
call fcn.00437930
jmp 0x439abf
jle 0x439abf
mov ecx, ebp
call fcn.00437850
jmp 0x439abf
test eax, eax
je 0x43a7c6
test ecx, ecx
jge 0x43a7af
push 0x4efe
mov ecx, ebp
call fcn.00437760
jmp 0x439abf
jle 0x439abf
push 0x4eff
mov ecx, ebp
call fcn.00437760
jmp 0x439abf
test ecx, ecx
jge 0x43a7d6
mov ecx, ebp
call fcn.004374e0
jmp 0x439abf
jle 0x439abf
mov ecx, ebp
call fcn.00437450
jmp 0x439abf
cmp ecx, edi
je 0x43aa96
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x4c]
cmp eax, ecx
jge 0x43a806
test eax, eax
jl 0x43a806
mov ecx, dword [ebp + 0x48]
mov edi, dword [ecx + eax*4]
jmp 0x43a808
xor edi, edi
test edi, edi
je 0x439abf
push 0xffffffffffffffff
mov ecx, edi
call fcn.00444f70
test eax, eax
je 0x439abf
mov edx, dword [esp + 0x158]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push 0
push 0xffffffffffffffff
mov ecx, edi
mov esi, eax
call fcn.00444f70
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 + 0x20], eax
je 0x43a85d
push 0
push edi
push esi
call ebx
mov eax, dword [esp + 0x158]
push esi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov esi, dword [esp + 0x20]
test esi, esi
je 0x43a885
mov ecx, dword [ebp + 0xc]
push 1
push 0
mov edx, dword [ecx + 0x44]
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x10
mov eax, dword [esp + 0x160]
xor ebx, ebx
push ebx
push ebx
push 0xffffffffffffffff
push eax
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov esi, eax
cmp esi, 0x64
mov dword [esp + 0x50], esi
jle 0x43a8ca
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 ecx, dword [esp + 0x158]
push ecx
call dword [sym.imp.USER32.dll_BringWindowToTop]
push 0x80
mov dword [esp + 0x2c], 0x4aa684
call fcn.004985f0
add esp, 4
cmp esi, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0x1f
mov dword [esp + 0x3c], 0x40
mov dword [esp + 0x38], 1
mov dword [esp + 0x24], ebx
jle 0x43a9e9
mov edx, dword [esp + 0x160]
push 0
push 0
push ebx
push edx
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov esi, eax
inc esi
push esi
call fcn.004985f0
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x20], edi
push esi
push edi
push ebx
push eax
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
test edi, edi
je 0x43a9d8
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
lea ecx, [eax + 1]
cmp edx, ecx
jne 0x43a9c4
mov edx, dword [esp + 0x3c]
add eax, edx
lea eax, [eax*4 + 4]
push eax
call fcn.004985f0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov ebx, eax
add esp, 4
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.00498600
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
add esp, 4
add eax, ecx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [edx + eax*4], edi
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
inc ebx
cmp ebx, eax
mov dword [esp + 0x24], ebx
jl 0x43a919
mov ecx, dword [esp + 0x160]
push ecx
call dword [sym.imp.SHELL32.dll_DragFinish]
mov edx, dword [0x4cab74]
push 0
dec edx
lea eax, [esp + 0x2c]
neg edx
sbb edx, edx
mov ecx, ebp
and edx, 3
push edx
push 0
push eax
call fcn.00434490
test eax, eax
jne 0x43aa3b
mov ecx, dword [str.ACDSee_32]
mov edx, dword [esp + 0x158]
push eax
mov eax, dword [ebp + 8]
push ecx
push 0x223
push edx
push eax
call fcn.0043ce30
add esp, 0x14
mov eax, dword [esp + 0x10]
test eax, eax
je 0x43aa4a
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], 0x4aa684
test eax, eax
je 0x43aa89
mov eax, dword [esp + 0x30]
xor esi, esi
test eax, eax
jle 0x43aa89
cmp esi, eax
jge 0x43aa75
test esi, esi
jl 0x43aa75
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + esi*4]
jmp 0x43aa77
xor eax, eax
push eax
call fcn.00498600
mov eax, dword [esp + 0x34]
add esp, 4
inc esi
cmp esi, eax
jl 0x43aa68
mov edx, dword [esp + 0x2c]
push edx
call fcn.00498600
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x144
ret 0x10