Function at 0x40de6e
Capabilities:
Check for foreground window switch
Check for software breakpoints
Check for time delay via gettickcount
Hide graphical window
Log keystrokes via polling
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x130
push ebx
xor ebx, ebx
push esi
xor esi, esi
inc ebx
cmp dword [ebp + 0x7c], 2
push edi
mov byte [ebp + 0x67], 0
jne 0x40dea0
cmp byte [0x4673a5], 0
mov dword [ebp + 0x7c], ebx
jne 0x40dea0
mov byte [0x4673a5], bl
mov byte [ebp + 0x67], bl
cmp dword [0x4681f0], esi
je 0x40deb3
push esi
mov ecx, 0x4681d8
call fcn.0044374a
cmp dword [ebp + 0x78], 0x8000012f
push 0xa
pop edi
jne 0x40dec8
mov dword [ebp + 0x78], edi
mov byte [ebp + 0x38], 1
jmp 0x40ded6
cmp dword [ebp + 0x78], 5
setle byte [ebp + 0x38]
cmp byte [ebp + 0x38], 0
je 0x40dedb
mov dword [ebp + 0x18], esi
jmp 0x40dee4
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [ebp + 0x18], eax
cmp dword [0x4693dc], esi
je 0x40def1
call fcn.0040ef89
cmp dword [0x468158], esi
mov byte [ebp + 0x6f], 0
je 0x40df0a
call fcn.0040dcec
test al, al
je 0x40df0a
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x78], esi
jle 0x40e0df
cmp dword [ebp + 0x7c], ebx
jne 0x40e0df
inc dword [0x4673b4]
cmp byte [0x46739f], 0
mov byte [ebp + 0x66], 1
jne 0x40df49
push esi
push edi
push 9
push dword [0x467254]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne al
mov byte [0x46739f], al
mov ebx, dword [ebp + 0x78]
mov byte [ebp + 0x63], 0
mov byte [ebp + 0x65], 0
mov esi, dword [sym.imp.KERNEL32.DLL_GetTickCount]
call esi
cmp dword [ebp + 0x78], 0
mov edi, eax
jle 0x40e0e8
cmp byte [ebp + 0x65], 0
jne 0x40e0e8
cmp byte [0x4673a5], 0
jne 0x40e0f5
call fcn.0040de0c
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0
push 0
lea eax, [ebp + 0x40]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, 0xffffffff
je 0x40df54
call esi
mov ecx, eax
sub ecx, edi
cmp ecx, 3
jbe 0x40dfb6
mov dword [0x4681a8], eax
cmp dword [0x467b64], 0
je 0x40dfe3
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x40]
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
call fcn.0040d93d
add esp, 0x18
test al, al
jne 0x40df54
cmp dword [0x46b3fc], 0
je 0x40e461
mov eax, dword [ebp + 0x40]
test eax, eax
je 0x40e461
cmp eax, dword [0x467254]
je 0x40e461
cmp dword [ebp + 0x44], 0x414
je 0x40e461
cmp dword [ebp + 0x44], 0x402
je 0x40e461
cmp dword [ebp + 0x44], 0x100
jne 0x40e3fe
mov eax, dword [ebp + 0x48]
cmp eax, 0x22
je 0x40e04e
cmp eax, 0x21
je 0x40e04e
cmp eax, 9
je 0x40e04e
cmp eax, 0x25
je 0x40e04e
cmp eax, 0x27
jne 0x40e32f
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
test esi, esi
je 0x40e32f
push esi
call fcn.0043b97f
test eax, eax
pop ecx
je 0x40e32f
push eax
call fcn.004326c7
mov ebx, eax
test ebx, ebx
pop ecx
je 0x40e32f
cmp byte [ebx + 0x54], 0
je 0x40e32f
push 0
push esi
mov ecx, ebx
call fcn.00432668
mov edi, eax
test edi, edi
mov dword [ebp + 0x68], edi
je 0x40e32f
mov al, byte [edi + 4]
cmp al, 0xf
je 0x40e32f
xor esi, esi
cmp al, 0x13
mov eax, dword [ebp + 0x48]
jne 0x40e2af
cmp eax, 0x25
mov esi, edi
je 0x40e0c7
cmp eax, 0x27
jne 0x40e2af
cmp eax, 0x27
sete al
push 0
push 0
push eax
push edi
mov ecx, ebx
call fcn.00435ebf
jmp 0x40df54
mov byte [ebp + 0x66], 0
jmp 0x40df49
cmp byte [0x4673a5], 0
je 0x40e22c
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x40e22c
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x467c9c]
jne 0x40e22c
cmp dword [0x4673d8], 0
je 0x40e14b
push 0x20
lea eax, [ebp - 0x40]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea eax, [ebp - 0x40]
push str.32770
push eax
call fcn.004579f0
neg eax
sbb al, al
pop ecx
inc al
pop ecx
mov byte [ebp + 0x17], al
jne 0x40e192
call dword [sym.imp.USER32.dll_GetFocus]
test eax, eax
je 0x40e22c
push 0x20
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClassNameA]
lea eax, [ebp - 0x40]
push str.SysTreeView32
push eax
call fcn.00442502
test eax, eax
pop ecx
pop ecx
je 0x40e192
lea eax, [ebp - 0x40]
push str.SysListView32
push eax
call fcn.00442502
test eax, eax
pop ecx
pop ecx
jne 0x40e22c
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
xor eax, eax
push eax
push 0x1ff
push eax
push eax
lea eax, [ebp + 0x40]
push eax
call esi
test eax, eax
jne 0x40e1d1
push 1
call fcn.0040de0c
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0x20e
push 0
lea eax, [ebp + 0x40]
push eax
call esi
jmp 0x40e250
mov esi, dword [ebp + 0x50]
push 0
call fcn.0040de0c
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0x20e
push 0
lea eax, [ebp + 0x40]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
push 1
je 0x40e20a
mov eax, dword [ebp + 0x50]
sub eax, esi
test eax, eax
jle 0x40e211
push 0x1ff
jmp 0x40e242
call fcn.0040de0c
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0x20e
jmp 0x40e244
push 1
call fcn.0040de0c
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0
lea eax, [ebp + 0x40]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
xor esi, esi
cmp eax, esi
jne 0x40dfb6
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, eax
sub ecx, edi
cmp ecx, 3
jbe 0x40e26e
mov dword [0x4681a8], eax
cmp dword [ebp + 0x78], esi
jne 0x40e289
cmp byte [ebp + 0x63], 0
jne 0x40e289
push esi
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov byte [ebp + 0x63], 1
jmp 0x40df54
push dword [ebp + 0x38]
push dword [ebp + 0x18]
push dword [ebp + 0x78]
call fcn.0040ef48
add esp, 0xc
test eax, eax
jne 0x40eeff
push 5
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x40df54
cmp eax, 0x25
je 0x40e32f
cmp eax, 0x27
je 0x40e32f
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x40e32f
cmp dword [ebp + 0x48], 9
jne 0x40e2df
cmp byte [edi + 4], 0xc
jne 0x40e2df
push 0xfffffffffffffff0
push dword [edi]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 4
jne 0x40e32f
test esi, esi
jne 0x40e304
xor eax, eax
mov al, byte [edi + 6]
mov ecx, ebx
push eax
call fcn.00432cbd
mov esi, eax
test esi, esi
jne 0x40e304
push eax
mov ecx, ebx
call fcn.00432cbd
mov esi, eax
test esi, esi
je 0x40e32f
cmp dword [ebp + 0x48], 0x22
je 0x40e320
cmp dword [ebp + 0x48], 9
jne 0x40e31c
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x40e320
xor al, al
jmp 0x40e324
xor eax, eax
mov al, 1
push 1
push 1
push eax
push esi
jmp 0x40e0d3
cmp dword [ebp + 0x48], 0x1b
je 0x40e355
cmp dword [ebp + 0x48], 9
je 0x40e355
cmp dword [ebp + 0x48], 0x41
jne 0x40e3d8
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x40e3d8
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
test esi, esi
je 0x40e3d8
push esi
call fcn.0043b97f
test eax, eax
pop ecx
je 0x40e3d8
push eax
call fcn.004326c7
mov ebx, eax
test ebx, ebx
pop ecx
je 0x40e3d8
push 0
push esi
mov ecx, ebx
call fcn.00432668
test eax, eax
mov dword [ebp + 0x68], eax
je 0x40e3d8
cmp byte [eax + 4], 0xc
jne 0x40e3d8
cmp dword [ebp + 0x48], 0x1b
je 0x40e3cc
cmp dword [ebp + 0x48], 0x41
je 0x40e3b0
test byte [eax + 5], 0x80
je 0x40e3d8
push 0x45a5e4
push 1
push 0xc2
jmp 0x40e3bf
test byte [eax + 5], 2
jne 0x40e3d8
push 0xffffffffffffffff
push 0
push 0xb1
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x40df54
mov ecx, ebx
call fcn.004323fd
jmp 0x40df54
mov eax, dword [0x46b400]
xor ecx, ecx
cmp eax, ecx
je 0x40e3fe
cmp dword [ebp + 0x48], 0xd
jne 0x40e3ed
push ecx
push ecx
jmp 0x40e3f6
cmp dword [ebp + 0x48], 0x1b
jne 0x40e3fe
push ecx
push 1
push 0x1116
push eax
jmp 0x40e3c1
xor edi, edi
mov esi, 0x467980
mov eax, dword [esi]
test eax, eax
je 0x40e456
cmp dword [eax], 0
je 0x40e44d
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 1
mov eax, dword [ebp + 0x44]
mov ecx, dword [0x465108]
mov dword [ecx + 0xbc], eax
lea eax, [ebp + 0x40]
push eax
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x40e56b
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 0
inc edi
cmp dword [0x46b3fc], edi
je 0x40e461
add esi, 4
cmp esi, 0x467b0c
jl 0x40e405
mov ecx, dword [ebp + 0x44]
mov eax, 0x312
cmp ecx, eax
ja 0x40e5cd
je 0x40e610
mov eax, ecx
sub eax, 0x12
je 0x40e5b8
sub eax, 0x39
je 0x40e5a8
sub eax, 0xb5
je 0x40e57c
sub eax, 0x13
jne 0x40e945
xor esi, esi
cmp dword [ebp + 0x4c], esi
jne 0x40e945
mov eax, dword [0x467254]
cmp dword [ebp + 0x40], eax
jne 0x40e945
cmp dword [0x4693dc], esi
je 0x40e4c5
call fcn.0040ef89
cmp dword [0x468158], esi
je 0x40e4da
call fcn.0040dcec
test al, al
je 0x40e4da
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x7c], esi
je 0x40df54
cmp dword [ebp + 0x78], 1
jl 0x40df54
push dword [ebp + 0x38]
push dword [ebp + 0x18]
push dword [ebp + 0x78]
call fcn.0040ef48
add esp, 0xc
test eax, eax
je 0x40df54
cmp byte [ebp + 0x67], 0
je 0x40e513
mov byte [0x4673a5], 0
cmp byte [ebp + 0x66], 0
je 0x40e560
dec dword [0x4673b4]
xor eax, eax
cmp dword [ebp + 0x78], eax
jle 0x40e560
cmp dword [0x4673b4], eax
jne 0x40e560
cmp dword [0x468158], eax
jne 0x40e560
cmp dword [0x4693dc], eax
jne 0x40e560
cmp byte [0x46739f], 0
je 0x40e560
push 9
push dword [0x467254]
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x40e560
mov byte [0x46739f], 0
mov al, byte [ebp + 0x6f]
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 0
jmp 0x40df54
mov eax, dword [ebp + 0x40]
cmp eax, dword [0x467258]
jne 0x40e945
cmp dword [ebp + 0x48], 0x1b
jne 0x40e945
push 0
push dword [0x467254]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x40df54
and dword [0x467390], 0
mov byte [ebp + 0x65], 1
jmp 0x40df54
push 0
push 0
push 6
mov ecx, 0x467ce0
call fcn.00417d99
jmp 0x40df54
cmp ecx, 0x400
jb 0x40e945
cmp ecx, 0x401
jbe 0x40e5fd
cmp ecx, 0x402
je 0x40e610
cmp ecx, 0x414
je 0x40e610
cmp ecx, 0x415
jne 0x40e945
mov eax, dword [ebp + 0x40]
test eax, eax
je 0x40e610
cmp eax, dword [0x467254]
jne 0x40e945
mov eax, ecx
xor esi, esi
xor edi, edi
sub eax, 0x401
je 0x40e7ec
dec eax
je 0x40e7c7
sub eax, 0x12
je 0x40e683
dec eax
je 0x40e679
mov eax, dword [0x466200]
movzx eax, word [eax]
cmp dword [ebp + 0x48], eax
jae 0x40df54
mov eax, dword [ebp + 0x48]
mov ecx, dword [eax*4 + 0x468428]
lea eax, [ebp + 0x34]
push eax
mov dword [ebp + 0x10], ecx
call fcn.00411a42
test eax, eax
mov dword [ebp + 0x1c], eax
je 0x40df54
mov ecx, eax
mov al, byte [ecx + 0x18]
cmp al, 1
je 0x40e672
cmp al, 3
je 0x40e672
and dword [ebp + 0x34], edi
mov eax, dword [ecx]
jmp 0x40e868
mov eax, dword [0x468140]
jmp 0x40e868
push dword [ebp + 0x40]
call fcn.004326c7
mov ebx, eax
cmp ebx, esi
pop ecx
je 0x40e945
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 0x48]
mov edx, dword [ebp + 0x4c]
mov dword [ebp + 8], eax
movzx eax, cx
shr ecx, 0x10
cmp eax, 8
mov dword [ebp + 0x5c], edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0xc], ecx
jne 0x40e6c4
mov dword [ebp + 0x5c], ecx
mov ecx, 0x2af8
mov dword [ebp + 4], edx
mov dword [ebp + 0xc], ecx
cmp ecx, dword [ebx + 0xc]
jae 0x40e6d7
mov edx, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov dword [ebp + 0x68], ecx
jmp 0x40e6da
mov dword [ebp + 0x68], esi
sub eax, 5
mov dword [ebp + 0x30], esi
mov byte [ebp + 0x64], 0
je 0x40e77e
dec eax
je 0x40e76b
dec eax
je 0x40e755
dec eax
je 0x40e742
dec eax
je 0x40e732
cmp dword [ebp + 0x68], esi
je 0x40df54
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov dword [ebp + 0x3c], ecx
jne 0x40e722
test byte [eax + 5], 1
je 0x40df54
mov ecx, ebx
call fcn.0042f256
jmp 0x40df54
test byte [eax + 5], 4
jne 0x40df54
mov byte [ebp + 0x64], 1
jmp 0x40e7a7
mov eax, dword [ebx + 0x2c]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x40df54
jmp 0x40e7a7
mov eax, dword [ebx + 0x24]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x40df54
lea eax, [ebx + 0x32]
jmp 0x40e766
mov eax, dword [ebx + 0x20]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x40df54
lea eax, [ebx + 0x31]
mov dword [ebp + 0x30], eax
jmp 0x40e7a7
mov eax, dword [ebx + 0x1c]
cmp eax, esi
mov dword [ebp + 0x3c], eax
je 0x40df54
lea eax, [ebx + 0x30]
jmp 0x40e766
mov eax, dword [ebx + 0x28]
cmp eax, esi
mov edi, dword [ebx + 0x6c]
mov dword [ebp + 0x3c], eax
je 0x40e7af
cmp edi, esi
je 0x40df54
xor esi, esi
push esi
push esi
push 0xffffffffffffffff
push edi
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
cmp eax, esi
mov dword [ebp + 0x5c], eax
je 0x40e7af
mov eax, dword [ebp + 0x3c]
jmp 0x40e868
cmp edi, esi
je 0x40df54
push edi
call dword [sym.imp.SHELL32.dll_DragFinish]
and dword [ebx + 0x6c], 0
jmp 0x40df54
push dword [ebp + 0x4c]
mov ecx, 0x467ce0
call fcn.00436d26
cmp eax, esi
mov dword [ebp + 0x2c], eax
je 0x40df54
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40df54
jmp 0x40e868
mov eax, dword [ebp + 0x48]
cmp eax, dword [0x4693e4]
jae 0x40df54
mov eax, dword [0x4693e0]
mov ecx, dword [ebp + 0x48]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov al, byte [esi + 0x20]
test al, al
mov dword [ebp + 0x28], esi
je 0x40e837
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
call fcn.0040fd3d
add esp, 0xc
test eax, eax
mov dword [ebp + 0x34], eax
je 0x40df54
mov al, byte [esi + 0x20]
cmp al, 1
je 0x40e83b
cmp al, 3
je 0x40e83b
and dword [ebp + 0x34], 0
push dword [ebp + 0x4c]
mov ecx, esi
call fcn.0040f9bb
mov eax, dword [esi + 8]
cmp byte [eax], 0
jne 0x40df54
mov eax, dword [ebp + 0x28]
cmp byte [eax + 0x2a], 0
sete cl
dec cl
and ecx, dword [ebp + 0x4c]
mov byte [0x468170], cl
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [0x4673b8]
mov ecx, dword [0x46507c]
cmp edx, ecx
mov al, byte [eax]
mov byte [ebp + 0x24], al
jl 0x40e8af
add ecx, 2
cmp edx, ecx
jge 0x40e9ee
cmp al, 0xd6
je 0x40e8af
cmp al, 0xc2
je 0x40e8af
cmp al, 0xd0
je 0x40e8af
cmp al, 0xd1
je 0x40e8af
cmp al, 0xcc
je 0x40e8af
cmp al, 0xcd
je 0x40e8af
cmp al, 0xce
je 0x40e8af
cmp al, 0xcf
jne 0x40e9ee
mov eax, dword [ebp + 0x44]
sub eax, 0x401
je 0x40e9de
dec eax
je 0x40e90d
sub eax, 0x12
je 0x40e901
dec eax
je 0x40e8ed
push dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x10]
call fcn.0041195d
test al, al
jne 0x40e8e5
push dword [ebp + 0x1c]
call fcn.0041199a
pop ecx
jmp 0x40df54
mov eax, dword [ebp + 0x1c]
jmp 0x40e9e1
cmp byte [0x46813c], 0
jne 0x40df54
xor esi, esi
jmp 0x40e9e4
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x40e8fa
cmp byte [eax], 0
jmp 0x40e8f4
mov eax, dword [ebp + 0x2c]
mov esi, dword [eax + 0x18]
mov eax, dword [ebp + 0x48]
cmp eax, 0x63
jae 0x40e9da
mov ebx, dword [eax*4 + 0x467980]
test ebx, ebx
jne 0x40e9e4
cmp dword [ebp + 0x40], ebx
je 0x40e9e4
mov eax, dword [0x467254]
cmp dword [ebp + 0x40], eax
je 0x40e9e4
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x40eeaa
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x467c9c]
jne 0x40eeaa
push 0x20
lea eax, [ebp - 0x40]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea eax, [ebp - 0x40]
push str.32770
push eax
call fcn.004579f0
test eax, eax
pop ecx
pop ecx
jne 0x40eeaa
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 1
mov eax, dword [ebp + 0x44]
mov ecx, dword [0x465108]
mov dword [ecx + 0xbc], eax
lea eax, [ebp + 0x40]
push eax
push esi
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
je 0x40ee9e
cmp dword [0x4673d8], 0
je 0x40e56b
push 0x467b80
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
jmp 0x40e56b
xor ebx, ebx
jmp 0x40e9e4
mov eax, dword [ebp + 0x28]
mov esi, dword [eax + 0x14]
mov eax, dword [0x465108]
cmp esi, dword [eax + 0x2c]
jge 0x40e9f5
test edi, edi
jmp 0x40e7b1
cmp dword [ebp + 0x44], 0x402
mov byte [ebp + 0x6f], 1
je 0x40ea52
cmp dword [ebp + 0x44], 0x413
jbe 0x40ea14
cmp dword [ebp + 0x44], 0x415
jbe 0x40ea7d
cmp dword [ebp + 0x44], 0x401
mov eax, dword [0x468130]
mov dword [0x468134], eax
mov eax, dword [0x468168]
mov dword [0x46816c], eax
jne 0x40ea3a
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x40ea40
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [0x468130], eax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [0x468168], eax
jmp 0x40ea7d
mov eax, dword [ebp + 0x2c]
mov edi, 0x105
push edi
push dword [eax]
push 0x467f24
call fcn.00439851
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + 0x14]
push edi
push dword [eax]
push 0x468029
call fcn.00439851
add esp, 0x18
mov ecx, dword [0x467b78]
xor edi, edi
push 0x80
inc edi
push edi
call fcn.00401e61
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.00439851
push dword [ebp + 0x24]
push edi
push 0
push esi
call fcn.0040dc06
mov esi, dword [0x465108]
add esp, 0x1c
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [0x4681ac], eax
mov dword [0x4681a8], eax
mov eax, dword [ebp + 0x44]
sub eax, 0x401
je 0x40ee50
dec eax
je 0x40ee2b
sub eax, 0x12
je 0x40eb6b
dec eax
je 0x40eb0e
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx + 0x12]
cmp al, 0x9c
jb 0x40eaf8
cmp al, 0x9f
ja 0x40eaf8
mov eax, dword [ebp + 0x4c]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 0x34]
push dword [ebp + 0x1c]
mov dword [esi + 0xa0], eax
call fcn.00411b37
jmp 0x40ee61
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
je 0x40eb38
mov edi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call edi
test eax, eax
jne 0x40eb33
push 0xf
call edi
test eax, eax
jne 0x40eb33
push 2
pop eax
jmp 0x40eb3a
xor eax, eax
inc eax
jmp 0x40eb3a
xor eax, eax
push 0x18
push 0
mov dword [esi + 0x38], eax
mov ecx, dword [0x467b78]
push eax
call fcn.00401c1f
mov ecx, dword [0x468140]
mov byte [0x46813c], 1
call fcn.004065a4
mov byte [0x46813c], 0
jmp 0x40ee61
mov ecx, dword [ebp + 0x20]
push 5
pop edi
cmp ecx, edi
mov byte [ebp - 0xc], 0
je 0x40ed32
jbe 0x40ecb4
cmp ecx, 8
jbe 0x40ec59
cmp ecx, 9
jne 0x40ecb4
xor ecx, ecx
xor eax, eax
cmp dword [ebp + 0x5c], eax
lea edi, [esi + 0x3c]
sete cl
cmp dword [ebp + 0x68], eax
mov dword [ebp + 0x5c], eax
lea ecx, [ecx + ecx + 1]
mov dword [esi + 0x34], ecx
mov ecx, dword [ebp + 0x54]
mov dword [edi], ecx
mov ecx, dword [ebp + 0x58]
mov dword [edi + 4], ecx
je 0x40ec4a
cmp dword [esi + 0x34], 1
jne 0x40ebd1
push edi
push dword [ebp + 0x68]
mov ecx, ebx
call fcn.0042fc15
mov eax, dword [ebp + 0x68]
movzx eax, byte [eax + 4]
sub eax, 9
je 0x40ec32
dec eax
je 0x40ec27
dec eax
jne 0x40ec4a
cmp dword [esi + 0x34], 1
jne 0x40ebf4
push 0
push 9
push 0x110a
jmp 0x40ec1a
mov eax, dword [ebp + 0x54]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x68]
push dword [eax]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [ebp - 0x1c]
push eax
push 0
push 0x1111
mov eax, dword [ebp + 0x68]
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x40ec47
push 1
push 0xffffffffffffffff
push 0x100c
jmp 0x40ec3b
push 0
push 0
push 0x19f
mov eax, dword [ebp + 0x68]
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageA]
inc eax
mov dword [ebp + 0x5c], eax
push dword [ebx]
push edi
call fcn.004395f0
pop ecx
pop ecx
jmp 0x40ed79
cmp ecx, 8
mov dword [esi + 0x34], 1
jne 0x40ed71
mov eax, dword [ebp + 4]
mov dword [esi + 0x3c], eax
mov ecx, dword [0x467b78]
push 0x18
push 0
push dword [ebp + 0x5c]
call fcn.00401c1f
mov eax, dword [ebx]
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xa0], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x44], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 0x5c]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 0x30]
test eax, eax
mov dword [esi + 0x48], edi
je 0x40ed93
mov byte [eax], 1
jmp 0x40eda0
mov eax, dword [ebp + 0x68]
mov al, byte [eax + 4]
cmp al, 0xa
je 0x40ecdf
cmp al, 0x15
jne 0x40ed2d
mov ecx, dword [ebp + 0x54]
lea eax, [esi + 0x3c]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x58]
mov dword [eax + 4], ecx
push dword [ebx]
push eax
call fcn.004395f0
pop ecx
pop ecx
mov ecx, dword [ebp + 0x20]
jmp 0x40ed2d
cmp cl, 0x49
jne 0x40ed2d
test ch, 1
lea eax, [ebp - 0xc]
je 0x40ecf2
mov byte [ebp - 0xc], 0x53
jmp 0x40ecfb
test ch, 2
je 0x40ecfe
mov byte [ebp - 0xc], 0x73
lea eax, [ebp - 0xb]
test ch, 4
je 0x40ed08
mov byte [eax], 0x46
jmp 0x40ed10
test ch, 8
je 0x40ed11
mov byte [eax], 0x66
inc eax
test ch, 0x10
je 0x40ed1b
mov byte [eax], 0x43
jmp 0x40ed23
test ch, 0x20
je 0x40ed24
mov byte [eax], 0x63
inc eax
push 0x49
pop ecx
mov byte [eax], 0
mov dword [ebp + 0x20], ecx
mov dword [esi + 0x34], ecx
jmp 0x40ed68
mov dword [esi + 0x34], edi
mov ecx, dword [ebp + 0x54]
lea eax, [esi + 0x3c]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x58]
mov dword [eax + 4], ecx
push dword [ebx]
push eax
call fcn.004395f0
pop ecx
pop ecx
push 0xffffffffffffffec
push dword [ebx]
call dword [sym.imp.USER32.dll_GetWindowLongA]
and eax, 0xffffffef
push eax
push 0xffffffffffffffec
push dword [ebx]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [ebp + 0x20]
cmp ecx, 8
je 0x40ec6f
cmp ecx, edi
je 0x40ec6f
mov ecx, dword [0x467b78]
push 1
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0xc]
push eax
call fcn.0040184e
jmp 0x40ec81
cmp byte [ebp + 0x64], 0
je 0x40eda0
mov eax, dword [ebp + 0x68]
or byte [eax + 5], 4
mov ecx, dword [ebp + 0x3c]
call fcn.004065a4
mov eax, dword [ebp + 8]
mov ebx, dword [eax*4 + 0x467980]
test ebx, ebx
je 0x40ee61
cmp edi, dword [ebx + 0xc]
jae 0x40edca
mov ecx, dword [ebx + 0x14]
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*4]
jmp 0x40edcc
xor ecx, ecx
mov eax, dword [ebp + 0x20]
sub eax, 5
mov dword [ebp + 0x68], ecx
je 0x40edff
dec eax
je 0x40edf9
dec eax
je 0x40edf3
dec eax
je 0x40eded
dec eax
je 0x40ee61
test ecx, ecx
je 0x40ee61
and byte [ecx + 5], 0xfb
jmp 0x40ee61
mov byte [ebx + 0x32], 0
jmp 0x40ee61
mov byte [ebx + 0x31], 0
jmp 0x40ee61
mov byte [ebx + 0x30], 0
jmp 0x40ee61
mov eax, dword [ebx + 0x6c]
test eax, eax
je 0x40ee11
push eax
call dword [sym.imp.SHELL32.dll_DragFinish]
and dword [ebx + 0x6c], 0
push 0xffffffffffffffec
push dword [ebx]
call dword [sym.imp.USER32.dll_GetWindowLongA]
or eax, 0x10
push eax
push 0xffffffffffffffec
push dword [ebx]
call dword [sym.imp.USER32.dll_SetWindowLongA]
jmp 0x40ee61
test ebx, ebx
je 0x40ee43
mov eax, dword [ebx]
mov dword [esi + 0xa0], eax
mov dword [esi + 0x34], edi
mov eax, dword [ebx + 8]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax + 0xc]
call fcn.004065a4
jmp 0x40ee61
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x28]
mov dword [esi + 0xa0], eax
call fcn.0040fc5f
lea eax, [ebp - 0xc0]
push eax
call fcn.0040dbd4
cmp dword [ebp + 0x7c], 0
pop ecx
je 0x40df54
push dword [ebp + 0x38]
push dword [ebp + 0x18]
push dword [ebp + 0x78]
call fcn.0040ef48
add esp, 0xc
test eax, eax
je 0x40df54
mov byte [ebp + 0x65], 1
mov byte [ebp + 0x38], 1
jmp 0x40df54
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 0
mov eax, dword [0x467264]
test eax, eax
je 0x40eecc
lea ecx, [ebp + 0x40]
push ecx
push eax
push dword [0x467254]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x40df54
mov eax, dword [0x465108]
mov byte [eax + 0xc0], 1
mov eax, dword [0x465108]
mov ecx, dword [ebp + 0x44]
mov dword [eax + 0xbc], ecx
lea eax, [ebp + 0x40]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp + 0x40]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x40e56b
cmp byte [ebp + 0x67], 0
je 0x40ef0c
mov byte [0x4673a5], 0
cmp byte [ebp + 0x66], 0
je 0x40e560
dec dword [0x4673b4]
cmp dword [ebp + 0x78], esi
jle 0x40e560
cmp dword [0x4673b4], esi
jne 0x40e560
cmp dword [0x468158], esi
jne 0x40e560
cmp dword [0x4693dc], esi
jmp 0x40e53c