Function at 0x401a30
Capabilities:
Check for foreground window switch
Check for time delay via gettickcount
Get graphical window text
Hide graphical window
Log keystrokes via polling
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x78
push 0xffffffffffffffff
push 0x4c8b9b
mov eax, dword fs:[0]
push eax
mov eax, 0x12d8
mov dword fs:[0], esp
call fcn.004c78a0
push ebx
push esi
mov esi, edx
mov byte [ebp + 0x56], 0
mov dword [ebp], esi
mov ebx, ecx
mov dword [ebp + 0x18], ebx
push edi
cmp esi, 2
jne 0x401a89
cmp byte [0x4e782f], 0
mov esi, 1
mov dword [ebp], esi
jne 0x401a89
mov byte [0x4e782f], 1
mov byte [ebp + 0x56], 1
cmp dword [0x4e9a6c], 0
je 0x401acb
cmp dword [0x4e9a5c], 0
je 0x401ab1
push dword [0x4e9a54]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x4e9a5c], 0
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x4e9a6c], 0
mov dword [0x4e9a54], 0
cmp ebx, 0x8000012f
jne 0x401ae8
mov ebx, 0xa
mov byte [ebp + 0x6f], 1
mov dword [ebp + 0x18], ebx
mov dword [ebp + 4], 0
jmp 0x401b03
cmp ebx, 5
setle byte [ebp + 0x6f]
jg 0x401afa
mov dword [ebp + 4], 0
jmp 0x401b03
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 4], eax
cmp dword [0x4e8428], 0
je 0x401b11
call fcn.00403a90
cmp dword [0x4ea06c], 0
mov edi, 1
mov byte [ebp + 0x1c], 0
je 0x401b36
call fcn.004038c0
mov ecx, dword [ebp + 0x1c]
test al, al
movzx ecx, cl
cmovne ecx, edi
mov dword [ebp + 0x1c], ecx
test ebx, ebx
jle 0x401b6f
cmp esi, 1
jne 0x401b6f
inc dword [0x4e7954]
cmp byte [0x4e782e], 0
mov byte [ebp + 0x55], 1
jne 0x401b73
push 0
push 0xa
push 9
push dword [0x4e7950]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4e782e]
jmp 0x401b73
mov byte [ebp + 0x55], 0
xor esi, esi
mov byte [ebp + 0x2f], 0
mov byte [ebp + 0x57], 0
mov dword [ebp + 0x74], esi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x401ba0
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
nop dword [eax]
call edi
cmp dword [ebp + 0x18], 0
mov ebx, eax
jle 0x401bf9
cmp byte [ebp + 0x57], 0
jne 0x401bf9
cmp byte [0x4e782f], 0
jne 0x401c06
call fcn.00404140
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0
push 0
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, 0xffffffff
je 0x401ba0
call edi
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jbe 0x401e6b
mov dword [0x4ea0c0], eax
jmp 0x401e6b
cmp byte [0x4e782f], 0
je 0x401d66
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x401d66
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4e9a38]
jne 0x401d66
cmp dword [0x4e794c], 0
je 0x401c60
push 0x20
lea eax, [ebp - 0xdc]
push eax
push esi
mov esi, dword [sym.imp.USER32.dll_GetClassNameA]
call esi
lea eax, [ebp - 0xdc]
push str.32770
push eax
call fcn.004b2360
add esp, 8
test eax, eax
je 0x401cb4
jmp 0x401c66
mov esi, dword [sym.imp.USER32.dll_GetClassNameA]
call dword [sym.imp.USER32.dll_GetFocus]
test eax, eax
je 0x401d66
push 0x20
lea ecx, [ebp - 0xdc]
push ecx
push eax
call esi
lea eax, [ebp - 0xdc]
push str.SysTreeView32
push eax
call fcn.004b218a
add esp, 8
test eax, eax
je 0x401cb4
lea eax, [ebp - 0xdc]
push str.SysListView32
push eax
call fcn.004b218a
add esp, 8
test eax, eax
jne 0x401d66
call fcn.00404140
push 0
push 0x1ff
neg eax
push 0
sbb esi, esi
lea eax, [ebp + 0x38]
push 0
and esi, 0xfffffcee
push eax
add esi, 0x311
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
lea eax, [ebp + 0x38]
jne 0x401cf2
push 1
push esi
push 0x20e
jmp 0x401dd4
mov edi, dword [ebp + 0x48]
push 0
push esi
push 0x20e
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
push 1
test eax, eax
jne 0x401d28
push 0x1ff
push eax
push eax
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x401ddd
mov eax, dword [ebp + 0x48]
sub eax, edi
test eax, eax
lea eax, [ebp + 0x38]
jle 0x401d4f
push 0x1ff
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x401ddd
push esi
push 0x20e
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x401ddd
cmp dword [0x4e4984], 0
je 0x401dbf
cmp dword [0x4e7920], 0
jne 0x401dbf
mov ecx, dword [0x4e498c]
cmp byte [ecx + 0xcc], 0
jne 0x401db6
cmp byte [ecx + 0xce], 0
jne 0x401db6
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401db6
call edi
mov ecx, dword [0x4e498c]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401db6
mov byte [ecx + 0xcc], 1
movzx ecx, byte [ecx + 0xcc]
jmp 0x401dc1
xor ecx, ecx
xor edx, edx
mov eax, 0x311
test ecx, ecx
push 1
cmovne eax, edx
push eax
push edx
lea eax, [ebp + 0x38]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x401e68
call edi
mov edx, dword [0x4ea0c0]
mov ecx, eax
sub ecx, ebx
mov ebx, dword [ebp + 0x18]
cmp ecx, 3
cmova edx, eax
mov dword [0x4ea0c0], edx
test ebx, ebx
jne 0x401e19
cmp byte [ebp + 0x2f], bl
jne 0x401e19
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp + 0x2f], 1
jmp 0x401b96
mov esi, dword [ebp + 0x74]
test esi, esi
jne 0x401e3f
cmp byte [ebp + 0x6f], 0
je 0x401e3f
test ebx, ebx
jle 0x401e32
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, 1
mov dword [ebp + 0x74], esi
jmp 0x401ba0
call edi
cmp byte [ebp + 0x6f], 0
jne 0x402536
mov ecx, dword [ebp + 4]
sub ecx, eax
add ecx, ebx
cmp ecx, 5
jle 0x402536
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x401ba0
mov esi, dword [ebp + 0x74]
inc esi
cmp dword [0x4e9a4c], 0
mov dword [ebp + 0x74], esi
je 0x401e9f
mov edx, dword [ebp + 0x3c]
lea eax, [ebp - 0xa0]
mov ecx, dword [ebp + 0x38]
push eax
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x44]
push dword [ebp + 0x40]
call fcn.00403b60
add esp, 0x10
test al, al
jne 0x401ba0
mov esi, dword [0x4e7948]
mov ecx, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x3c]
test esi, esi
je 0x402378
test ecx, ecx
je 0x402378
cmp ecx, dword [0x4e7950]
je 0x402378
cmp ebx, 0x414
je 0x402378
cmp ebx, 0x402
je 0x402378
lea eax, [ebx - 0x100]
cmp eax, 9
ja 0x4021b9
call dword [sym.imp.USER32.dll_GetFocus]
mov ebx, eax
mov dword [ebp + 0x34], ebx
test ebx, ebx
je 0x4021b0
mov ecx, ebx
call fcn.004a0540
mov esi, eax
test esi, esi
je 0x4021b0
mov ecx, ebx
call fcn.00477ac0
mov edi, eax
mov dword [ebp + 0x68], edi
test edi, edi
je 0x4021b0
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x401f44
lea eax, [ebp + 0x38]
push eax
push ecx
push esi
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov esi, dword [ebp + 0x74]
test eax, eax
jne 0x401b80
mov ebx, dword [ebp + 0x3c]
cmp ebx, 0x100
jne 0x402168
cmp byte [edi + 0xc0], 0
mov edi, dword [ebp + 0x40]
je 0x4020cf
cmp edi, 0x22
je 0x401f80
cmp edi, 0x21
je 0x401f80
cmp edi, 9
je 0x401f80
cmp edi, 0x25
je 0x401f80
cmp edi, 0x27
jne 0x4020cf
push dword [ebp + 0x34]
mov ebx, dword [ebp + 0x68]
mov ecx, ebx
call fcn.004018a0
mov edx, eax
mov dword [ebp + 0x58], edx
test edx, edx
je 0x4020bd
mov cl, byte [edx + 4]
cmp cl, 0xf
je 0x4020bd
mov edi, dword [ebp + 0x40]
xor esi, esi
cmp cl, 0x13
jne 0x401fd7
mov esi, edx
cmp edi, 0x25
je 0x401fbc
cmp edi, 0x27
jne 0x401fd7
cmp edi, 0x27
mov ecx, ebx
push 0
sete al
push 0
movzx eax, al
push eax
push edx
call fcn.00486ec0
jmp 0x401b90
cmp edi, 0x25
je 0x4020c0
cmp edi, 0x27
je 0x4020c0
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x4020bd
mov edi, dword [ebp + 0x40]
mov eax, dword [ebp + 0x58]
cmp edi, 9
jne 0x402028
cmp byte [eax + 4], 0xc
jne 0x402028
push 0xfffffffffffffff0
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 4
jne 0x4020bd
mov edi, dword [ebp + 0x40]
mov eax, dword [ebp + 0x58]
test esi, esi
jne 0x40206a
movzx eax, byte [eax + 6]
mov ecx, ebx
push eax
call fcn.00486c30
mov esi, eax
test esi, esi
jne 0x40206a
mov edx, dword [ebx + 0x10]
xor al, al
xor ecx, ecx
test edx, edx
je 0x4020c0
mov esi, dword [ebx + 0x18]
nop dword [eax]
cmp byte [esi + 4], 0x13
jne 0x40205c
test al, al
je 0x402066
add al, 1
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x402050
jmp 0x4020c0
test esi, esi
je 0x4020c0
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x4020bd
mov eax, dword [ebp + 0x40]
cmp eax, 0x22
je 0x4020a9
cmp eax, 9
jne 0x402095
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x4020a9
push 1
push 1
xor al, al
mov ecx, ebx
push eax
push esi
call fcn.00486ec0
jmp 0x401b90
push 1
push 1
mov al, 1
mov ecx, ebx
push eax
push esi
call fcn.00486ec0
jmp 0x401b90
mov edi, dword [ebp + 0x40]
mov ebx, dword [ebp + 0x3c]
cmp ebx, 0x100
jne 0x40216b
cmp edi, 0x1b
je 0x402102
cmp edi, 9
je 0x402102
cmp edi, 0x41
jne 0x40216b
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call ebx
mov esi, 0x8000
test si, ax
je 0x402165
push 0xa5
call ebx
test si, ax
jne 0x402165
push dword [ebp + 0x34]
mov esi, dword [ebp + 0x68]
mov ecx, esi
call fcn.004018a0
mov dword [ebp + 0x58], eax
test eax, eax
je 0x402165
cmp byte [eax + 4], 0xc
jne 0x402165
mov edi, dword [ebp + 0x40]
cmp edi, 0x1b
je 0x402159
cmp edi, 0x41
je 0x402145
cmp byte [eax + 5], 0
jge 0x402140
push 0x4d0378
push 1
push 0xc2
jmp 0x401b88
mov ebx, dword [ebp + 0x3c]
jmp 0x40216b
test byte [eax + 5], 2
jne 0x402140
push 0xffffffffffffffff
push 0
push 0xb1
jmp 0x401b88
mov ecx, esi
call fcn.00482360
jmp 0x401b90
mov ebx, dword [ebp + 0x3c]
mov edi, dword [ebp + 0x40]
mov eax, dword [0x4e9198]
test eax, eax
je 0x4022f8
cmp ebx, 0x100
jne 0x4022f8
cmp edi, 0xd
jne 0x402198
push 0
push 0
push 0x1116
push eax
jmp 0x401b8a
cmp edi, 0x1b
jne 0x4022f8
push 0
push 1
push 0x1116
push eax
jmp 0x401b8a
mov ebx, dword [ebp + 0x3c]
mov esi, dword [0x4e7948]
cmp ebx, 0x20a
je 0x4021d1
cmp ebx, 0x20e
je 0x4021d1
mov edi, dword [ebp + 0x40]
jmp 0x4022fe
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov esi, eax
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov ebx, dword [sym.imp.USER32.dll_GetParent]
mov edi, eax
push esi
call ebx
mov ecx, eax
call fcn.00477a90
test eax, eax
je 0x402243
cmp esi, dword [ebp + 0x38]
jne 0x40221f
push dword [ebp + 0x40]
mov edx, dword [ebp + 0x3c]
mov ecx, esi
push edi
call fcn.00401960
add esp, 8
test eax, eax
jne 0x402243
mov eax, dword [ebp + 0x38]
cmp esi, eax
je 0x402246
push dword [ebp + 0x40]
mov edx, dword [ebp + 0x3c]
mov ecx, esi
push edi
call fcn.00401960
add esp, 8
test eax, eax
je 0x402243
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
push esi
jmp 0x401b8a
mov eax, dword [ebp + 0x38]
push dword [ebp + 0x40]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov edx, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x38]
push eax
call fcn.00401960
add esp, 8
test eax, eax
jne 0x4022f2
push dword [ebp + 0x38]
call ebx
mov ecx, eax
call fcn.00477a90
mov edi, eax
mov dword [ebp + 0x68], edi
test edi, edi
je 0x4022f2
nop
push dword [ebp + 0x40]
mov edx, dword [ebp + 0x3c]
push dword [edi + 0x3c]
mov ecx, dword [edi + 4]
call fcn.00401960
add esp, 8
test eax, eax
jne 0x4022e1
push dword [edi + 4]
call ebx
mov esi, dword [0x4e7948]
xor ecx, ecx
test esi, esi
jle 0x4022c6
nop dword [eax]
mov edx, dword [0x4e7944]
mov edi, dword [edx + ecx*4]
mov dword [ebp + 0x68], edi
cmp dword [edi + 4], eax
je 0x4022d5
inc ecx
cmp ecx, esi
jl 0x4022b0
mov edi, dword [ebp + 0x40]
mov ebx, dword [ebp + 0x3c]
mov dword [ebp + 0x68], 0
jmp 0x4022fe
test edi, edi
jne 0x402280
mov edi, dword [ebp + 0x40]
mov ebx, dword [ebp + 0x3c]
jmp 0x4022fe
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
push dword [edi + 4]
jmp 0x401b8a
mov ebx, dword [ebp + 0x3c]
mov edi, dword [ebp + 0x40]
mov esi, dword [0x4e7948]
xor ecx, ecx
mov dword [ebp + 0x34], ecx
test esi, esi
jle 0x4023ba
nop dword [eax + eax]
mov eax, dword [0x4e7944]
lea edx, [eax + ecx*4]
mov eax, dword [edx]
cmp dword [eax + 0x10], 0
jne 0x402328
cmp ebx, 0x106
je 0x40236d
mov ecx, dword [0x4e498c]
mov byte [ecx + 0xc8], 1
mov eax, dword [ebp + 0x3c]
mov dword [ecx + 0xc4], eax
lea eax, [ebp + 0x38]
push eax
mov eax, dword [edx]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x4024a9
mov eax, dword [0x4e498c]
mov esi, dword [0x4e7948]
mov ecx, dword [ebp + 0x34]
mov byte [eax + 0xc8], 0
mov ebx, dword [ebp + 0x3c]
inc ecx
mov dword [ebp + 0x34], ecx
cmp ecx, esi
jl 0x402310
mov ecx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x40]
cmp ebx, 0x401
ja 0x4025cd
cmp ebx, 0x400
jae case.0x4025e3.1045
cmp ebx, 0x100
ja 0x4023f2
je 0x4023d2
cmp ebx, 0x12
je 0x4023bf
cmp ebx, 0x4b
jne case.0x4025e3.1027
mov dword [0x4e7930], 0
mov byte [ebp + 0x57], 1
jmp 0x401b90
mov ecx, dword [ebp + 0x38]
jmp 0x40237b
push 0
push 4
mov ecx, 0x4e9a70
call fcn.0042bef0
jmp 0x401b90
cmp ecx, dword [0x4e792c]
jne case.0x4025e3.1027
cmp edi, 0x1b
jne case.0x4025e3.1027
push 0
push dword [0x4e7950]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x401b90
cmp ebx, 0x113
je 0x4024ba
cmp ebx, 0x312
je case.0x4025e3.1026
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x40374b
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4e9a38]
jne 0x40374b
push 0x20
lea eax, [ebp - 0xdc]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea eax, [ebp - 0xdc]
push str.32770
push eax
call fcn.004b2360
add esp, 8
test eax, eax
jne 0x40374b
mov ecx, dword [0x4e498c]
mov byte [ecx + 0xc8], 1
mov eax, dword [ebp + 0x3c]
mov dword [ecx + 0xc4], eax
lea eax, [ebp + 0x38]
push eax
push esi
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
je 0x40373c
cmp dword [0x4e794c], 0
je 0x4024a9
mov eax, dword [0x4e6378]
mov ecx, 0x4d0335
test eax, eax
je 0x4024a2
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [0x4e498c]
mov byte [eax + 0xc8], 0
jmp 0x401b90
cmp dword [ebp + 0x44], 0
jne case.0x4025e3.1027
cmp ecx, dword [0x4e7950]
jne case.0x4025e3.1027
cmp dword [0x4e8428], 0
je 0x4024de
call fcn.00403a90
cmp dword [0x4ea06c], 0
je 0x4024ff
call fcn.004038c0
mov edx, dword [ebp + 0x1c]
test al, al
movzx ecx, dl
mov eax, 1
cmovne ecx, eax
mov byte [ebp + 0x1c], cl
cmp dword [ebp], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
je 0x401ba0
mov ebx, dword [ebp + 0x18]
cmp ebx, 1
jl 0x401ba0
call edi
cmp byte [ebp + 0x6f], 0
jne 0x402536
mov ecx, dword [ebp + 4]
sub ecx, eax
add ecx, ebx
cmp ecx, 5
jg 0x401b96
cmp ebx, 0xffffffff
jle 0x40254b
xorps xmm0, xmm0
mov dword [0x4ea0c0], eax
movlpd qword [0x4ea0b0], xmm0
xor ecx, ecx
mov dword [0x4ea0c4], eax
cmp byte [ebp + 0x56], cl
movzx eax, byte [0x4e782f]
cmovne eax, ecx
mov byte [0x4e782f], al
cmp byte [ebp + 0x55], cl
je 0x4025b6
mov eax, dword [0x4e7954]
dec eax
mov dword [0x4e7954], eax
test ebx, ebx
jle 0x4025b6
test eax, eax
jne 0x4025b6
cmp dword [0x4ea06c], ecx
jne 0x4025b6
cmp dword [0x4e8428], ecx
jne 0x4025b6
cmp byte [0x4e782e], cl
je 0x4025b6
push 9
push dword [0x4e7950]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4e782e]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4e782e], cl
mov edx, dword [ebp + 0x1c]
mov al, dl
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
lea esp, [ebp + 0x78]
pop ebp
ret
lea eax, [ebx - 0x402]
cmp eax, 0x1c
ja case.0x4025e3.1027
movzx eax, byte [eax + 0x4037c4]
jmp dword [eax*4 + 0x4037b8]
test ecx, ecx
je case.0x4025e3.1026
cmp ecx, dword [0x4e7950]
jne case.0x4025e3.1027
lea eax, [ebx - 0x401]
mov dword [ebp + 0x14], 0
cmp eax, 0x1d
ja case.0x402617.1027
movzx eax, byte [eax + 0x403800]
jmp dword [eax*4 + 0x4037e4]
call fcn.00477a90
mov esi, eax
mov dword [ebp + 0x68], esi
test esi, esi
je case.0x4025e3.1027
movzx edx, di
mov ecx, 0x2af8
shr edi, 0x10
cmp edx, 8
mov eax, edi
mov dword [ebp + 0x28], edx
cmove eax, ecx
mov dword [ebp + 0x30], 0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x44]
cmovne eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0x14]
mov edx, eax
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x28]
cmp eax, 8
mov dword [ebp + 0x34], edx
cmovne edi, dword [ebp + 0x44]
cmp ecx, dword [esi + 0x10]
jae 0x402679
shl ecx, 6
add ecx, dword [esi + 0x18]
jmp 0x40267b
xor ecx, ecx
add eax, 0xfffffffb
mov dword [ebp + 0x58], ecx
mov dword [ebp + 0xc], 0
mov byte [ebp + 0x67], 0
cmp eax, 4
ja case.default.0x402695
jmp dword [eax*4 + 0x403820]
mov esi, dword [esi + 0x2c]
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x70], edi
test esi, esi
je 0x401b90
mov eax, 0x3a
jmp 0x4026ee
mov esi, dword [esi + 0x24]
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x70], edi
mov dword [ebp + 0x60], eax
test esi, esi
je 0x401b90
mov eax, 0x38
jmp 0x4026ee
mov esi, dword [esi + 0x28]
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x70], edi
mov dword [ebp + 0x60], eax
test esi, esi
je 0x401b90
mov eax, 0x39
add eax, dword [ebp + 0x68]
mov dword [ebp + 0x70], edi
mov dword [ebp + 0xc], eax
je 0x4027f2
cmp byte [eax], 0
mov dword [ebp + 0x70], edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x60], edx
mov dword [ebp + 0xc], eax
jne 0x401b96
xor edi, edi
mov dword [ebp + 0x60], edx
jmp 0x402b12
mov esi, dword [esi + 0x34]
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x70], edi
mov dword [ebp + 0x60], eax
test esi, esi
je 0x401b90
mov dword [ebp + 0x70], edi
xor edi, edi
mov dword [ebp + 0x60], edx
jmp 0x402b12
mov ebx, dword [esi + 0x68]
mov esi, dword [esi + 0x30]
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x70], edi
test esi, esi
je 0x402781
mov dword [ebp + 0x70], edi
test ebx, ebx
je 0x402796
push 0
push 0
push 0xffffffffffffffff
push ebx
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov dword [ebp + 0x70], eax
test eax, eax
je 0x402781
mov edx, dword [ebp + 0x34]
xor edi, edi
mov ebx, dword [ebp + 0x3c]
mov dword [ebp + 0x60], edx
jmp 0x402b12
test ebx, ebx
je 0x402796
push ebx
call dword [sym.imp.SHELL32.dll_DragFinish]
mov ecx, dword [ebp + 0x68]
mov dword [ecx + 0x68], 0
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x60], eax
jmp 0x401b90
mov eax, dword [ebp + 0x60]
mov esi, dword [ebp + 0x74]
mov dword [ebp + 0x70], edi
mov dword [ebp + 0x60], eax
test ecx, ecx
je 0x401b80
mov esi, dword [ecx + 0xc]
mov dword [ebp + 0x5c], esi
test esi, esi
jne 0x4027db
test byte [ecx + 5], 1
je 0x4027d0
mov ecx, dword [ebp + 0x68]
call fcn.00482300
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x70], edi
mov dword [ebp + 0x60], edx
jmp 0x401b90
test byte [ecx + 5], 4
mov dword [ebp + 0x70], edi
mov dword [ebp + 0x60], edx
jne 0x401b90
mov byte [ebp + 0x67], 1
mov dword [ebp + 0x70], edi
xor edi, edi
mov dword [ebp + 0x60], edx
jmp 0x402b12
test edi, edi
je 0x402823
mov ecx, edi
call fcn.00477a90
mov dword [ebp + 0x68], eax
test eax, eax
jne 0x40282a
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x40282a
cmp eax, dword [0x4e7950]
jne case.0x4025e3.1027
jmp 0x40282a
mov dword [ebp + 0x68], 0
push dword [ebp + 0x44]
mov ecx, 0x4e9a70
call fcn.00401930
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x401ba0
mov esi, dword [eax + 8]
test esi, esi
je 0x401b96
mov edi, dword [eax + 0x18]
jmp 0x402b0f
mov esi, dword [ebp + 0x74]
cmp edi, dword [0x4e8424]
jae 0x401b80
mov eax, dword [0x4e8420]
mov esi, dword [eax + edi*4]
mov dword [ebp - 0x10], esi
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4028a5
mov edx, dword [esi + 4]
call fcn.00412b90
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x20], eax
test eax, eax
je 0x401b96
mov eax, dword [esi + 0x10]
mov al, byte [eax]
cmp al, 1
je 0x4028ac
cmp al, 3
je 0x4028ac
mov dword [ebp + 0x20], 0
push dword [ebp + 0x44]
mov ecx, esi
call fcn.004156b0
cmp dword [esi + 0xc], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x401b96
movzx eax, byte [ebp + 0x44]
xor ecx, ecx
cmp byte [esi + 0x2a], cl
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp + 0x3c]
cmovne ecx, eax
mov byte [0x4ea084], cl
mov edi, dword [edi + 0x14]
jmp 0x402b0d
cmp byte [0x4ea058], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
jne 0x401ba0
mov esi, dword [0x4ea04c]
test esi, esi
cmove esi, dword [0x4e9e00]
xor edi, edi
jmp 0x402b0f
mov ecx, edi
call fcn.0044bbf0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov dword [ebp + 0x24], esi
test esi, esi
je 0x401b96
mov esi, dword [esi + 8]
xor edi, edi
mov ebx, dword [ebp + 0x3c]
mov esi, dword [esi + 0x35c]
jmp 0x402b0f
mov esi, dword [0x4e7940]
mov dword [ebp + 0x24], esi
test esi, esi
je 0x401b90
cmp esi, edi
je 0x402963
mov esi, dword [esi + 4]
mov dword [ebp + 0x24], esi
test esi, esi
jne 0x402950
jmp 0x401b90
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
test esi, esi
je 0x401b96
mov esi, dword [esi + 8]
cmp ebx, 0x41c
jne 0x402984
mov esi, dword [esi + 0x360]
jmp 0x40299a
cmp ebx, 0x41e
jne 0x402994
mov esi, dword [esi + 0x368]
jmp 0x40299a
mov esi, dword [esi + 0x364]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x5c], esi
test esi, esi
je 0x401b96
xor edi, edi
jmp 0x402b12
mov esi, dword [ebp + 0x74]
mov eax, edi
and eax, 0x7fff
cmp ax, word [0x4e843c]
jae 0x401b80
mov ecx, eax
shr edi, 0x10
mov eax, dword [0x4e842c]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x18], edx
test di, di
je 0x402a05
mov esi, dword [edx + 0x20]
add edi, 0xffff
mov dword [ebp + 8], esi
test di, di
je 0x402a01
nop
mov esi, dword [esi + 8]
add edi, 0xffff
test di, di
jne 0x4029f0
mov dword [ebp + 8], esi
test esi, esi
jne 0x402a42
cmp ebx, 0x400
jne 0x402a1c
mov eax, dword [ebp + 0x44]
mov ecx, 0xffc3d44d
shr eax, 0x10
sub ecx, eax
jmp 0x402a1e
xor ecx, ecx
push 0
push ecx
lea eax, [ebp + 0x20]
mov ecx, edx
push eax
call fcn.00413530
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov dword [ebp + 8], esi
test esi, esi
je 0x401b96
mov ebx, dword [ebp + 0x3c]
mov eax, dword [0x50b874]
mov edx, dword [esi]
test al, 1
jne 0x402a65
or dword [0x50b874], 1
mov ecx, 0x50b878
push 0
push 0
call fcn.0042a360
mov ebx, dword [ebp + 0x3c]
mov eax, dword [0x4e9e00]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x402a74
xor eax, eax
jmp 0x402a80
xor eax, eax
cmp ecx, dword [0x50b878]
setne al
inc eax
sub eax, 0
je 0x402a8a
sub eax, 1
jne 0x402a95
mov eax, dword [edx + 8]
test eax, eax
je 0x402a95
mov cl, byte [eax]
jmp 0x402a97
xor cl, cl
mov al, byte [esi + 0x16]
cmp al, byte [esi + 0x17]
jb 0x402ae1
cmp cl, 0xe2
je 0x402ae1
cmp cl, 0xce
je 0x402ae1
cmp cl, 0xdc
je 0x402ae1
cmp cl, 0xdd
je 0x402ae1
cmp cl, 0xd8
je 0x402ae1
cmp cl, 0xd9
je 0x402ae1
cmp cl, 0xda
je 0x402ae1
cmp cl, 0xdb
je 0x402ae1
cmp byte [esi + 0x1a], 0
je 0x402ad1
mov byte [esi + 0x1b], 1
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [esi + 0xc], eax
jmp 0x401b96
mov eax, dword [esi + 4]
test eax, eax
je 0x402b00
mov al, byte [eax]
cmp al, 2
je 0x402b00
cmp al, 4
je 0x402b00
cmp al, 5
jb 0x402b07
mov eax, dword [0x4e793c]
mov dword [ebp + 0x20], eax
jmp 0x402b07
mov dword [ebp + 0x20], 0
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x10]
mov esi, dword [esi]
mov dword [ebp + 0x5c], esi
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [0x50b874]
mov dword [ebp + 0x34], ecx
mov dword [ebp - 0x38], ecx
test al, 1
jne 0x402b42
or dword [0x50b874], 1
mov ecx, 0x50b878
push 0
push 0
call fcn.0042a360
mov ebx, dword [ebp + 0x3c]
mov eax, dword [0x4e9e00]
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x402b51
xor eax, eax
jmp 0x402b5d
xor eax, eax
cmp ecx, dword [0x50b878]
setne al
inc eax
sub eax, 0
je 0x402b67
sub eax, 1
jne 0x402b72
mov eax, dword [esi + 8]
test eax, eax
je 0x402b72
mov cl, byte [eax]
jmp 0x402b74
xor cl, cl
mov edx, dword [0x4e7938]
mov eax, dword [0x4e4988]
mov byte [ebp - 0x1c], cl
cmp edx, eax
jl 0x402bf6
add eax, 2
cmp edx, eax
jge 0x402bb5
cmp cl, 0xe2
je 0x402bf6
cmp cl, 0xce
je 0x402bf6
cmp cl, 0xdc
je 0x402bf6
cmp cl, 0xdd
je 0x402bf6
cmp cl, 0xd8
je 0x402bf6
cmp cl, 0xd9
je 0x402bf6
cmp cl, 0xda
je 0x402bf6
cmp cl, 0xdb
je 0x402bf6
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x402bd0
push eax
call dword [sym.imp.SHELL32.dll_DragFinish]
mov eax, dword [ebp + 0x68]
mov dword [eax + 0x68], 0
mov ebx, dword [ebp + 0x3c]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
cmp ebx, 0x41b
jne 0x401ba0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x401b90
mov eax, dword [0x4e498c]
cmp edi, dword [eax + 0x2c]
jge 0x402c41
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x402c1b
push eax
call dword [sym.imp.SHELL32.dll_DragFinish]
mov eax, dword [ebp + 0x68]
mov dword [eax + 0x68], 0
mov ebx, dword [ebp + 0x3c]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
cmp ebx, 0x41b
jne 0x401ba0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x401b90
lea eax, [ebx - 0x402]
mov byte [ebp + 0x1c], 1
cmp eax, 0x1c
ja case.0x402c57.1027
movzx eax, byte [eax + 0x403840]
jmp dword [eax*4 + 0x403834]
mov ebx, dword [ebp - 0x30]
push 0x104
push dword [ebx]
push 0x4e9e08
call fcn.004b9880
mov byte [0x4e9f0c], 0
mov eax, dword [ebx + 0x10]
push 0x104
push dword [eax]
push 0x4e9f0d
call fcn.004b9880
add esp, 0x18
mov byte [0x4ea011], 0
mov dword [0x4e9e04], ebx
jmp case.0x402c57.1044
mov eax, dword [0x4ea014]
mov dword [0x4ea018], eax
mov eax, dword [0x4ea07c]
mov dword [0x4ea080], eax
cmp ebx, 0x401
jne 0x402cc3
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
jmp 0x402cc9
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x1c]
mov dword [0x4ea014], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4ea07c], eax
mov ecx, dword [0x4e7934]
push 0
push 1
call fcn.00401680
push 0x7f
push eax
lea eax, [ebp - 0x22c]
push eax
call fcn.004b9880
push dword [ebp - 0x1c]
xor dl, dl
mov byte [ebp - 0x1ad], 0
push 1
mov ecx, edi
call fcn.00403f50
mov ebx, dword [0x4e498c]
add esp, 0x14
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [0x4ea0c4], eax
mov dword [0x4ea0c0], eax
mov eax, dword [ebp + 0x3c]
add eax, 0xfffffbff
cmp eax, 0x1d
ja case.0x402d3f.1027
movzx eax, byte [eax + 0x403880]
jmp dword [eax*4 + 0x403860]
cmp byte [ebp + 0x67], 0
mov edx, dword [ebp + 0x58]
mov esi, dword [ebp + 0x68]
mov byte [ebp - 0x2c], 0
je 0x402d5a
mov eax, dword [edx]
jmp 0x402d5d
mov eax, dword [esi + 4]
mov edi, dword [ebp + 0x30]
lea ecx, [ebp - 0x9c]
inc dword [ebp + 0x30]
shl edi, 4
add ecx, edi
push eax
call fcn.004045c0
mov ecx, dword [ebp + 0x28]
lea eax, [ecx - 5]
cmp eax, 4
ja case.default.0x402d83
jmp dword [eax*4 + 0x4038a0]
xor ecx, ecx
lea esi, [ebx + 0x3c]
cmp dword [ebp + 0x70], ecx
mov dword [ebp + 0x70], 0
sete cl
lea ecx, [ecx*2 + 1]
mov dword [ebx + 0x34], ecx
mov eax, dword [ebp + 0x4c]
mov dword [esi], eax
mov eax, dword [ebp + 0x50]
mov dword [esi + 4], eax
test edx, edx
je 0x402e56
cmp dword [ebp - 0x34], 0
je 0x402dcc
push esi
push edx
call fcn.004878c0
mov ecx, dword [ebx + 0x34]
mov edx, dword [ebp + 0x58]
movzx eax, byte [edx + 4]
sub eax, 9
je 0x402e41
sub eax, 1
je 0x402e36
sub eax, 1
jne 0x402e56
cmp ecx, 1
jne 0x402dfa
push eax
push 9
push 0x110a
push dword [edx]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x402e53
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xbc]
push eax
push dword [edx]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [ebp - 0xbc]
push eax
mov eax, dword [ebp + 0x58]
push 0
push 0x1111
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x402e53
push 1
push 0xffffffffffffffff
push 0x100c
jmp 0x402e4a
push 0
push 0
push 0x19f
push dword [edx]
call dword [sym.imp.USER32.dll_SendMessageA]
inc eax
mov dword [ebp + 0x70], eax
lea eax, [ebp - 0x11c]
push eax
mov eax, dword [ebp + 0x68]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x11c]
sub dword [esi], eax
mov eax, dword [ebp - 0x118]
sub dword [esi + 4], eax
mov eax, dword [ebp + 0x58]
test eax, eax
je 0x402e92
push dword [eax]
lea ecx, [ebp - 0x8c]
add ecx, edi
call fcn.004045c0
jmp 0x402ea8
mov dword [ebp + edi - 0x84], 0
mov dword [ebp + edi - 0x8c], 0x4d0335
mov edi, dword [ebp - 0x38]
lea ecx, [ebp - 0x9c]
push dword [ebp + 0x70]
lea edx, [edi + 2]
shl edx, 4
add ecx, edx
call fcn.004045c0
xor eax, eax
lea ecx, [ebp - 0x8c]
add ecx, edx
cmp dword [ebx + 0x34], 3
sete al
push eax
call fcn.004045a0
push dword [ebx + 0x3c]
lea esi, [edi + 4]
shl esi, 4
lea ecx, [ebp - 0x9c]
add ecx, esi
call fcn.004045a0
push dword [ebx + 0x40]
lea ecx, [ebp - 0x8c]
add ecx, esi
call fcn.004045a0
lea edx, [edi + 6]
mov dword [ebp + 0x30], edx
jmp 0x40315a
mov dword [ebx + 0x34], ecx
mov eax, dword [ebp + 0x4c]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp + 0x50]
mov dword [ebx + 0x40], eax
lea eax, [ebp - 0xec]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xec]
sub dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0xe8]
sub dword [ebx + 0x40], eax
push 0xffffffffffffffec
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetWindowLongA]
and eax, 0xffffffef
push eax
push 0xffffffffffffffec
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [ebp + 0x14]
call fcn.00479ea0
mov dword [ebp + edi - 0x8c], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp + edi - 0x84], 6
test eax, eax
je 0x402f83
push dword [eax]
lea ecx, [ebp - 0x7c]
add ecx, edi
call fcn.004045c0
jmp 0x402f93
mov dword [ebp + edi - 0x74], 0
mov dword [ebp + edi - 0x7c], 0x4d0335
mov edi, dword [ebp + 0x34]
lea esi, [ebp - 0x9c]
push dword [ebx + 0x3c]
mov ecx, dword [ebp + 0x68]
add edi, 3
shl edi, 4
add esi, edi
call fcn.00401900
push eax
mov ecx, esi
call fcn.004045a0
push dword [ebx + 0x40]
lea esi, [ebp - 0x8c]
add esi, edi
mov edi, dword [ebp + 0x68]
mov ecx, edi
call fcn.00401900
push eax
mov ecx, esi
call fcn.004045a0
mov edx, dword [ebp + 0x34]
add edx, 5
mov dword [ebp + 0x30], edx
jmp 0x40315d
mov dword [ebx + 0x34], 1
cmp ecx, 8
jne 0x403157
mov ecx, dword [ebp + 0x60]
lea esi, [ebp - 0x7c]
mov eax, dword [ebp + 0x70]
add esi, edi
mov dword [ebx + 0x3c], ecx
mov dword [ebp + edi - 0x8c], eax
movzx eax, cx
mov ecx, dword [ebp + 0x68]
push eax
mov dword [ebp + edi - 0x84], 1
mov dword [ebp + edi - 0x88], 0
call fcn.00401900
push eax
mov ecx, esi
call fcn.004045a0
mov edi, dword [ebp + 0x34]
lea esi, [ebp - 0x6c]
mov ecx, dword [ebp + 0x68]
mov eax, edi
shl eax, 4
add esi, eax
mov eax, dword [ebp + 0x60]
shr eax, 0x10
push eax
call fcn.00401900
push eax
mov ecx, esi
call fcn.004045a0
lea edx, [edi + 4]
mov dword [ebp + 0x30], edx
jmp 0x40315a
mov al, byte [edx + 4]
cmp al, 0xa
je 0x4030a2
cmp al, 0x19
jne 0x403104
mov eax, dword [ebp + 0x4c]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp + 0x50]
mov dword [ebx + 0x40], eax
lea eax, [ebp - 0xfc]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xfc]
sub dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0xf8]
sub dword [ebx + 0x40], eax
mov ecx, dword [ebp + 0x28]
jmp 0x403104
cmp cl, 0x49
jne 0x403104
lea eax, [ebp - 0x2c]
test ecx, 0x100
je 0x4030b8
mov byte [ebp - 0x2c], 0x53
jmp 0x4030c4
test ecx, 0x200
je 0x4030c7
mov byte [ebp - 0x2c], 0x73
lea eax, [ebp - 0x2b]
test ecx, 0x400
je 0x4030d4
mov byte [eax], 0x46
jmp 0x4030df
test ecx, 0x800
je 0x4030e0
mov byte [eax], 0x66
inc eax
test ecx, 0x1000
je 0x4030ed
mov byte [eax], 0x43
jmp 0x4030f8
test ecx, 0x2000
je 0x4030f9
mov byte [eax], 0x63
inc eax
mov ecx, 0x49
mov byte [eax], 0
mov dword [ebp + 0x28], ecx
mov dword [ebx + 0x34], ecx
cmp ecx, 5
jae 0x403115
mov eax, dword [ecx*4 + 0x4dbcc8]
jmp 0x403120
mov byte [0x50b580], cl
mov eax, 0x50b580
mov edx, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x70]
add edx, 3
mov dword [ebp + edi - 0x84], 0
mov dword [ebp + edi - 0x8c], eax
mov dword [ebp + edi - 0x74], 1
mov dword [ebp + edi - 0x7c], ecx
mov dword [ebp + edi - 0x78], 0
mov edi, dword [ebp + 0x68]
mov dword [ebp + 0x30], edx
jmp 0x403160
mov edx, dword [ebp + 0x30]
mov edi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
cmp byte [ebp + 0x67], 0
je 0x40336b
mov esi, dword [ebp + 0x58]
cmp byte [esi + 4], 0x17
jne 0x40336b
push 0x10b0
lea eax, [ebp - 0x12dc]
push 0
push eax
call fcn.004afdf0
mov eax, dword [ebp + 0x70]
add esp, 0xc
dec eax
mov dword [ebp - 0x12e4], 0xd
mov dword [ebp - 0x12e0], eax
lea eax, [ebp - 0x12e4]
push eax
push 0
push 0x703
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x403280
sub esp, 8
lea ecx, [ebp - 0x12d4]
cmp word [ebp - 0x1274], 0
lea eax, [ebp - 0x1274]
cmove eax, ecx
lea ecx, [ebp - 0xac]
push 0xffffffffffffffff
push eax
call fcn.00404540
mov dword [ebp - 4], 0
mov ecx, 0x4d0335
mov eax, dword [eax + 4]
test eax, eax
je 0x403201
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push 1
push 0
push 0xffffffffffffffff
push ecx
mov ecx, dword [0x4e7934]
call fcn.0049e6b0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0xa8]
mov dword [ebp - 0xac], vtable.CKuStringT_char__class_CKuStringUtilA_.0
test esi, esi
je 0x403254
mov eax, dword [esi + 0x10]
add eax, 0xffffffff
mov dword [esi + 0x10], eax
jne 0x403254
mov eax, dword [esi + 4]
test eax, eax
je 0x403249
push eax
call fcn.004b2343
add esp, 4
push 0x14
push esi
call fcn.004ae4c5
add esp, 8
mov ecx, dword [ebp + 0x30]
lea esi, [ebp - 0x9c]
mov eax, ecx
inc ecx
push 0
shl eax, 4
mov dword [ebp + 0x30], ecx
add esi, eax
mov ecx, dword [0x4e7934]
push 1
call fcn.00401680
mov dword [esi + 8], 0
mov dword [esi], eax
mov esi, dword [ebp + 0x28]
mov eax, dword [edi + 4]
mov dword [ebx + 0xa4], eax
add dword [edi + 0x20], 2
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp + 0x70]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x44], edi
test eax, eax
je 0x4033c6
mov byte [eax], 1
mov ebx, dword [ebp + 0x58]
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 0x30]
lea eax, [ebp - 0x9c]
push eax
push 0x4d0340
lea ecx, [ebp + 0x5c]
call fcn.0048d950
cmp dword [edi + 4], 0
je 0x403304
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4033dc
mov byte [eax], 0
cmp esi, 6
jne 0x4033e6
cmp dword [ebp - 0x3c], 0
jne 0x403304
lea ecx, [ebp + 0x5c]
call fcn.004017d0
test eax, eax
jne 0x403304
mov ecx, edi
call fcn.00482300
mov ecx, edi
call fcn.00479cc0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [ebp - 0x22c]
call fcn.00404060
cmp dword [ebp], 0
mov esi, dword [ebp + 0x74]
je 0x401ba0
call edi
cmp byte [ebp + 0x6f], 0
mov edx, dword [ebp + 0x18]
jne 0x403344
mov ecx, dword [ebp + 4]
sub ecx, eax
add ecx, edx
cmp ecx, 5
jg 0x401ba0
cmp edx, 0xffffffff
jle 0x403359
xorps xmm0, xmm0
mov dword [0x4ea0c0], eax
movlpd qword [0x4ea0b0], xmm0
mov dword [0x4ea0c4], eax
mov byte [ebp + 0x57], 1
mov byte [ebp + 0x6f], 1
jmp 0x401b96
cmp byte [ebp - 0x2c], 0
je 0x40338e
mov eax, edx
add eax, eax
inc edx
mov dword [ebp + 0x30], edx
lea edx, [ebp - 0x2c]
mov dword [ebp + eax*8 - 0x94], 0
mov dword [ebp + eax*8 - 0x9c], edx
mov esi, dword [ebp + 0x28]
cmp esi, 8
je 0x4033b5
cmp esi, 5
je 0x4033b5
mov ecx, dword [0x4e7934]
lea eax, [ebp - 0x2c]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.0049e6b0
jmp 0x403283
push ecx
mov ecx, dword [0x4e7934]
call fcn.00401660
jmp 0x403283
cmp byte [ebp + 0x67], 0
je 0x4032b0
mov ebx, dword [ebp + 0x58]
or byte [ebx + 5], 4
jmp 0x4032b3
cmp byte [ebp + 0x67], 0
je 0x4033e6
and byte [ebx + 5], 0xfb
cmp esi, 5
jne 0x403304
mov eax, dword [ebp - 0x8c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [ebp + 0x14]
call dword [sym.imp.SHELL32.dll_DragFinish]
push 0xffffffffffffffec
push dword [edi + 4]
mov dword [edi + 0x68], 0
call dword [sym.imp.USER32.dll_GetWindowLongA]
or eax, 0x10
push eax
push 0xffffffffffffffec
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetWindowLongA]
jmp 0x403304
mov edi, dword [ebp + 0x68]
test edi, edi
je 0x40344b
mov eax, dword [edi + 4]
mov dword [ebx + 0xa4], eax
mov dword [ebx + 0x34], 1
add dword [edi + 0x20], 2
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x44], edi
mov ecx, 0x4e9a70
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x17c], 0x4e9e08
call fcn.0045c6a0
inc eax
lea ecx, [ebp - 0x16c]
push 0
push eax
call fcn.00404490
push 0
push 3
lea eax, [ebp - 0x17c]
mov dword [ebp - 0x154], 0
push eax
push str.Menu
lea ecx, [ebp + 0x5c]
mov dword [ebp - 0x15c], 0x4e9f0d
call fcn.0048d950
test edi, edi
je 0x40330b
jmp 0x403304
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0xa4], eax
mov al, byte [esi + 0x21]
mov byte [ebx + 0xd6], al
mov eax, dword [0x50b874]
mov edx, dword [esi]
test al, 1
jne 0x4034e7
push 0
or eax, 1
mov ecx, 0x50b878
push 0
mov dword [0x50b874], eax
call fcn.0042a360
mov eax, dword [0x4e9e00]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x4034f6
xor eax, eax
jmp 0x403502
xor eax, eax
cmp ecx, dword [0x50b878]
setne al
inc eax
sub eax, 0
je 0x40350c
sub eax, 1
jne 0x403517
mov eax, dword [edx + 8]
test eax, eax
je 0x403517
mov cl, byte [eax]
jmp 0x403519
xor cl, cl
mov al, byte [esi + 0x24]
cmp al, byte [esi + 0x25]
jb 0x40354d
cmp cl, 0xe2
je 0x40354d
cmp cl, 0xce
je 0x40354d
cmp cl, 0xdc
je 0x40354d
cmp cl, 0xdd
je 0x40354d
cmp cl, 0xd8
je 0x40354d
cmp cl, 0xd9
je 0x40354d
cmp cl, 0xda
je 0x40354d
cmp cl, 0xdb
jne 0x403311
push 0
push 0
mov byte [0x4ea085], 0
mov ecx, esi
inc byte [esi + 0x24]
push 0
push dword [0x4ea014]
call fcn.0048d950
dec byte [esi + 0x24]
jmp 0x403311
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
je 0x4035a0
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x403599
push 0xf
call esi
test eax, eax
jne 0x403599
mov eax, 2
jmp 0x4035a2
mov eax, 1
jmp 0x4035a2
xor eax, eax
mov ecx, dword [0x4e7934]
push eax
mov dword [ebx + 0x38], eax
call fcn.00401660
push 0
push dword [ebx + 0x38]
lea ecx, [ebp - 0x14c]
call fcn.00404490
push str.OnClipboardChange
mov byte [0x4ea058], 1
call fcn.0040b9f0
mov ecx, dword [0x4ea04c]
test ecx, ecx
je 0x4035e7
call fcn.00401740
mov ecx, dword [0x4ea04c]
cmp dword [ebp + 0x40], 0
jne 0x403608
xor eax, eax
test ecx, ecx
mov ecx, 0x4ea02c
sete al
push eax
push 1
lea eax, [ebp - 0x14c]
push eax
call fcn.0048dad0
sub dword [0x4e6314], 0xc
mov byte [0x4ea058], 0
jmp 0x403311
mov ebx, dword [ebp + 0x24]
lea ecx, [ebp + 0x5c]
push 0
push 1
mov dword [ebp - 0x104], 6
mov eax, dword [ebx + 8]
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0x10c]
push eax
push str.InputHook
call fcn.0048d950
mov eax, dword [ebx + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x403311
mov eax, dword [ebp + 0x24]
lea ecx, [ebp - 0x19c]
mov ebx, dword [ebp + 0x44]
mov dword [ebp - 0x1a4], 6
mov eax, dword [eax + 8]
mov dword [ebp - 0x1ac], eax
movzx eax, bl
cdq
push edx
push eax
call fcn.00404490
sar ebx, 0x10
lea ecx, [ebp - 0x18c]
movzx eax, bx
cdq
push edx
push eax
call fcn.00404490
push 0
push 3
lea eax, [ebp - 0x1ac]
push eax
push str.InputHook
lea ecx, [ebp + 0x5c]
call fcn.0048d950
jmp 0x403311
mov eax, dword [ebp + 0x44]
lea ecx, [ebp + 0x5c]
mov byte [ebp + 0x10], al
sar eax, 0x10
mov byte [ebp + 0x11], al
mov eax, dword [ebp + 0x24]
push 0
push 2
mov byte [ebp + 0x12], 0
mov eax, dword [eax + 8]
mov dword [ebp - 0x13c], eax
lea eax, [ebp + 0x10]
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x13c]
push eax
push str.InputHook
mov dword [ebp - 0x134], 6
mov dword [ebp - 0x124], 0
call fcn.0048d950
jmp 0x403311
mov edx, dword [ebp - 0x18]
mov al, byte [edx + 0x10]
add al, 0x64
cmp al, 3
ja 0x40371a
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x38], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0xa4], eax
push ecx
mov al, byte [ecx + 0x18]
mov ecx, edx
mov byte [ebx + 0xd6], al
call fcn.00413860
jmp 0x403311
mov ecx, dword [0x4e498c]
mov byte [ecx + 0xc8], 0
jmp 0x403751
mov ecx, dword [0x4e498c]
mov eax, dword [0x4e7928]
test eax, eax
je 0x403782
lea ecx, [ebp + 0x38]
push ecx
push eax
push dword [0x4e7950]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
test eax, eax
jne 0x401ba0
mov ecx, dword [0x4e498c]
mov byte [ecx + 0xc8], 1
mov eax, dword [ebp + 0x3c]
mov dword [ecx + 0xc4], eax
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov eax, dword [0x4e498c]
mov byte [eax + 0xc8], 0
jmp 0x401b90