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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x13c
push ebx
xor ebx, ebx
cmp dword [ebp + 0x7c], 2
push esi
push edi
mov byte [ebp + 0x63], bl
jne 0x40da10
cmp byte [0x45db1d], bl
mov dword [ebp + 0x7c], 1
jne 0x40da10
mov byte [0x45db1d], 1
mov byte [ebp + 0x63], 1
cmp dword [0x460068], ebx
je 0x40da24
xor edi, edi
mov esi, 0x460050
call fcn.0043c45d
cmp dword [ebp + 0x78], 0x8000012f
jne 0x40da3a
mov dword [ebp + 0x78], 0xa
mov byte [ebp + 0x28], 1
jmp 0x40da48
cmp dword [ebp + 0x78], 5
setle byte [ebp + 0x28]
cmp byte [ebp + 0x28], 0
je 0x40da4d
mov dword [ebp + 0x10], ebx
jmp 0x40da56
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x10], eax
cmp dword [0x45f3f4], ebx
je 0x40da63
call fcn.0040eadd
cmp dword [0x45ffd0], ebx
mov byte [ebp + 0x6f], 0
je 0x40da7c
call fcn.0040d857
test al, al
je 0x40da7c
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x78], ebx
jle 0x40dc4d
cmp dword [ebp + 0x7c], 1
jne 0x40dc4d
inc dword [0x45db2c]
cmp byte [0x45db17], 0
mov byte [ebp + 0x62], 1
jne 0x40dabd
push ebx
push 0xa
push 9
push dword [0x45d9cc]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne al
mov byte [0x45db17], al
mov byte [ebp + 0x5f], 0
mov byte [ebp + 0x61], 0
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
xor ebx, ebx
cmp dword [ebp + 0x78], ebx
mov dword [ebp + 0x38], eax
jle 0x40dc56
cmp byte [ebp + 0x61], bl
jne 0x40dc56
cmp byte [0x45db1d], bl
jne 0x40dc63
call fcn.0040d980
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push ebx
push ebx
lea eax, [ebp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, 0xffffffff
je 0x40dac5
call esi
mov ecx, eax
sub ecx, dword [ebp + 0x38]
cmp ecx, 3
jbe 0x40db26
mov dword [0x460020], eax
cmp dword [0x45e2dc], ebx
je 0x40db52
lea eax, [ebp]
push eax
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
call fcn.0040d4c0
add esp, 0x18
test al, al
jne 0x40dac5
cmp dword [0x45fabc], ebx
je 0x40dfd4
mov eax, dword [ebp + 0x3c]
cmp eax, ebx
je 0x40dfd4
cmp eax, dword [0x45d9cc]
je 0x40dfd4
cmp dword [ebp + 0x40], 0x414
je 0x40dfd4
cmp dword [ebp + 0x40], 0x402
je 0x40dfd4
cmp dword [ebp + 0x40], 0x100
jne 0x40df77
mov eax, dword [ebp + 0x44]
cmp eax, 0x22
je 0x40dbbc
cmp eax, 0x21
je 0x40dbbc
cmp eax, 9
je 0x40dbbc
cmp eax, 0x25
je 0x40dbbc
cmp eax, 0x27
jne 0x40dea6
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
cmp esi, ebx
je 0x40dea4
call fcn.0043aa96
cmp eax, ebx
je 0x40dea4
push eax
call fcn.004319c6
mov edi, eax
cmp edi, ebx
pop ecx
mov dword [ebp + 0x68], edi
je 0x40dea4
cmp byte [edi + 0x54], 0
je 0x40dea4
push 0
push esi
mov ebx, edi
call fcn.0043196b
mov esi, eax
test esi, esi
mov dword [ebp + 0x64], esi
je 0x40dea4
mov al, byte [esi + 4]
cmp al, 0xf
je 0x40dea4
xor ebx, ebx
cmp al, 0x13
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x38], ebx
jne 0x40de22
cmp eax, 0x25
mov dword [ebp + 0x38], esi
je 0x40dc3a
cmp eax, 0x27
jne 0x40de22
push ebx
cmp eax, 0x27
push ebx
sete al
push edi
call fcn.004351aa
jmp 0x40dac5
mov byte [ebp + 0x62], 0
jmp 0x40dabd
cmp byte [0x45db1d], 0
je 0x40dda2
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
cmp esi, ebx
je 0x40dda2
push ebx
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x45fb18]
jne 0x40dda2
cmp dword [0x45db50], ebx
je 0x40dcb7
push 0x20
lea eax, [ebp - 0x48]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea eax, [ebp - 0x48]
push str.32770
push eax
call sub.MSVCR71.dll_strcmp
neg eax
sbb al, al
pop ecx
inc al
pop ecx
mov byte [ebp + 7], al
jne 0x40dcfe
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, ebx
je 0x40dda2
push 0x20
lea ecx, [ebp - 0x48]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClassNameA]
mov esi, dword [sym.imp.MSVCR71.dll__stricmp]
lea eax, [ebp - 0x48]
push str.SysTreeView32
push eax
call esi
test eax, eax
pop ecx
pop ecx
je 0x40dcfe
lea eax, [ebp - 0x48]
push str.SysListView32
push eax
call esi
test eax, eax
pop ecx
pop ecx
jne 0x40dda2
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
push ebx
push 0x1ff
push ebx
push ebx
lea eax, [ebp + 0x3c]
push eax
call esi
test eax, eax
jne 0x40dd3d
push 1
call fcn.0040d980
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0x20e
push ebx
lea eax, [ebp + 0x3c]
push eax
call esi
jmp 0x40ddc4
mov eax, dword [ebp + 0x4c]
push 0
mov dword [ebp], eax
call fcn.0040d980
neg eax
sbb eax, eax
mov edi, 0xfffffcef
and eax, edi
mov ebx, 0x311
add eax, ebx
push eax
push 0x20e
push 0
lea eax, [ebp + 0x3c]
push eax
call esi
test eax, eax
push 1
je 0x40dd7a
mov eax, dword [ebp + 0x4c]
sub eax, dword [ebp]
test eax, eax
jle 0x40dd8d
push 0x1ff
push 0
push 0
lea eax, [ebp + 0x3c]
push eax
call esi
xor ebx, ebx
jmp 0x40ddc4
call fcn.0040d980
neg eax
sbb eax, eax
and eax, edi
add eax, ebx
push eax
push 0x20e
jmp 0x40dd81
push 1
call fcn.0040d980
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push ebx
push ebx
lea eax, [ebp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
cmp eax, ebx
jne 0x40db26
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [ebp + 0x38]
cmp ecx, 3
jbe 0x40dde1
mov dword [0x460020], eax
cmp dword [ebp + 0x78], ebx
jne 0x40ddfc
cmp byte [ebp + 0x5f], 0
jne 0x40ddfc
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp + 0x5f], 1
jmp 0x40dac5
push dword [ebp + 0x28]
push dword [ebp + 0x10]
push dword [ebp + 0x78]
call fcn.0040ea9c
add esp, 0xc
test eax, eax
jne 0x40e077
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40dac5
cmp eax, 0x25
je 0x40dea4
cmp eax, 0x27
je 0x40dea4
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x40dea4
cmp dword [ebp + 0x44], 9
jne 0x40de52
cmp byte [esi + 4], 0xc
jne 0x40de52
push 0xfffffffffffffff0
push dword [esi]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 4
jne 0x40dea4
cmp dword [ebp + 0x38], ebx
jne 0x40de7a
xor eax, eax
mov al, byte [esi + 6]
push eax
mov eax, edi
call fcn.00431f65
cmp eax, ebx
mov dword [ebp + 0x38], eax
jne 0x40de7a
push ebx
mov eax, edi
call fcn.00431f65
cmp eax, ebx
mov dword [ebp + 0x38], eax
je 0x40dea4
cmp dword [ebp + 0x44], 0x22
je 0x40de96
cmp dword [ebp + 0x44], 9
jne 0x40de92
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x40de96
xor al, al
jmp 0x40de98
mov al, 1
mov esi, dword [ebp + 0x38]
push 1
push 1
jmp 0x40dc42
xor ebx, ebx
cmp dword [ebp + 0x44], 0x1b
je 0x40dece
cmp dword [ebp + 0x44], 9
je 0x40dece
cmp dword [ebp + 0x44], 0x41
jne 0x40df53
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x40df51
xor ebx, ebx
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
cmp esi, ebx
je 0x40df51
call fcn.0043aa96
test eax, eax
je 0x40df51
push eax
call fcn.004319c6
test eax, eax
pop ecx
mov dword [ebp + 0x68], eax
je 0x40df51
push 0
push esi
mov ebx, eax
call fcn.0043196b
test eax, eax
mov dword [ebp + 0x64], eax
je 0x40df51
cmp byte [eax + 4], 0xc
jne 0x40df51
cmp dword [ebp + 0x44], 0x1b
je 0x40df44
cmp dword [ebp + 0x44], 0x41
je 0x40df28
test byte [eax + 5], 0x80
je 0x40df51
push 0x452804
push 1
push 0xc2
jmp 0x40df37
test byte [eax + 5], 2
jne 0x40df51
push 0xffffffffffffffff
push 0
push 0xb1
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x40dac5
mov eax, dword [ebp + 0x68]
call fcn.00431707
jmp 0x40dac5
xor ebx, ebx
mov eax, dword [0x45fac0]
cmp eax, ebx
je 0x40df77
cmp dword [ebp + 0x44], 0xd
jne 0x40df66
push ebx
push ebx
jmp 0x40df6f
cmp dword [ebp + 0x44], 0x1b
jne 0x40df77
push ebx
push 1
push 0x1116
push eax
jmp 0x40df39
mov ecx, dword [0x45b170]
xor edi, edi
mov esi, 0x45e0f8
mov eax, dword [esi]
cmp eax, ebx
je 0x40dfc9
cmp dword [eax], ebx
je 0x40dfc0
mov byte [ecx + 0xc0], 1
mov eax, dword [ebp + 0x40]
mov dword [ecx + 0xbc], eax
lea eax, [ebp + 0x3c]
push eax
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x40e0da
mov ecx, dword [0x45b170]
mov byte [ecx + 0xc0], al
inc edi
cmp dword [0x45fabc], edi
je 0x40dfd4
add esi, 4
cmp esi, 0x45e284
jl 0x40df84
mov ecx, dword [ebp + 0x40]
mov eax, 0x312
cmp ecx, eax
ja 0x40e138
je 0x40e17b
mov eax, ecx
sub eax, 0x12
je 0x40e125
sub eax, 0x39
je 0x40e116
sub eax, 0xb5
je 0x40e0eb
sub eax, 0x13
jne 0x40e4d3
cmp dword [ebp + 0x48], ebx
jne 0x40e4d3
mov eax, dword [0x45d9cc]
cmp dword [ebp + 0x3c], eax
jne 0x40e4d3
cmp dword [0x45f3f4], ebx
je 0x40e036
call fcn.0040eadd
cmp dword [0x45ffd0], ebx
je 0x40e04b
call fcn.0040d857
test al, al
je 0x40e04b
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x7c], ebx
je 0x40dac5
cmp dword [ebp + 0x78], 1
jl 0x40dac5
push dword [ebp + 0x28]
push dword [ebp + 0x10]
push dword [ebp + 0x78]
call fcn.0040ea9c
add esp, 0xc
test eax, eax
je 0x40dac5
cmp byte [ebp + 0x63], 0
je 0x40e084
mov byte [0x45db1d], 0
cmp byte [ebp + 0x62], 0
je 0x40e0cf
dec dword [0x45db2c]
cmp dword [ebp + 0x78], ebx
jle 0x40e0cf
cmp dword [0x45db2c], ebx
jne 0x40e0cf
cmp dword [0x45ffd0], ebx
jne 0x40e0cf
cmp dword [0x45f3f4], ebx
jne 0x40e0cf
cmp byte [0x45db17], 0
je 0x40e0cf
push 9
push dword [0x45d9cc]
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x40e0cf
mov byte [0x45db17], 0
mov al, byte [ebp + 0x6f]
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret
mov eax, dword [0x45b170]
mov byte [eax + 0xc0], 0
jmp 0x40dac5
mov eax, dword [ebp + 0x3c]
cmp eax, dword [0x45d9d0]
jne 0x40e4d3
cmp dword [ebp + 0x44], 0x1b
jne 0x40e4d3
push ebx
push dword [0x45d9cc]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x40dac5
mov dword [0x45db08], ebx
mov byte [ebp + 0x61], 1
jmp 0x40dac5
push ebx
push ebx
push 6
mov ecx, 0x45fb58
call fcn.0041741a
jmp 0x40dac5
cmp ecx, 0x400
jb 0x40e4d3
cmp ecx, 0x401
jbe 0x40e168
cmp ecx, 0x402
je 0x40e17b
cmp ecx, 0x414
je 0x40e17b
cmp ecx, 0x415
jne 0x40e4d3
mov eax, dword [ebp + 0x3c]
cmp eax, ebx
je 0x40e17b
cmp eax, dword [0x45d9cc]
jne 0x40e4d3
mov eax, dword [ebp + 0x40]
xor edi, edi
sub eax, 0x401
je 0x40e36b
dec eax
je 0x40e343
sub eax, 0x12
je 0x40e1ec
dec eax
je 0x40e1e2
mov eax, dword [0x460234]
movzx eax, word [eax]
cmp dword [ebp + 0x44], eax
jae 0x40dac5
mov eax, dword [ebp + 0x44]
mov eax, dword [eax*4 + 0x45e440]
lea ecx, [ebp + 0x2c]
mov dword [ebp + 0xc], eax
call fcn.00411500
cmp eax, ebx
mov dword [ebp + 0x14], eax
je 0x40dac5
mov ecx, eax
mov al, byte [ecx + 0x18]
cmp al, 1
je 0x40e1db
cmp al, 3
je 0x40e1db
mov dword [ebp + 0x2c], ebx
mov eax, dword [ecx]
jmp 0x40e3ef
mov eax, dword [0x45ffb8]
jmp 0x40e3ef
push dword [ebp + 0x3c]
call fcn.004319c6
cmp eax, ebx
pop ecx
mov dword [ebp + 0x68], eax
je 0x40e4d3
mov ecx, dword [eax + 8]
mov esi, dword [ebp + 0x48]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp + 0x44]
movzx edx, cx
shr ecx, 0x10
cmp edx, 8
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x20], edx
mov dword [ebp + 8], ecx
jne 0x40e230
mov dword [ebp + 8], 0x2af8
mov dword [ebp + 0x58], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 8], esi
cmp ecx, dword [eax + 0xc]
jae 0x40e243
mov esi, dword [eax + 0x14]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*4]
mov dword [ebp + 0x64], ecx
jmp 0x40e246
mov dword [ebp + 0x64], ebx
mov ecx, edx
sub ecx, 5
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0x60], 0
je 0x40e2fa
dec ecx
je 0x40e2e4
dec ecx
je 0x40e2cb
dec ecx
je 0x40e2b5
dec ecx
je 0x40e2a5
cmp dword [ebp + 0x64], ebx
je 0x40dac5
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax + 0xc]
cmp ecx, ebx
mov dword [ebp + 0x30], ecx
jne 0x40e295
test byte [eax + 5], 1
je 0x40dac5
mov eax, dword [ebp + 0x68]
call fcn.0042e5c3
jmp 0x40dac5
test byte [eax + 5], 4
jne 0x40dac5
mov byte [ebp + 0x60], 1
jmp 0x40e321
mov eax, dword [eax + 0x2c]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x40dac5
jmp 0x40e321
mov eax, dword [eax + 0x24]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x40dac5
mov eax, dword [ebp + 0x68]
add eax, 0x32
jmp 0x40e2df
mov eax, dword [eax + 0x20]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x40dac5
mov eax, dword [ebp + 0x68]
add eax, 0x31
mov dword [ebp + 0x1c], eax
jmp 0x40e321
mov eax, dword [eax + 0x1c]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x40dac5
mov eax, dword [ebp + 0x68]
add eax, 0x30
jmp 0x40e2df
mov edi, dword [eax + 0x6c]
mov eax, dword [eax + 0x28]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x40e329
cmp edi, ebx
je 0x40dac5
push ebx
push ebx
push 0xffffffffffffffff
push edi
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
cmp eax, ebx
mov dword [ebp + 0x58], eax
je 0x40e329
mov eax, dword [ebp + 0x30]
jmp 0x40e3ef
cmp edi, ebx
je 0x40dac5
push edi
call dword [sym.imp.SHELL32.dll_DragFinish]
mov eax, dword [ebp + 0x68]
mov dword [eax + 0x6c], ebx
jmp 0x40dac5
push dword [ebp + 0x48]
mov eax, 0x45fb58
call fcn.00435fdf
cmp eax, ebx
mov dword [ebp + 0x18], eax
je 0x40dac5
mov eax, dword [eax + 0xc]
cmp eax, ebx
je 0x40dac5
jmp 0x40e3ef
mov eax, dword [ebp + 0x44]
cmp eax, dword [0x45f3fc]
jae 0x40dac5
mov eax, dword [0x45f3f8]
mov ecx, dword [ebp + 0x44]
mov ebx, dword [eax + ecx*4]
xor eax, eax
mov al, byte [ebx + 0x20]
test al, al
mov dword [ebp + 0x34], ebx
je 0x40e467
push dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push eax
call fcn.0040f869
test eax, eax
pop ecx
pop ecx
mov dword [ebp + 0x2c], eax
je 0x40dac5
mov eax, ebx
mov al, byte [eax + 0x20]
cmp al, 1
je 0x40e3bf
cmp al, 3
je 0x40e3bf
and dword [ebp + 0x2c], 0
mov ebx, dword [ebp + 0x34]
push dword [ebp + 0x48]
call fcn.0040f4ec
mov eax, dword [ebx + 8]
cmp byte [eax], 0
jne 0x40dac5
mov eax, dword [ebp + 0x34]
cmp byte [eax + 0x2a], 0
sete cl
dec cl
and ecx, dword [ebp + 0x48]
xor ebx, ebx
mov byte [0x45ffe8], cl
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [0x45db30]
mov ecx, dword [0x45b0e4]
cmp edx, ecx
mov al, byte [eax]
mov byte [ebp + 0x24], al
jl 0x40e436
add ecx, 2
cmp edx, ecx
jge 0x40e329
cmp al, 0xd6
je 0x40e436
cmp al, 0xc2
je 0x40e436
cmp al, 0xd0
je 0x40e436
cmp al, 0xd1
je 0x40e436
cmp al, 0xcc
je 0x40e436
cmp al, 0xcd
je 0x40e436
cmp al, 0xce
je 0x40e436
cmp al, 0xcf
jne 0x40e329
mov eax, dword [ebp + 0x40]
sub eax, 0x401
je 0x40e568
dec eax
je 0x40e498
sub eax, 0x12
je 0x40e48c
dec eax
je 0x40e478
mov esi, dword [ebp + 0x14]
mov eax, esi
call fcn.0041142c
test al, al
jne 0x40e470
call fcn.00411462
jmp 0x40dac5
and dword [ebp + 0x2c], 0
jmp 0x40e3c2
mov eax, dword [ebp + 0x14]
jmp 0x40e56b
cmp byte [0x45ffb4], 0
jne 0x40dac5
xor ebx, ebx
jmp 0x40e56e
mov eax, dword [ebp + 0x1c]
cmp eax, ebx
je 0x40e485
cmp byte [eax], 0
jmp 0x40e47f
mov eax, dword [ebp + 0x18]
mov ebx, dword [eax + 0x18]
mov eax, dword [ebp + 0x44]
cmp eax, 0x63
jae 0x40e562
mov eax, dword [eax*4 + 0x45e0f8]
test eax, eax
mov dword [ebp + 0x68], eax
jne 0x40e56e
cmp dword [ebp + 0x3c], eax
je 0x40e56e
mov eax, dword [0x45d9cc]
cmp dword [ebp + 0x3c], eax
je 0x40e56e
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x40ea4c
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x45fb18]
jne 0x40ea4c
push 0x20
lea eax, [ebp - 0x48]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea eax, [ebp - 0x48]
push str.32770
push eax
call sub.MSVCR71.dll_strcmp
test eax, eax
pop ecx
pop ecx
jne 0x40ea4c
mov eax, dword [0x45b170]
mov byte [eax + 0xc0], 1
mov ecx, dword [ebp + 0x40]
mov dword [eax + 0xbc], ecx
lea eax, [ebp + 0x3c]
push eax
push esi
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
je 0x40ea40
cmp dword [0x45db50], 0
je 0x40e0da
push 0x45e2f8
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
jmp 0x40e0da
and dword [ebp + 0x68], 0
jmp 0x40e56e
mov eax, dword [ebp + 0x34]
mov ebx, dword [eax + 0x14]
mov eax, dword [0x45b170]
cmp ebx, dword [eax + 0x2c]
jge 0x40e593
test edi, edi
je 0x40dac5
push edi
call dword [sym.imp.SHELL32.dll_DragFinish]
mov eax, dword [ebp + 0x68]
and dword [eax + 0x6c], 0
jmp 0x40dac5
mov eax, dword [ebp + 0x40]
cmp eax, 0x402
mov byte [ebp + 0x6f], 1
je 0x40e5ef
cmp eax, 0x413
jbe 0x40e5af
cmp eax, 0x415
jbe 0x40e61b
cmp eax, 0x401
mov ecx, dword [0x45ffa8]
mov dword [0x45ffac], ecx
mov ecx, dword [0x45ffe0]
mov dword [0x45ffe4], ecx
jne 0x40e5d7
mov eax, dword [ebp + 0x34]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x40e5dd
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [0x45ffa8], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x45ffe0], eax
jmp 0x40e61b
mov eax, dword [ebp + 0x18]
push dword [eax]
mov esi, 0x105
mov eax, esi
mov edi, 0x45fd9c
call fcn.00438a10
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x14]
pop ecx
push dword [eax]
mov eax, esi
mov edi, 0x45fea1
call fcn.00438a10
pop ecx
mov ecx, dword [0x45e2f0]
xor esi, esi
inc esi
push esi
call fcn.00401c0d
push eax
mov eax, 0x80
lea edi, [ebp - 0xc8]
call fcn.00438a10
pop ecx
push dword [ebp + 0x24]
push esi
push 0
push ebx
call fcn.0040d771
mov edi, dword [0x45b170]
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x460024], eax
mov dword [0x460020], eax
mov eax, dword [ebp + 0x40]
sub eax, 0x401
je 0x40e9f2
dec eax
je 0x40e9ca
sub eax, 0x12
je 0x40e709
dec eax
je 0x40e6af
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0x12]
cmp al, 0x9c
jb 0x40e696
cmp al, 0x9f
ja 0x40e696
mov eax, dword [ebp + 0x48]
mov dword [edi + 0x38], eax
mov eax, dword [ebp + 0x2c]
push dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
mov dword [edi + 0xa0], eax
call fcn.004115c1
jmp 0x40ea03
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
je 0x40e6d7
mov ebx, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push esi
call ebx
test eax, eax
jne 0x40e6d3
push 0xf
call ebx
test eax, eax
jne 0x40e6d3
push 2
pop eax
jmp 0x40e6d9
mov eax, esi
jmp 0x40e6d9
xor eax, eax
push 0x18
push 0
mov dword [edi + 0x38], eax
push eax
mov eax, dword [0x45e2f0]
call fcn.004019da
mov ecx, dword [0x45ffb8]
mov byte [0x45ffb4], 1
call fcn.004062b9
mov byte [0x45ffb4], 0
jmp 0x40ea03
mov ebx, dword [ebp + 0x20]
cmp ebx, 5
mov byte [ebp - 0x18], 0
je 0x40e8bb
jbe 0x40e83e
cmp ebx, 8
jbe 0x40e7e5
cmp ebx, 9
jne 0x40e83e
mov ebx, dword [ebp + 0x64]
xor eax, eax
cmp dword [ebp + 0x58], eax
sete al
and dword [ebp + 0x58], 0
test ebx, ebx
lea eax, [eax + eax + 1]
mov dword [edi + 0x34], eax
mov eax, dword [ebp + 0x50]
mov dword [edi + 0x3c], eax
mov eax, dword [ebp + 0x54]
mov dword [edi + 0x40], eax
je 0x40e7d2
cmp dword [edi + 0x34], esi
jne 0x40e767
lea eax, [edi + 0x3c]
push eax
mov eax, ebx
call fcn.0042ef72
movzx eax, byte [ebx + 4]
sub eax, 9
je 0x40e7bd
dec eax
je 0x40e7b3
dec eax
jne 0x40e7d2
cmp dword [edi + 0x34], esi
jne 0x40e786
push 0
push 9
push 0x110a
jmp 0x40e7a9
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x54]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [ebp - 0x28]
push eax
push 0
push 0x1111
push dword [ebx]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x40e7cf
push esi
push 0xffffffffffffffff
push 0x100c
jmp 0x40e7c6
push 0
push 0
push 0x19f
push dword [ebx]
call dword [sym.imp.USER32.dll_SendMessageA]
inc eax
mov dword [ebp + 0x58], eax
mov ebx, dword [ebp + 0x68]
push dword [ebx]
lea esi, [edi + 0x3c]
call fcn.004387aa
pop ecx
jmp 0x40e90b
cmp ebx, 8
mov dword [edi + 0x34], esi
jne 0x40e8ff
mov eax, dword [ebp - 8]
mov dword [edi + 0x3c], eax
mov eax, dword [0x45e2f0]
push 0x18
push 0
push dword [ebp + 0x58]
call fcn.004019da
mov ebx, dword [ebp + 0x68]
mov eax, dword [ebx]
mov dword [edi + 0xa0], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0x44], eax
mov eax, dword [ebx + 8]
mov ebx, dword [ebp + 8]
mov dword [edi + 0x4c], eax
mov eax, dword [ebp + 0x58]
mov dword [edi + 0x38], eax
mov eax, dword [ebp + 0x1c]
test eax, eax
mov dword [edi + 0x48], ebx
je 0x40e925
mov byte [eax], 1
jmp 0x40e932
mov eax, dword [ebp + 0x64]
mov al, byte [eax + 4]
cmp al, 0xa
je 0x40e867
cmp al, 0x15
jne 0x40e8b6
mov eax, dword [ebp + 0x50]
lea esi, [edi + 0x3c]
mov dword [esi], eax
mov eax, dword [ebp + 0x54]
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x68]
push dword [eax]
call fcn.004387aa
pop ecx
jmp 0x40e8b6
push 0x49
pop ecx
cmp bl, cl
jne 0x40e8b6
test bh, 1
lea eax, [ebp - 0x18]
je 0x40e87c
mov byte [ebp - 0x18], 0x53
jmp 0x40e885
test bh, 2
je 0x40e888
mov byte [ebp - 0x18], 0x73
lea eax, [ebp - 0x17]
test bh, 4
je 0x40e892
mov byte [eax], 0x46
jmp 0x40e89a
test bh, 8
je 0x40e89b
mov byte [eax], 0x66
inc eax
test bh, 0x10
je 0x40e8a5
mov byte [eax], 0x43
jmp 0x40e8ad
test bh, 0x20
je 0x40e8ae
mov byte [eax], 0x63
inc eax
mov byte [eax], 0
mov dword [ebp + 0x20], ecx
mov ebx, ecx
mov dword [edi + 0x34], ebx
jmp 0x40e8f6
mov ebx, dword [ebp + 0x68]
mov dword [edi + 0x34], 5
mov eax, dword [ebp + 0x50]
lea esi, [edi + 0x3c]
mov dword [esi], eax
mov eax, dword [ebp + 0x54]
mov dword [esi + 4], eax
push dword [ebx]
call fcn.004387aa
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 ebx, dword [ebp + 0x20]
cmp ebx, 8
je 0x40e7f7
cmp ebx, 5
je 0x40e7f7
mov ebx, dword [ebp + 0x68]
mov ecx, dword [0x45e2f0]
push 1
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0x18]
push eax
call fcn.0040161c
jmp 0x40e80b
cmp byte [ebp + 0x60], 0
je 0x40e932
mov eax, dword [ebp + 0x64]
or byte [eax + 5], 4
mov ecx, dword [ebp + 0x30]
call fcn.004062b9
mov eax, dword [ebp - 4]
mov esi, dword [eax*4 + 0x45e0f8]
xor edi, edi
cmp esi, edi
mov dword [ebp + 0x68], esi
je 0x40ea03
cmp ebx, dword [esi + 0xc]
jae 0x40e964
mov ecx, dword [esi + 0x14]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*4]
mov dword [ebp + 0x64], eax
jmp 0x40e967
mov dword [ebp + 0x64], edi
mov eax, dword [ebp + 0x20]
sub eax, 5
je 0x40e99f
dec eax
je 0x40e999
dec eax
je 0x40e993
dec eax
je 0x40e98d
dec eax
je 0x40ea03
cmp dword [ebp + 0x64], edi
je 0x40ea03
mov eax, dword [ebp + 0x64]
and byte [eax + 5], 0xfb
jmp 0x40ea03
mov byte [esi + 0x32], 0
jmp 0x40ea03
mov byte [esi + 0x31], 0
jmp 0x40ea03
mov byte [esi + 0x30], 0
jmp 0x40ea03
mov eax, dword [esi + 0x6c]
cmp eax, edi
je 0x40e9b0
push eax
call dword [sym.imp.SHELL32.dll_DragFinish]
mov dword [esi + 0x6c], edi
push 0xffffffffffffffec
push dword [esi]
call dword [sym.imp.USER32.dll_GetWindowLongA]
or eax, 0x10
push eax
push 0xffffffffffffffec
push dword [esi]
call dword [sym.imp.USER32.dll_SetWindowLongA]
jmp 0x40ea03
mov eax, dword [ebp + 0x68]
test eax, eax
je 0x40e9e5
mov ecx, dword [eax]
mov dword [edi + 0xa0], ecx
mov dword [edi + 0x34], esi
mov eax, dword [eax + 8]
mov dword [edi + 0x4c], eax
mov dword [edi + 0x44], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0xc]
call fcn.004062b9
jmp 0x40ea03
mov eax, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x34]
mov dword [edi + 0xa0], eax
call fcn.0040f790
lea eax, [ebp - 0xc8]
push eax
call fcn.0040d73f
cmp dword [ebp + 0x7c], 0
pop ecx
je 0x40dac5
push dword [ebp + 0x28]
push dword [ebp + 0x10]
push dword [ebp + 0x78]
call fcn.0040ea9c
add esp, 0xc
test eax, eax
je 0x40dac5
mov byte [ebp + 0x61], 1
mov byte [ebp + 0x28], 1
jmp 0x40dac5
mov eax, dword [0x45b170]
mov byte [eax + 0xc0], 0
mov eax, dword [0x45d9dc]
test eax, eax
je 0x40ea6e
lea ecx, [ebp + 0x3c]
push ecx
push eax
push dword [0x45d9cc]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x40dac5
mov eax, dword [0x45b170]
mov byte [eax + 0xc0], 1
mov ecx, dword [ebp + 0x40]
mov dword [eax + 0xbc], ecx
lea eax, [ebp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x40e0da