Function at 0x401730
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 0x4ce8e5
mov eax, dword fs:[0]
push eax
mov eax, 0x12c8
mov dword fs:[0], esp
call fcn.004cd3a0
push ebx
push esi
push edi
mov edi, edx
mov byte [ebp + 0x3a], 0
mov dword [ebp + 8], edi
mov esi, ecx
mov dword [ebp + 0x74], esi
cmp edi, 2
jne 0x401789
cmp byte [0x4eb61b], 0
mov edi, 1
mov dword [ebp + 8], edi
jne 0x401789
mov byte [0x4eb61b], 1
mov byte [ebp + 0x3a], 1
cmp dword [0x4ed82c], 0
je 0x4017cb
cmp dword [0x4ed81c], 0
je 0x4017b1
push dword [0x4ed814]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x4ed81c], 0
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x4ed82c], 0
mov dword [0x4ed814], 0
cmp esi, 0x8000012f
jne 0x4017e8
mov esi, 0xa
mov byte [ebp + 0x6b], 1
mov dword [ebp + 0x74], esi
mov dword [ebp + 0xc], 0
jmp 0x401803
cmp esi, 5
setle byte [ebp + 0x6b]
jg 0x4017fa
mov dword [ebp + 0xc], 0
jmp 0x401803
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0xc], eax
cmp dword [0x4ec1ec], 0
je 0x401811
call fcn.00403b30
xor bl, bl
cmp dword [0x4ede2c], 0
mov dword [ebp + 0x24], ebx
je 0x401834
call fcn.00403890
test al, al
movzx ebx, bl
mov eax, 1
cmovne ebx, eax
mov dword [ebp + 0x24], ebx
test esi, esi
jle 0x40186d
cmp edi, 1
jne 0x40186d
inc dword [0x4eb740]
cmp byte [0x4eb61a], 0
mov byte [ebp + 0x39], 1
jne 0x401871
push 0
push 0xa
push 9
push dword [0x4eb73c]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4eb61a]
jmp 0x401871
mov byte [ebp + 0x39], 0
mov byte [ebp + 0x38], 0
lea esi, [ebp - 0x98]
mov byte [ebp + 0x3b], 0
mov edi, 6
mov dword [ebp + 0x14], 0
nop dword [eax + eax]
mov ecx, esi
call fcn.004046a0
add esi, 0x10
sub edi, 1
jne 0x401890
jmp 0x4018ad
mov edi, dword [ebp + 0x74]
jmp 0x4018b6
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov ebx, eax
test edi, edi
jle 0x401a39
cmp byte [ebp + 0x3b], 0
jne 0x401a39
cmp byte [0x4eb61b], 0
jne 0x401a46
cmp dword [0x4e88c4], 0
je 0x401932
cmp dword [0x4eb624], 0
jne 0x401932
mov ecx, dword [0x4e88cc]
cmp byte [ecx + 0xcc], 0
jne 0x401929
cmp byte [ecx + 0xce], 0
jne 0x401929
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401929
call esi
mov ecx, dword [0x4e88cc]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401929
mov byte [ecx + 0xcc], 1
movzx ecx, byte [ecx + 0xcc]
jmp 0x401934
xor ecx, ecx
xor edx, edx
mov eax, 0x311
test ecx, ecx
cmovne eax, edx
push eax
push edx
push edx
lea eax, [ebp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, 0xffffffff
je 0x4018b6
call esi
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jbe 0x401966
mov dword [0x4ede78], eax
inc dword [ebp + 0x14]
cmp dword [0x4ed80c], 0
je 0x401999
mov edx, dword [ebp + 0x40]
lea eax, [ebp - 0x9c]
mov ecx, dword [ebp + 0x3c]
push eax
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x48]
push dword [ebp + 0x44]
call fcn.00403c00
add esp, 0x10
test al, al
jne 0x4018b6
mov edx, dword [0x4eb734]
mov ecx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x40]
test edx, edx
je 0x4022ac
test ecx, ecx
je 0x4022ac
cmp ecx, dword [0x4eb73c]
je 0x4022ac
cmp ebx, 0x414
je 0x4022ac
cmp ebx, 0x402
je 0x4022ac
lea eax, [ebx - 0x100]
cmp eax, 9
ja 0x40209b
call dword [sym.imp.USER32.dll_GetFocus]
mov ebx, eax
mov dword [ebp + 0x34], ebx
test ebx, ebx
je 0x40208f
push 0xfffffffffffffff0
push ebx
mov esi, ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x40000000
je 0x401d0e
push esi
mov edi, esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
test esi, esi
je 0x401d04
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x40000000
jne 0x401a11
jmp 0x401d0e
cmp byte [0x4eb61b], 0
je 0x401c00
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x401bfa
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4ed7f8]
jne 0x401bfa
cmp dword [0x4eb738], 0
je 0x401aa0
push 0x20
lea eax, [ebp - 0xcc]
push eax
push esi
mov esi, dword [sym.imp.USER32.dll_GetClassNameA]
call esi
lea eax, [ebp - 0xcc]
push str.32770
push eax
call fcn.004b6442
add esp, 8
test eax, eax
je 0x401af4
jmp 0x401aa6
mov esi, dword [sym.imp.USER32.dll_GetClassNameA]
call dword [sym.imp.USER32.dll_GetFocus]
test eax, eax
je 0x401bfa
push 0x20
lea ecx, [ebp - 0xcc]
push ecx
push eax
call esi
lea eax, [ebp - 0xcc]
push str.SysTreeView32
push eax
call fcn.004b626e
add esp, 8
test eax, eax
je 0x401af4
lea eax, [ebp - 0xcc]
push str.SysListView32
push eax
call fcn.004b626e
add esp, 8
test eax, eax
jne 0x401bfa
cmp dword [0x4e88c4], 0
je 0x401b52
cmp dword [0x4eb624], 0
jne 0x401b52
mov ecx, dword [0x4e88cc]
cmp byte [ecx + 0xcc], 0
jne 0x401b49
cmp byte [ecx + 0xce], 0
jne 0x401b49
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401b49
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov ecx, dword [0x4e88cc]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401b49
mov byte [ecx + 0xcc], 1
movzx eax, byte [ecx + 0xcc]
jmp 0x401b54
xor eax, eax
push 0
test eax, eax
mov esi, 0x311
push 0x1ff
mov eax, 0xffffffff
push 0
cmovne esi, eax
lea eax, [ebp + 0x3c]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
lea eax, [ebp + 0x3c]
jne 0x401b8c
push 1
push esi
push 0x20e
jmp 0x401c6e
mov edi, dword [ebp + 0x4c]
push 0
push esi
push 0x20e
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
push 1
test eax, eax
jne 0x401bbf
push 0x1ff
push eax
push eax
lea eax, [ebp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [ebp + 0x74]
jmp 0x401c77
mov eax, dword [ebp + 0x4c]
sub eax, edi
test eax, eax
lea eax, [ebp + 0x3c]
jle 0x401be3
push 0x1ff
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [ebp + 0x74]
jmp 0x401c77
push esi
push 0x20e
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [ebp + 0x74]
jmp 0x401c77
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x4e88c4], 0
je 0x401c59
cmp dword [0x4eb624], 0
jne 0x401c59
mov ecx, dword [0x4e88cc]
cmp byte [ecx + 0xcc], 0
jne 0x401c50
cmp byte [ecx + 0xce], 0
jne 0x401c50
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401c50
call esi
mov ecx, dword [0x4e88cc]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401c50
mov byte [ecx + 0xcc], 1
movzx ecx, byte [ecx + 0xcc]
jmp 0x401c5b
xor ecx, ecx
xor edx, edx
mov eax, 0x311
test ecx, ecx
push 1
cmovne eax, edx
push eax
push edx
lea eax, [ebp + 0x3c]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
test eax, eax
jne 0x401966
call esi
mov edx, dword [0x4ede78]
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
cmova edx, eax
mov dword [0x4ede78], edx
test edi, edi
jne 0x401cb7
cmp byte [ebp + 0x38], 0
jne 0x401cb7
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp + 0x38], 1
jmp 0x4018b6
cmp dword [ebp + 0x14], 0
jne 0x401cdb
cmp byte [ebp + 0x6b], 0
je 0x401cdb
test edi, edi
jle 0x401ccf
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp + 0x14], 1
jmp 0x4018b6
call esi
cmp byte [ebp + 0x6b], 0
jne 0x4036f8
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add ecx, edi
cmp ecx, 5
jle 0x4036f8
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4018b6
mov esi, edi
test edi, edi
je 0x40208f
mov ecx, ebx
call fcn.00476290
mov edi, eax
mov dword [ebp + 0x70], edi
test edi, edi
je 0x40208f
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x401d43
lea eax, [ebp + 0x3c]
push eax
push ecx
push esi
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
test eax, eax
jne 0x4018a1
mov ecx, dword [ebp + 0x40]
cmp ecx, 0x100
jne 0x402047
cmp byte [edi + 0xc0], 0
mov edi, dword [ebp + 0x44]
je 0x401f43
cmp edi, 0x22
je 0x401d7f
cmp edi, 0x21
je 0x401d7f
cmp edi, 9
je 0x401d7f
cmp edi, 0x25
je 0x401d7f
cmp edi, 0x27
jne 0x401f43
push ebx
mov edi, ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea esi, [eax - 3]
mov eax, dword [ebp + 0x70]
cmp esi, dword [eax + 0x10]
jb 0x401daa
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov edi, eax
test edi, edi
je 0x401daa
push edi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea esi, [eax - 3]
mov ebx, dword [ebp + 0x70]
cmp esi, dword [ebx + 0x10]
jae 0x401f27
mov ecx, esi
shl ecx, 6
add ecx, dword [ebx + 0x18]
mov dword [ebp + 0x5c], ecx
cmp dword [ecx], edi
jne 0x401f27
cmp esi, 0x2af8
je 0x401f27
test ecx, ecx
je 0x401f2e
mov al, byte [ecx + 4]
cmp al, 0xf
je 0x401f2e
mov edi, dword [ebp + 0x44]
xor esi, esi
cmp al, 0x13
jne 0x401e18
mov esi, ecx
cmp edi, 0x25
je 0x401dfd
cmp edi, 0x27
jne 0x401e18
cmp edi, 0x27
push 0
sete al
push 0
movzx eax, al
push eax
push ecx
mov ecx, ebx
call fcn.00488710
jmp 0x4018ad
cmp edi, 0x25
je 0x401f31
cmp edi, 0x27
je 0x401f31
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x401f2e
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
cmp edi, 9
jne 0x401e66
cmp byte [eax + 4], 0xc
jne 0x401e66
push 0xfffffffffffffff0
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 4
jne 0x401f2e
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
test esi, esi
jne 0x401eaa
mov bl, byte [eax + 6]
cmp bl, 0xff
je 0x401ee6
mov esi, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [esi + 0x10]
test edx, edx
je 0x401ee6
mov esi, dword [esi + 0x18]
cmp byte [esi + 4], 0x13
jne 0x401e8f
cmp al, bl
je 0x401ea3
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x401e83
mov ebx, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [ebx + 0x10]
jmp 0x401ef4
test esi, esi
je 0x401ee6
mov ebx, dword [ebp + 0x70]
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x401f2e
mov eax, dword [ebp + 0x44]
cmp eax, 0x22
je 0x401f13
cmp eax, 9
jne 0x401ed2
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x401f13
push 1
push 1
xor al, al
mov ecx, ebx
push eax
push esi
call fcn.00488710
jmp 0x4018ad
mov ebx, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x401f31
mov esi, dword [ebx + 0x18]
cmp byte [esi + 4], 0x13
jne 0x401f03
test al, al
je 0x401f0d
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x401ef7
jmp 0x401f31
test esi, esi
je 0x401f31
jmp 0x401eaa
push 1
push 1
mov al, 1
mov ecx, ebx
push eax
push esi
call fcn.00488710
jmp 0x4018ad
mov dword [ebp + 0x5c], 0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x40]
cmp ecx, 0x100
jne 0x40204a
mov ebx, dword [ebp + 0x34]
cmp edi, 0x1b
je 0x401f7d
cmp edi, 9
je 0x401f7d
cmp edi, 0x41
jne 0x40204a
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
bt ax, 0xf
jae 0x402044
push 0xa5
call esi
bt ax, 0xf
jb 0x402044
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov edi, dword [ebp + 0x70]
lea esi, [eax - 3]
cmp esi, dword [edi + 0x10]
jb 0x401faf
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov ebx, eax
test ebx, ebx
je 0x401fa6
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea esi, [eax - 3]
cmp esi, dword [edi + 0x10]
jae 0x40203d
mov eax, dword [edi + 0x18]
mov ecx, esi
shl ecx, 6
add eax, ecx
mov dword [ebp + 0x5c], eax
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x40203d
cmp esi, 0x2af8
je 0x40203d
test eax, eax
je 0x402044
cmp byte [eax + 4], 0xc
jne 0x402044
mov edi, dword [ebp + 0x44]
cmp edi, 0x1b
je 0x402010
mov al, byte [eax + 5]
cmp edi, 0x41
je 0x401ffe
test al, al
jns 0x401ff9
push 0x4d5274
push 1
push 0xc2
jmp 0x4018a6
mov ecx, dword [ebp + 0x40]
jmp 0x40204a
test al, 2
jne 0x401ff9
push 0xffffffffffffffff
push 0
push 0xb1
jmp 0x4018a6
mov edi, dword [ebp + 0x70]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [edi + 0x28], 0
je 0x4018a1
push 0
push 0x2af80007
push 0x414
push dword [edi + 4]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x4018ad
mov dword [ebp + 0x5c], 0
mov ecx, dword [ebp + 0x40]
mov edi, dword [ebp + 0x44]
mov eax, dword [0x4ecf58]
test eax, eax
je 0x402225
cmp ecx, 0x100
jne 0x402225
cmp edi, 0xd
jne 0x402077
push 0
push 0
push 0x1116
push eax
jmp 0x4018a7
cmp edi, 0x1b
jne 0x402225
push 0
push 1
push 0x1116
push eax
jmp 0x4018a7
mov ecx, dword [ebp + 0x3c]
mov edx, dword [0x4eb734]
mov ebx, dword [ebp + 0x40]
cmp ebx, 0x20a
je 0x4020b3
cmp ebx, 0x20e
je 0x4020b3
mov edi, dword [ebp + 0x44]
jmp 0x40222e
push dword [ebp + 0x54]
push dword [ebp + 0x50]
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov esi, eax
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
push esi
mov dword [ebp + 0x34], eax
call dword [sym.imp.USER32.dll_GetParent]
mov edx, dword [0x4eb734]
xor ecx, ecx
mov ebx, eax
test edx, edx
jle 0x4020f5
mov edi, dword [0x4eb730]
mov eax, dword [edi + ecx*4]
cmp dword [eax + 4], ebx
je 0x402159
inc ecx
cmp ecx, edx
jl 0x4020e8
push dword [ebp + 0x44]
push 0xfffffffffffffff0
push dword [ebp + 0x3c]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov edx, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x3c]
push eax
call fcn.00401660
add esp, 8
test eax, eax
jne 0x402222
push dword [ebp + 0x3c]
mov ebx, dword [sym.imp.USER32.dll_GetParent]
call ebx
mov edx, dword [0x4eb734]
xor ecx, ecx
mov esi, dword [0x4eb730]
test edx, edx
jle 0x402147
mov edi, dword [esi + ecx*4]
mov dword [ebp + 0x70], edi
cmp dword [edi + 4], eax
je 0x4021af
inc ecx
cmp ecx, edx
jl 0x402137
mov dword [ebp + 0x70], 0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
jmp 0x402234
test eax, eax
je 0x4020f5
mov edi, dword [ebp + 0x34]
cmp esi, dword [ebp + 0x3c]
jne 0x402187
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
mov ecx, esi
push edi
call fcn.00401660
add esp, 8
test eax, eax
jne 0x4020f5
cmp esi, dword [ebp + 0x3c]
je 0x4020f5
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
mov ecx, esi
push edi
call fcn.00401660
add esp, 8
test eax, eax
je 0x4020f5
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push esi
jmp 0x4018a7
test edi, edi
je 0x40214e
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
push dword [edi + 0x3c]
mov ecx, dword [edi + 4]
call fcn.00401660
add esp, 8
test eax, eax
jne 0x402211
push dword [edi + 4]
call ebx
mov edx, dword [0x4eb734]
xor ecx, ecx
mov esi, dword [0x4eb730]
test edx, edx
jle 0x402147
mov edi, dword [esi + ecx*4]
mov dword [ebp + 0x70], edi
cmp dword [edi + 4], eax
je 0x402205
inc ecx
cmp ecx, edx
jl 0x4021e6
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
mov dword [ebp + 0x70], 0
jmp 0x402234
test edi, edi
jne 0x4021b3
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
jmp 0x402234
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [edi + 4]
jmp 0x4018a7
mov edi, dword [ebp + 0x44]
mov edx, dword [0x4eb734]
mov ecx, dword [ebp + 0x3c]
mov esi, dword [0x4eb730]
xor ebx, ebx
test edx, edx
jle 0x4022a7
nop word [eax + eax]
mov eax, dword [esi + ebx*4]
lea edi, [esi + ebx*4]
cmp dword [eax + 0x10], 0
jne 0x402255
cmp dword [ebp + 0x40], 0x106
je 0x40229a
mov ecx, dword [0x4e88cc]
mov byte [ecx + 0xc8], 1
mov eax, dword [ebp + 0x40]
mov dword [ecx + 0xc4], eax
lea eax, [ebp + 0x3c]
push eax
mov eax, dword [edi]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x4023d8
mov eax, dword [0x4e88cc]
mov edx, dword [0x4eb734]
mov esi, dword [0x4eb730]
mov byte [eax + 0xc8], 0
inc ebx
cmp ebx, edx
jl 0x402240
mov ecx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x40]
jmp 0x4022b2
mov ebx, dword [ebp + 0x40]
jmp 0x4022b5
mov esi, dword [0x4eb730]
mov edi, dword [ebp + 0x44]
cmp ebx, 0x400
ja 0x4024ec
je case.0x402502.1025
cmp ebx, 0x100
ja 0x402321
je 0x402301
cmp ebx, 0x12
je 0x4022ee
cmp ebx, 0x4b
jne case.0x402502.1027
mov dword [0x4eb71c], 0
mov byte [ebp + 0x3b], 1
jmp 0x4018ad
push 0
push 4
mov ecx, 0x4ed830
call fcn.00423bc0
jmp 0x4018ad
cmp ecx, dword [0x4eb718]
jne case.0x402502.1027
cmp edi, 0x1b
jne case.0x402502.1027
push 0
push dword [0x4eb73c]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x4018ad
cmp ebx, 0x113
je 0x4023e9
cmp ebx, 0x312
je case.0x402502.1026
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x40368c
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4ed7f8]
jne 0x40368c
push 0x20
lea eax, [ebp - 0xcc]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea eax, [ebp - 0xcc]
push str.32770
push eax
call fcn.004b6442
add esp, 8
test eax, eax
jne 0x40368c
mov ecx, dword [0x4e88cc]
mov byte [ecx + 0xc8], 1
mov eax, dword [ebp + 0x40]
mov dword [ecx + 0xc4], eax
lea eax, [ebp + 0x3c]
push eax
push esi
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
je 0x40367d
cmp dword [0x4eb738], 0
je 0x4023d8
mov eax, dword [0x4ea23c]
mov ecx, 0x4d5231
test eax, eax
je 0x4023d1
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [0x4e88cc]
mov byte [eax + 0xc8], 0
jmp 0x4018ad
cmp dword [ebp + 0x48], 0
jne case.0x402502.1027
cmp ecx, dword [0x4eb73c]
jne case.0x402502.1027
cmp dword [0x4ec1ec], 0
je 0x40240d
call fcn.00403b30
cmp dword [0x4ede2c], 0
je 0x402430
call fcn.00403890
mov edx, dword [ebp + 0x24]
test al, al
movzx ebx, dl
mov eax, 1
cmovne ebx, eax
mov dword [ebp + 0x24], ebx
jmp 0x402433
mov ebx, dword [ebp + 0x24]
cmp dword [ebp + 8], 0
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x4018b6
cmp edi, 1
jl 0x4018b6
call esi
cmp byte [ebp + 0x6b], 0
jne 0x402467
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add ecx, edi
cmp ecx, 5
jg 0x4018b6
xor ecx, ecx
mov dword [0x4ede78], eax
cmp byte [ebp + 0x3a], cl
xorps xmm0, xmm0
mov dword [0x4ede7c], eax
movzx eax, byte [0x4eb61b]
cmovne eax, ecx
movlpd qword [0x4ede68], xmm0
mov byte [0x4eb61b], al
cmp byte [ebp + 0x39], cl
je 0x4024d8
sub dword [0x4eb740], 1
jne 0x4024d8
cmp dword [0x4ede2c], ecx
jne 0x4024d8
cmp dword [0x4ec1ec], ecx
jne 0x4024d8
cmp byte [0x4eb61a], cl
je 0x4024d8
push 9
push dword [0x4eb73c]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4eb61a]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4eb61a], cl
pop edi
pop esi
mov al, bl
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
lea esp, [ebp + 0x78]
pop ebp
ret
lea eax, [ebx - 0x401]
cmp eax, 0x1d
ja case.0x402502.1027
movzx eax, byte [eax + 0x40379c]
jmp dword [eax*4 + 0x403790]
test ecx, ecx
je case.0x402502.1026
cmp ecx, dword [0x4eb73c]
jne case.0x402502.1027
lea eax, [ebx - 0x401]
mov dword [ebp + 0x1c], 0
cmp eax, 0x1d
ja case.0x402536.1027
movzx eax, byte [eax + 0x4037d8]
jmp dword [eax*4 + 0x4037bc]
xor eax, eax
test edx, edx
jle 0x402555
mov ebx, dword [esi + eax*4]
mov dword [ebp + 0x70], ebx
mov ebx, dword [ebx + 4]
cmp ebx, ecx
je 0x402561
inc eax
cmp eax, edx
jl 0x402543
mov dword [ebp + 0x70], 0
jmp case.0x402502.1027
cmp dword [ebp + 0x70], 0
je case.0x402502.1027
mov ecx, dword [ebp + 0x70]
mov eax, 0x2af8
movzx edx, di
shr edi, 0x10
cmp edx, 8
mov esi, edi
mov dword [ebp + 0x30], edx
cmove esi, eax
mov dword [ebp + 0x64], 0
mov eax, dword [ebp + 0x48]
cmovne eax, dword [ebp + 0x58]
mov edx, eax
mov dword [ebp + 0x58], eax
mov eax, dword [ebp + 0x30]
cmp eax, 8
mov dword [ebp - 0x34], esi
cmovne edi, dword [ebp + 0x48]
mov dword [ebp + 0x34], edx
cmp esi, dword [ecx + 0x10]
jae 0x4025b4
shl esi, 6
add esi, dword [ecx + 0x18]
jmp 0x4025b6
xor esi, esi
add eax, 0xfffffffb
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x20], 0
mov byte [ebp + 0x63], 0
cmp eax, 4
ja case.default.0x4025d0
jmp dword [eax*4 + 0x4037f8]
mov esi, dword [ecx + 0x2c]
mov dword [ebp + 0x6c], edi
test esi, esi
je 0x4018ad
lea eax, [ecx + 0x3a]
jmp 0x40261a
mov esi, dword [ecx + 0x24]
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x4018ad
lea eax, [ecx + 0x38]
jmp 0x40261a
mov esi, dword [ecx + 0x28]
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x4018ad
lea eax, [ecx + 0x39]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x6c], edi
test eax, eax
je 0x40270e
cmp byte [eax], 0
mov dword [ebp + 0x6c], edi
mov edi, dword [ebp + 0x74]
mov dword [ebp + 0x58], edx
jne 0x4018b0
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402a33
mov esi, dword [ecx + 0x34]
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x4018ad
mov dword [ebp + 0x6c], edi
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402a33
mov esi, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x68]
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x6c], edi
test esi, esi
je 0x40269d
mov dword [ebp + 0x6c], edi
test ebx, ebx
je 0x4026b2
push 0
push 0
push 0xffffffffffffffff
push ebx
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x40269d
mov edx, dword [ebp + 0x34]
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402a33
test ebx, ebx
je 0x4026b2
push ebx
call dword [sym.imp.SHELL32.dll_DragFinish]
mov eax, dword [ebp + 0x70]
mov dword [eax + 0x68], 0
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x58], eax
jmp 0x4018ad
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x4018ad
mov eax, dword [ebp + 0x5c]
mov esi, dword [esi + 0xc]
mov al, byte [eax + 5]
test esi, esi
jne 0x4026f9
test al, 1
je 0x4026ee
test ebx, ebx
je 0x4026ee
push esi
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], edx
jmp 0x4018ad
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], edx
test al, 4
jne 0x4018ad
mov byte [ebp + 0x63], 1
mov dword [ebp + 0x6c], edi
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402a33
test edi, edi
je 0x40274f
xor eax, eax
test edx, edx
jle 0x402732
mov ebx, dword [esi + eax*4]
mov dword [ebp + 0x70], ebx
cmp dword [ebx + 4], edi
je 0x402749
inc eax
cmp eax, edx
jl 0x402722
xor ebx, ebx
mov dword [ebp + 0x70], ebx
test ecx, ecx
je 0x402754
cmp ecx, dword [0x4eb73c]
jne case.0x402502.1027
jmp 0x402754
test ebx, ebx
jne 0x402754
jmp 0x402737
xor ebx, ebx
mov dword [ebp + 0x70], ebx
mov ecx, dword [0x4ede30]
test ecx, ecx
je 0x402786
mov eax, dword [ebp + 0x48]
mov edi, dword [ecx + 4]
mov dword [ebp + 4], edi
test edi, edi
je 0x40277f
nop dword [eax + eax]
cmp dword [edi + 0x14], eax
je 0x402792
mov edi, dword [edi + 0x20]
mov dword [ebp + 4], edi
test edi, edi
jne 0x402770
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
jne 0x402761
mov dword [ebp + 4], 0
jmp 0x4018ad
mov esi, dword [edi + 8]
test esi, esi
je 0x4018ad
mov edi, dword [edi + 0x18]
jmp 0x402a36
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp edi, dword [0x4ec1e8]
jae 0x4018a1
mov eax, dword [0x4ec1e4]
mov ebx, dword [eax + edi*4]
mov dword [ebp], ebx
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4027ec
mov edx, dword [ebx + 4]
call fcn.0040bbe0
mov edi, dword [ebp + 0x74]
mov dword [ebp + 0x28], eax
test eax, eax
je 0x4018b6
mov eax, dword [ebx + 0x10]
mov al, byte [eax]
cmp al, 1
je 0x4027f3
cmp al, 3
je 0x4027f3
mov dword [ebp + 0x28], 0
push dword [ebp + 0x48]
mov ecx, ebx
call fcn.0040e850
cmp dword [ebx + 0xc], 0
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x4018b6
movzx eax, byte [ebp + 0x48]
xor ecx, ecx
cmp byte [ebx + 0x2a], cl
cmovne ecx, eax
mov byte [0x4ede44], cl
mov esi, dword [ebx]
mov edi, dword [ebx + 0x14]
jmp 0x402a33
cmp byte [0x4ede18], 0
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x4018b6
mov esi, dword [0x4ede0c]
test esi, esi
cmove esi, dword [0x4edbc0]
xor edi, edi
jmp 0x402a33
mov ecx, edi
call fcn.00444ad0
mov edi, dword [ebp + 0x74]
mov ecx, eax
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
je 0x4018b6
mov esi, dword [ecx + 8]
xor edi, edi
mov esi, dword [esi + 0x35c]
jmp 0x402a33
mov ecx, dword [0x4eb72c]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
je 0x4018a1
nop dword [eax]
cmp ecx, edi
je 0x4028b3
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
jne 0x4028a0
jmp 0x4018ad
mov esi, dword [ecx + 8]
cmp ebx, 0x41c
jne 0x4028c6
mov esi, dword [esi + 0x360]
jmp 0x4028dc
cmp ebx, 0x41e
jne 0x4028d6
mov esi, dword [esi + 0x368]
jmp 0x4028dc
mov esi, dword [esi + 0x364]
mov edi, dword [ebp + 0x74]
test esi, esi
je 0x4018b0
xor edi, edi
jmp 0x402a33
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, edi
and eax, 0x7fff
cmp ax, word [0x4ec200]
jae 0x4018a1
mov ecx, eax
shr edi, 0x10
mov eax, dword [0x4ec1f0]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x10], edx
test di, di
je 0x402945
mov esi, dword [edx + 0x20]
add edi, 0xffff
mov dword [ebp + 0x10], esi
test di, di
je 0x402941
nop
mov esi, dword [esi + 8]
add edi, 0xffff
test di, di
jne 0x402930
mov dword [ebp + 0x10], esi
test esi, esi
jne 0x40297c
cmp ebx, 0x400
jne 0x40295c
mov eax, dword [ebp + 0x48]
mov ecx, 0xffc3d44d
shr eax, 0x10
sub ecx, eax
jmp 0x40295e
xor ecx, ecx
push 0
push ecx
lea eax, [ebp + 0x28]
mov ecx, edx
push eax
call fcn.0040c5e0
mov edi, dword [ebp + 0x74]
mov esi, eax
mov dword [ebp + 0x10], esi
test esi, esi
je 0x4018b0
mov eax, dword [0x50f4fc]
mov edx, dword [esi]
test al, 1
jne 0x40299c
or dword [0x50f4fc], 1
mov ecx, 0x50f500
push 0
push 0
call fcn.00422370
mov eax, dword [0x4edbc0]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x4029af
cmp ecx, dword [0x50f500]
jne 0x4029ba
mov eax, dword [edx + 8]
test eax, eax
je 0x4029ba
mov cl, byte [eax]
jmp 0x4029bc
xor cl, cl
mov al, byte [esi + 0x16]
cmp al, byte [esi + 0x17]
jb 0x402a05
cmp cl, 0xe2
je 0x402a05
cmp cl, 0xce
je 0x402a05
cmp cl, 0xdc
je 0x402a05
cmp cl, 0xdd
je 0x402a05
cmp cl, 0xd8
je 0x402a05
cmp cl, 0xd9
je 0x402a05
cmp cl, 0xda
je 0x402a05
cmp cl, 0xdb
je 0x402a05
cmp byte [esi + 0x1a], 0
je 0x4029f6
mov byte [esi + 0x1b], 1
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov dword [esi + 0xc], eax
jmp 0x4018ad
mov eax, dword [esi + 4]
test eax, eax
je 0x402a24
mov al, byte [eax]
cmp al, 2
je 0x402a24
cmp al, 4
je 0x402a24
cmp al, 5
jb 0x402a2b
mov eax, dword [0x4eb728]
mov dword [ebp + 0x28], eax
jmp 0x402a2b
mov dword [ebp + 0x28], 0
mov edi, dword [ebp + 0x10]
mov esi, dword [esi]
mov edi, dword [edi + 0x10]
mov ebx, dword [ebp + 0x70]
mov eax, dword [ebp + 0x6c]
mov dword [ebp + 0x34], eax
mov eax, dword [0x50f4fc]
test al, 1
jne 0x402a5a
or dword [0x50f4fc], 1
mov ecx, 0x50f500
push 0
push 0
call fcn.00422370
mov eax, dword [0x4edbc0]
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x402a6d
cmp ecx, dword [0x50f500]
jne 0x402a7a
mov eax, esi
mov eax, dword [eax + 8]
test eax, eax
je 0x402a7a
mov cl, byte [eax]
jmp 0x402a7c
xor cl, cl
mov edx, dword [0x4eb724]
mov eax, dword [0x4e88c8]
mov byte [ebp - 0x14], cl
cmp edx, eax
jl 0x402af9
add eax, 2
cmp edx, eax
jge 0x402abd
cmp cl, 0xe2
je 0x402af9
cmp cl, 0xce
je 0x402af9
cmp cl, 0xdc
je 0x402af9
cmp cl, 0xdd
je 0x402af9
cmp cl, 0xd8
je 0x402af9
cmp cl, 0xd9
je 0x402af9
cmp cl, 0xda
je 0x402af9
cmp cl, 0xdb
je 0x402af9
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x402ad2
push eax
call dword [sym.imp.SHELL32.dll_DragFinish]
mov dword [ebx + 0x68], 0
cmp dword [ebp + 0x40], 0x41b
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x4018b6
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x4018ad
mov eax, dword [0x4e88cc]
cmp edi, dword [eax + 0x2c]
jl 0x402abd
mov ecx, dword [ebp + 0x40]
mov byte [ebp + 0x24], 1
lea eax, [ecx - 0x402]
cmp eax, 0x1c
ja case.0x402b1c.1027
movzx eax, byte [eax + 0x403818]
jmp dword [eax*4 + 0x40380c]
mov ebx, dword [ebp + 4]
push 0x104
push dword [ebx]
push 0x4edbc8
call fcn.004ba990
mov byte [0x4edccc], 0
mov eax, dword [ebx + 0x10]
push 0x104
push dword [eax]
push 0x4edccd
call fcn.004ba990
add esp, 0x18
mov byte [0x4eddd1], 0
mov dword [0x4edbc4], ebx
jmp case.0x402b1c.1044
mov eax, dword [0x4eddd4]
mov dword [0x4eddd8], eax
mov eax, dword [0x4ede3c]
mov dword [0x4ede40], eax
cmp ecx, 0x401
jne 0x402b88
mov eax, dword [ebp]
mov eax, dword [eax + 4]
jmp 0x402b8e
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x1c]
mov dword [0x4eddd4], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov dword [0x4ede3c], eax
mov ecx, dword [0x4eb720]
push 0
push 1
call fcn.00401550
push 0x7f
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.004ba990
push dword [ebp - 0x14]
xor dl, dl
mov byte [ebp - 0x19d], 0
push 1
mov ecx, edi
call fcn.00404080
mov ebx, dword [0x4e88cc]
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4ede7c], eax
mov dword [0x4ede78], eax
mov eax, dword [ebp + 0x40]
add eax, 0xfffffbff
cmp eax, 0x1d
ja case.0x402c03.1027
movzx eax, byte [eax + 0x403858]
jmp dword [eax*4 + 0x403838]
mov edx, dword [ebp + 0x64]
lea ecx, [ebp - 0x98]
mov edi, dword [ebp + 0x70]
mov eax, edx
shl eax, 4
inc edx
add ecx, eax
mov dword [ebp + 0x64], edx
cmp byte [ebp + 0x63], 0
mov edx, dword [ebp + 0x5c]
mov byte [ebp - 0x30], 0
je 0x402c32
mov eax, dword [edx]
jmp 0x402c35
mov eax, dword [edi + 4]
push eax
call fcn.00404680
mov ecx, dword [ebp + 0x30]
lea eax, [ecx - 5]
cmp eax, 4
ja case.default.0x402c4a
jmp dword [eax*4 + 0x403878]
xor edx, edx
lea edi, [ebx + 0x3c]
cmp dword [ebp + 0x6c], edx
mov dword [ebp + 0x6c], 0
sete dl
lea edx, [edx*2 + 1]
mov dword [ebx + 0x34], edx
mov ecx, dword [ebp + 0x54]
mov eax, dword [ebp + 0x50]
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 0x5c]
mov dword [edi], eax
test ecx, ecx
je 0x402d1f
cmp dword [ebp + 0x34], 0
je 0x402c96
push edi
push ecx
call fcn.00489110
mov edx, dword [ebx + 0x34]
mov ecx, dword [ebp + 0x5c]
movzx eax, byte [ecx + 4]
sub eax, 9
je 0x402d0a
sub eax, 1
je 0x402cff
sub eax, 1
jne 0x402d1f
cmp edx, 1
jne 0x402cc0
push eax
push 9
push 0x110a
push dword [ecx]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x402d1c
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp - 0xa8], ecx
push dword [eax]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp + 0x5c]
push 0
push 0x1111
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x402d1c
push 1
push 0xffffffffffffffff
push 0x100c
jmp 0x402d13
push 0
push 0
push 0x19f
push dword [ecx]
call dword [sym.imp.USER32.dll_SendMessageA]
inc eax
mov dword [ebp + 0x6c], eax
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [ebp + 0x70]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xdc]
lea ecx, [ebp - 0x98]
sub dword [edi], eax
mov eax, dword [ebp - 0xd8]
sub dword [edi + 4], eax
mov edi, dword [ebp + 0x64]
mov edx, edi
mov eax, dword [ebp + 0x5c]
shl edx, 4
add ecx, edx
test eax, eax
je 0x402d63
push dword [eax]
call fcn.00404680
jmp 0x402d70
mov dword [ecx + 8], 0
mov dword [ecx], 0x4d5231
push dword [ebp + 0x6c]
lea ecx, [ebp - 0x88]
add ecx, edx
call fcn.00404680
add edi, 2
lea ecx, [ebp - 0x98]
shl edi, 4
xor eax, eax
add ecx, edi
cmp dword [ebx + 0x34], 3
sete al
push eax
call fcn.00404660
push dword [ebx + 0x3c]
lea ecx, [ebp - 0x88]
add ecx, edi
mov edi, dword [ebp + 0x64]
call fcn.00404660
push dword [ebx + 0x40]
lea eax, [edi + 4]
shl eax, 4
lea ecx, [ebp - 0x98]
add ecx, eax
lea eax, [edi + 5]
mov dword [ebp + 0x64], eax
call fcn.00404660
mov edx, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x6c]
cmp byte [ebp + 0x63], 0
je 0x4031a1
mov edi, dword [ebp + 0x5c]
cmp byte [edi + 4], 0x17
jne 0x4031a1
push 0x10b0
lea eax, [ebp - 0x12cc]
push 0
push eax
call fcn.004b4390
mov eax, dword [ebp + 0x6c]
add esp, 0xc
dec eax
mov dword [ebp - 0x12d4], 0xd
mov dword [ebp - 0x12d0], eax
lea eax, [ebp - 0x12d4]
push eax
push 0
push 0x703
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x4031f4
cmp word [ebp - 0x1264], 0
lea ecx, [ebp - 0x1264]
lea eax, [ebp - 0x12c4]
mov dword [ebp - 0x1c], 0
cmove ecx, eax
mov byte [ebp - 0x18], 0
sub esp, 8
mov dword [ebp - 4], 0
lea edx, [ebp - 0x20]
mov dword [ebp - 0x20], 0x4d528c
push 0xffffffffffffffff
call fcn.0049b5b0
add esp, 0xc
mov dword [ebp - 4], 1
mov ecx, 0x4d5231
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x402e8b
mov eax, dword [edi]
test eax, eax
cmovne ecx, eax
push 1
push 0
push 0xffffffffffffffff
push ecx
mov ecx, dword [0x4eb720]
call fcn.004a2730
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x20], vtable.CKuStringT_char__class_CKuStringUtilA_.0
test edi, edi
je 0x402ed8
mov eax, dword [edi + 0x10]
add eax, 0xffffffff
mov dword [edi + 0x10], eax
jne 0x402ed8
mov edi, dword [ebp - 0x1c]
mov eax, dword [edi + 4]
test eax, eax
je 0x402ecd
push eax
call fcn.004b6427
add esp, 4
push 0x14
push edi
call fcn.004b2e95
add esp, 8
mov ecx, dword [ebp + 0x64]
lea edi, [ebp - 0x98]
mov eax, ecx
inc ecx
push 0
shl eax, 4
mov dword [ebp + 0x64], ecx
add edi, eax
mov ecx, dword [0x4eb720]
push 1
call fcn.00401550
mov dword [edi + 8], 0
mov dword [edi], eax
jmp 0x4031f4
mov dword [ebx + 0x34], ecx
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
mov dword [ebx + 0x3c], eax
lea eax, [ebp - 0xec]
push eax
mov dword [ebx + 0x40], ecx
push dword [edi + 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 [edi + 4]
call dword [sym.imp.USER32.dll_GetWindowLongA]
and eax, 0xffffffef
push eax
push 0xffffffffffffffec
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov edi, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x1c]
shl edi, 4
call fcn.004792d0
mov dword [ebp + edi - 0x98], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + edi - 0x90], 6
test eax, eax
je 0x402f8c
push dword [eax]
lea ecx, [ebp - 0x88]
add ecx, edi
call fcn.00404680
jmp 0x402f9f
mov dword [ebp + edi - 0x80], 0
mov dword [ebp + edi - 0x88], 0x4d5231
mov edi, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x70]
mov eax, dword [ebx + 0x3c]
lea edi, [edi + 2]
shl edi, 4
cmp byte [ecx + 0xc8], 0
je 0x402fc6
push dword [0x4ed800]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
lea ecx, [ebp - 0x98]
push eax
add ecx, edi
call fcn.00404660
lea eax, [ebp - 0x88]
add edi, eax
add dword [ebp + 0x64], 4
mov eax, dword [ebx + 0x40]
mov ecx, dword [ebp + 0x70]
cmp byte [ecx + 0xc8], 0
je 0x402ffe
push dword [0x4ed800]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
mov ecx, edi
jmp 0x402dc7
mov dword [ebx + 0x34], 1
cmp ecx, 8
jne 0x402dcc
mov eax, dword [ebp + 0x64]
lea edi, [ebp - 0x88]
mov edx, dword [ebp + 0x58]
mov ecx, dword [ebp + 0x6c]
shl eax, 4
mov dword [ebx + 0x3c], edx
add edi, eax
mov dword [ebp + eax - 0x98], ecx
mov ecx, dword [ebp + 0x70]
mov dword [ebp + eax - 0x90], 1
mov dword [ebp + eax - 0x94], 0
movzx eax, dx
cmp byte [ecx + 0xc8], 0
je 0x403068
push dword [0x4ed800]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
mov ecx, edi
call fcn.00404660
mov ecx, dword [ebp + 0x64]
lea edi, [ebp - 0x78]
mov eax, ecx
add ecx, 3
shl eax, 4
add edi, eax
mov dword [ebp + 0x64], ecx
mov eax, dword [ebp + 0x58]
shr eax, 0x10
jmp 0x402fe3
mov al, byte [edx + 4]
cmp al, 0xa
je 0x4030ef
cmp al, 0x19
jne 0x4030ca
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
mov dword [ebx + 0x3c], eax
lea eax, [ebp - 0xfc]
push eax
mov dword [ebx + 0x40], ecx
push dword [edi + 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 + 0x30]
mov eax, dword [ebp + 0x64]
mov edx, dword [ebp + 0x30]
mov dword [ebx + 0x34], ecx
lea ecx, [ebp - 0x98]
shl eax, 4
add ecx, eax
cmp edx, 5
jae 0x403162
mov edx, dword [edx*4 + 0x4e06f0]
jmp 0x40316d
cmp cl, 0x49
jne 0x4030ca
lea eax, [ebp - 0x30]
test ecx, 0x100
je 0x403105
mov byte [ebp - 0x30], 0x53
jmp 0x403111
test ecx, 0x200
je 0x403114
mov byte [ebp - 0x30], 0x73
lea eax, [ebp - 0x2f]
test ecx, 0x400
je 0x403121
mov byte [eax], 0x46
jmp 0x40312c
test ecx, 0x800
je 0x40312d
mov byte [eax], 0x66
inc eax
test ecx, 0x1000
je 0x40313a
mov byte [eax], 0x43
jmp 0x403145
test ecx, 0x2000
je 0x403146
mov byte [eax], 0x63
inc eax
mov byte [eax], 0
lea ecx, [ebp - 0x98]
mov eax, dword [ebp + 0x64]
mov edx, 0x49
shl eax, 4
mov dword [ebp + 0x30], edx
add ecx, eax
mov dword [ebx + 0x34], edx
mov byte [0x50f328], dl
mov edx, 0x50f328
mov dword [ecx], edx
mov edx, dword [ebp + 0x64]
mov dword [ecx + 8], 0
add edx, 2
mov ecx, dword [ebp + 0x6c]
mov dword [ebp + eax - 0x80], 1
mov dword [ebp + eax - 0x88], ecx
mov dword [ebp + eax - 0x84], 0
mov dword [ebp + 0x64], edx
jmp 0x402dd2
cmp byte [ebp - 0x30], 0
je 0x4031c4
mov eax, edx
add eax, eax
inc edx
mov dword [ebp + 0x64], edx
lea edx, [ebp - 0x30]
mov dword [ebp + eax*8 - 0x90], 0
mov dword [ebp + eax*8 - 0x98], edx
mov eax, dword [ebp + 0x30]
cmp eax, 8
je 0x4031e8
cmp eax, 5
je 0x4031e8
mov ecx, dword [0x4eb720]
lea eax, [ebp - 0x30]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004a2730
jmp 0x4031f4
push ecx
mov ecx, dword [0x4eb720]
call fcn.004014c0
mov edi, dword [ebp + 0x70]
mov eax, dword [edi + 4]
mov dword [ebx + 0xa4], eax
add dword [edi + 0x20], 2
mov eax, dword [ebp - 0x34]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp + 0x6c]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x44], edi
test eax, eax
je 0x4032ae
mov byte [eax], 1
mov ebx, dword [ebp + 0x5c]
push 0
lea eax, [ebp - 0x38]
mov edx, esi
push eax
push dword [ebp + 0x64]
lea eax, [ebp - 0x98]
mov ecx, esi
push eax
push str.call
call fcn.0048cb70
add esp, 0x14
cmp dword [edi + 4], 0
je 0x40330c
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4032c4
mov byte [eax], 0
mov eax, dword [ebp + 0x30]
cmp eax, 6
jne 0x4032d1
cmp dword [ebp - 0x38], 0
jne 0x40330c
mov eax, dword [0x50f4fc]
test al, 1
jne 0x40328d
push 0
or eax, 1
mov ecx, 0x50f500
push 0
mov dword [0x50f4fc], eax
call fcn.00422370
mov eax, dword [0x4edbc0]
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x40329c
test esi, esi
jne 0x40330c
mov eax, dword [edi + 4]
test eax, eax
je 0x40330c
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x40330c
cmp byte [ebp + 0x63], 0
je 0x403224
mov ebx, dword [ebp + 0x5c]
or byte [ebx + 5], 4
jmp 0x403227
cmp byte [ebp + 0x63], 0
mov eax, dword [ebp + 0x30]
je 0x4032d1
and byte [ebx + 5], 0xfb
cmp eax, 5
jne 0x40330c
mov eax, dword [ebp - 0x88]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [ebp + 0x1c]
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]
add dword [edi + 0x20], 0xffffffff
jne 0x403620
push dword [edi]
call fcn.004b6427
push 0xd8
push edi
call fcn.004b2e95
add esp, 0xc
jmp 0x403620
mov edi, dword [ebp + 0x70]
test edi, edi
je 0x403351
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, 0x4ed830
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x16c], 0x4edbc8
call fcn.004588c0
inc eax
lea ecx, [ebp - 0x15c]
push 0
push eax
call fcn.004045b0
push 0
push 0
push 3
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x144], 0
push eax
push str.call
mov edx, esi
mov dword [ebp - 0x14c], 0x4edccd
mov ecx, esi
call fcn.0048cb70
add esp, 0x14
test edi, edi
je 0x403620
jmp 0x40330c
mov esi, dword [ebp]
mov eax, dword [ebp + 0x28]
mov dword [ebx + 0xa4], eax
mov al, byte [esi + 0x21]
mov byte [ebx + 0xd6], al
mov eax, dword [0x50f4fc]
mov edx, dword [esi]
test al, 1
jne 0x4033f3
push 0
or eax, 1
mov ecx, 0x50f500
push 0
mov dword [0x50f4fc], eax
call fcn.00422370
mov eax, dword [0x4edbc0]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x403406
cmp ecx, dword [0x50f500]
jne 0x403411
mov eax, dword [edx + 8]
test eax, eax
je 0x403411
mov cl, byte [eax]
jmp 0x403413
xor cl, cl
mov al, byte [esi + 0x24]
cmp al, byte [esi + 0x25]
jb 0x403447
cmp cl, 0xe2
je 0x403447
cmp cl, 0xce
je 0x403447
cmp cl, 0xdc
je 0x403447
cmp cl, 0xdd
je 0x403447
cmp cl, 0xd8
je 0x403447
cmp cl, 0xd9
je 0x403447
cmp cl, 0xda
je 0x403447
cmp cl, 0xdb
jne 0x403620
push 0
push 0
mov byte [0x4ede45], 0
inc byte [esi + 0x24]
mov ecx, dword [esi]
mov edx, ecx
push 0
push 0
push str.call
call fcn.0048cb70
add esp, 0x14
dec byte [esi + 0x24]
jmp 0x403620
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
je 0x4034a0
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x403499
push 0xf
call esi
test eax, eax
jne 0x403499
mov eax, 2
jmp 0x4034a2
mov eax, 1
jmp 0x4034a2
xor eax, eax
mov ecx, dword [0x4eb720]
push eax
mov dword [ebx + 0x38], eax
call fcn.004014c0
push 0
push dword [ebx + 0x38]
lea ecx, [ebp - 0x13c]
call fcn.004045b0
mov ecx, dword [0x4ede0c]
mov byte [0x4ede18], 1
test ecx, ecx
je 0x4034dd
call fcn.00401610
mov ecx, dword [0x4ede0c]
cmp dword [ebp + 0x44], 0
jne 0x4034fe
xor eax, eax
test ecx, ecx
mov ecx, 0x4eddec
sete al
push eax
push 1
lea eax, [ebp - 0x13c]
push eax
call fcn.004900e0
mov byte [0x4ede18], 0
jmp 0x403620
mov ebx, dword [ebp + 0x2c]
mov edx, esi
push 0
push 0
push 1
mov eax, dword [ebx + 8]
mov ecx, esi
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0x10c]
push eax
push str.call
mov dword [ebp - 0x104], 6
call fcn.0048cb70
mov eax, dword [ebx + 8]
add esp, 0x14
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x403620
mov eax, dword [ebp + 0x2c]
lea ecx, [ebp - 0x18c]
mov ebx, dword [ebp + 0x48]
mov dword [ebp - 0x194], 6
mov eax, dword [eax + 8]
mov dword [ebp - 0x19c], eax
movzx eax, bl
cdq
push edx
push eax
call fcn.004045b0
sar ebx, 0x10
lea ecx, [ebp - 0x17c]
movzx eax, bx
cdq
push edx
push eax
call fcn.004045b0
push 0
push 0
push 3
lea eax, [ebp - 0x19c]
push eax
push str.call
mov edx, esi
mov ecx, esi
call fcn.0048cb70
add esp, 0x14
jmp 0x403620
mov eax, dword [ebp + 0x48]
mov byte [ebp + 0x18], al
sar eax, 0x10
mov byte [ebp + 0x19], al
mov eax, dword [ebp + 0x2c]
push 0
push 0
mov byte [ebp + 0x1a], 0
mov eax, dword [eax + 8]
mov dword [ebp - 0x12c], eax
lea eax, [ebp + 0x18]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x124], 6
mov dword [ebp - 0x114], 0
push 2
jmp 0x403596
mov edx, dword [ebp - 0x10]
mov al, byte [edx + 0x10]
add al, 0x64
cmp al, 3
ja 0x403603
mov eax, dword [ebp + 0x48]
mov dword [ebx + 0x38], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x28]
mov dword [ebx + 0xa4], eax
push ecx
mov al, byte [ecx + 0x18]
mov ecx, edx
mov byte [ebx + 0xd6], al
call fcn.0040c8f0
lea ecx, [ebp - 0x21c]
call fcn.00404190
cmp dword [ebp + 8], 0
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x4018b6
call esi
cmp byte [ebp + 0x6b], 0
jne 0x403656
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add ecx, edi
cmp ecx, 5
jg 0x4018b6
cmp edi, 0xffffffff
jle 0x40366b
xorps xmm0, xmm0
mov dword [0x4ede78], eax
movlpd qword [0x4ede68], xmm0
mov dword [0x4ede7c], eax
mov byte [ebp + 0x3b], 1
mov byte [ebp + 0x6b], 1
jmp 0x4018b6
mov ecx, dword [0x4e88cc]
mov byte [ecx + 0xc8], 0
jmp 0x403692
mov ecx, dword [0x4e88cc]
mov eax, dword [0x4eb714]
test eax, eax
je 0x4036c3
lea ecx, [ebp + 0x3c]
push ecx
push eax
push dword [0x4eb73c]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
test eax, eax
jne 0x4018b6
mov ecx, dword [0x4e88cc]
mov byte [ecx + 0xc8], 1
mov eax, dword [ebp + 0x40]
mov dword [ecx + 0xc4], eax
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]
mov eax, dword [0x4e88cc]
mov byte [eax + 0xc8], 0
jmp 0x4018ad
cmp edi, 0xffffffff
jle 0x40370d
xorps xmm0, xmm0
mov dword [0x4ede78], eax
movlpd qword [0x4ede68], xmm0
xor ecx, ecx
mov dword [0x4ede7c], eax
cmp byte [ebp + 0x3a], cl
movzx eax, byte [0x4eb61b]
cmovne eax, ecx
mov byte [0x4eb61b], al
cmp byte [ebp + 0x39], cl
je 0x403778
mov eax, dword [0x4eb740]
dec eax
mov dword [0x4eb740], eax
test edi, edi
jle 0x403778
test eax, eax
jne 0x403778
cmp dword [0x4ede2c], ecx
jne 0x403778
cmp dword [0x4ec1ec], ecx
jne 0x403778
cmp byte [0x4eb61a], cl
je 0x403778
push 9
push dword [0x4eb73c]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4eb61a]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4eb61a], cl
mov edx, dword [ebp + 0x24]
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