Function at 0x4018a0
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 0x4dc9b5
mov eax, dword fs:[0]
push eax
mov eax, 0x12c8
mov dword fs:[0], esp
call fcn.004db810
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 0x4018f9
cmp byte [0x4fb847], 0
mov edi, 1
mov dword [ebp + 8], edi
jne 0x4018f9
mov byte [0x4fb847], 1
mov byte [ebp + 0x3a], 1
cmp dword [0x4fda84], 0
je 0x40193b
cmp dword [0x4fda74], 0
je 0x401921
push dword [0x4fda6c]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x4fda74], 0
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x4fda84], 0
mov dword [0x4fda6c], 0
cmp esi, 0x8000012f
jne 0x401958
mov esi, 0xa
mov byte [ebp + 0x6b], 1
mov dword [ebp + 0x74], esi
mov dword [ebp + 0xc], 0
jmp 0x401973
cmp esi, 5
setle byte [ebp + 0x6b]
jg 0x40196a
mov dword [ebp + 0xc], 0
jmp 0x401973
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0xc], eax
cmp dword [0x4fc440], 0
je 0x401981
call fcn.00403f10
xor bl, bl
cmp dword [0x4fe084], 0
mov dword [ebp + 0x24], ebx
je 0x4019a4
call fcn.00403c20
test al, al
movzx ebx, bl
mov eax, 1
cmovne ebx, eax
mov dword [ebp + 0x24], ebx
test esi, esi
jle 0x4019dd
cmp edi, 1
jne 0x4019dd
inc dword [0x4fb96c]
cmp byte [0x4fb846], 0
mov byte [ebp + 0x39], 1
jne 0x4019e1
push 0
push 0xa
push 9
push dword [0x4fb968]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4fb846]
jmp 0x4019e1
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.00404ac0
add esi, 0x10
sub edi, 1
jne 0x401a00
jmp 0x401a1d
mov edi, dword [ebp + 0x74]
jmp 0x401a26
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 0x401ba9
cmp byte [ebp + 0x3b], 0
jne 0x401ba9
cmp byte [0x4fb847], 0
jne 0x401bb6
cmp dword [0x4f8984], 0
je 0x401aa2
cmp dword [0x4fb938], 0
jne 0x401aa2
mov ecx, dword [0x4f898c]
cmp byte [ecx + 0xcc], 0
jne 0x401a99
cmp byte [ecx + 0xce], 0
jne 0x401a99
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401a99
call esi
mov ecx, dword [0x4f898c]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401a99
mov byte [ecx + 0xcc], 1
movzx ecx, byte [ecx + 0xcc]
jmp 0x401aa4
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 0x401a26
call esi
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jbe 0x401ad6
mov dword [0x4fe0d8], eax
inc dword [ebp + 0x14]
cmp dword [0x4fda64], 0
je 0x401b09
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.00403fe0
add esp, 0x10
test al, al
jne 0x401a26
mov edx, dword [0x4fb960]
mov ecx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x40]
test edx, edx
je 0x40241c
test ecx, ecx
je 0x40241c
cmp ecx, dword [0x4fb968]
je 0x40241c
cmp ebx, 0x414
je 0x40241c
cmp ebx, 0x402
je 0x40241c
lea eax, [ebx - 0x100]
cmp eax, 9
ja 0x40220b
call dword [sym.imp.USER32.dll_GetFocus]
mov ebx, eax
mov dword [ebp + 0x34], ebx
test ebx, ebx
je 0x4021ff
push 0xfffffffffffffff0
push ebx
mov esi, ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x40000000
je 0x401e7e
push esi
mov edi, esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
test esi, esi
je 0x401e74
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x40000000
jne 0x401b81
jmp 0x401e7e
cmp byte [0x4fb847], 0
je 0x401d70
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x401d6a
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4fda50]
jne 0x401d6a
cmp dword [0x4fb964], 0
je 0x401c10
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.004c4262
add esp, 8
test eax, eax
je 0x401c64
jmp 0x401c16
mov esi, dword [sym.imp.USER32.dll_GetClassNameA]
call dword [sym.imp.USER32.dll_GetFocus]
test eax, eax
je 0x401d6a
push 0x20
lea ecx, [ebp - 0xcc]
push ecx
push eax
call esi
lea eax, [ebp - 0xcc]
push str.SysTreeView32
push eax
call fcn.004c408e
add esp, 8
test eax, eax
je 0x401c64
lea eax, [ebp - 0xcc]
push str.SysListView32
push eax
call fcn.004c408e
add esp, 8
test eax, eax
jne 0x401d6a
cmp dword [0x4f8984], 0
je 0x401cc2
cmp dword [0x4fb938], 0
jne 0x401cc2
mov ecx, dword [0x4f898c]
cmp byte [ecx + 0xcc], 0
jne 0x401cb9
cmp byte [ecx + 0xce], 0
jne 0x401cb9
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401cb9
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov ecx, dword [0x4f898c]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401cb9
mov byte [ecx + 0xcc], 1
movzx eax, byte [ecx + 0xcc]
jmp 0x401cc4
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 0x401cfc
push 1
push esi
push 0x20e
jmp 0x401dde
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 0x401d2f
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 0x401de7
mov eax, dword [ebp + 0x4c]
sub eax, edi
test eax, eax
lea eax, [ebp + 0x3c]
jle 0x401d53
push 0x1ff
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [ebp + 0x74]
jmp 0x401de7
push esi
push 0x20e
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [ebp + 0x74]
jmp 0x401de7
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x4f8984], 0
je 0x401dc9
cmp dword [0x4fb938], 0
jne 0x401dc9
mov ecx, dword [0x4f898c]
cmp byte [ecx + 0xcc], 0
jne 0x401dc0
cmp byte [ecx + 0xce], 0
jne 0x401dc0
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401dc0
call esi
mov ecx, dword [0x4f898c]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401dc0
mov byte [ecx + 0xcc], 1
movzx ecx, byte [ecx + 0xcc]
jmp 0x401dcb
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 0x401ad6
call esi
mov edx, dword [0x4fe0d8]
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
cmova edx, eax
mov dword [0x4fe0d8], edx
test edi, edi
jne 0x401e27
cmp byte [ebp + 0x38], 0
jne 0x401e27
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp + 0x38], 1
jmp 0x401a26
cmp dword [ebp + 0x14], 0
jne 0x401e4b
cmp byte [ebp + 0x6b], 0
je 0x401e4b
test edi, edi
jle 0x401e3f
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp + 0x14], 1
jmp 0x401a26
call esi
cmp byte [ebp + 0x6b], 0
jne 0x403a8a
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add ecx, edi
cmp ecx, 5
jle 0x403a8a
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x401a26
mov esi, edi
test edi, edi
je 0x4021ff
mov ecx, ebx
call fcn.00483f00
mov edi, eax
mov dword [ebp + 0x70], edi
test edi, edi
je 0x4021ff
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x401eb3
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 0x401a11
mov ecx, dword [ebp + 0x40]
cmp ecx, 0x100
jne 0x4021b7
cmp byte [edi + 0xc0], 0
mov edi, dword [ebp + 0x44]
je 0x4020b3
cmp edi, 0x22
je 0x401eef
cmp edi, 0x21
je 0x401eef
cmp edi, 9
je 0x401eef
cmp edi, 0x25
je 0x401eef
cmp edi, 0x27
jne 0x4020b3
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 0x401f1a
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov edi, eax
test edi, edi
je 0x401f1a
push edi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea esi, [eax - 3]
mov ebx, dword [ebp + 0x70]
cmp esi, dword [ebx + 0x10]
jae 0x402097
mov ecx, esi
shl ecx, 6
add ecx, dword [ebx + 0x18]
mov dword [ebp + 0x5c], ecx
cmp dword [ecx], edi
jne 0x402097
cmp esi, 0x2af8
je 0x402097
test ecx, ecx
je 0x40209e
mov al, byte [ecx + 4]
cmp al, 0xf
je 0x40209e
mov edi, dword [ebp + 0x44]
xor esi, esi
cmp al, 0x13
jne 0x401f88
mov esi, ecx
cmp edi, 0x25
je 0x401f6d
cmp edi, 0x27
jne 0x401f88
cmp edi, 0x27
push 0
sete al
push 0
movzx eax, al
push eax
push ecx
mov ecx, ebx
call fcn.004962d0
jmp 0x401a1d
cmp edi, 0x25
je 0x4020a1
cmp edi, 0x27
je 0x4020a1
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x40209e
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
cmp edi, 9
jne 0x401fd6
cmp byte [eax + 4], 0xc
jne 0x401fd6
push 0xfffffffffffffff0
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 4
jne 0x40209e
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
test esi, esi
jne 0x40201a
mov bl, byte [eax + 6]
cmp bl, 0xff
je 0x402056
mov esi, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [esi + 0x10]
test edx, edx
je 0x402056
mov esi, dword [esi + 0x18]
cmp byte [esi + 4], 0x13
jne 0x401fff
cmp al, bl
je 0x402013
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x401ff3
mov ebx, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [ebx + 0x10]
jmp 0x402064
test esi, esi
je 0x402056
mov ebx, dword [ebp + 0x70]
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x40209e
mov eax, dword [ebp + 0x44]
cmp eax, 0x22
je 0x402083
cmp eax, 9
jne 0x402042
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x402083
push 1
push 1
xor al, al
mov ecx, ebx
push eax
push esi
call fcn.004962d0
jmp 0x401a1d
mov ebx, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x4020a1
mov esi, dword [ebx + 0x18]
cmp byte [esi + 4], 0x13
jne 0x402073
test al, al
je 0x40207d
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x402067
jmp 0x4020a1
test esi, esi
je 0x4020a1
jmp 0x40201a
push 1
push 1
mov al, 1
mov ecx, ebx
push eax
push esi
call fcn.004962d0
jmp 0x401a1d
mov dword [ebp + 0x5c], 0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x40]
cmp ecx, 0x100
jne 0x4021ba
mov ebx, dword [ebp + 0x34]
cmp edi, 0x1b
je 0x4020ed
cmp edi, 9
je 0x4020ed
cmp edi, 0x41
jne 0x4021ba
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
bt ax, 0xf
jae 0x4021b4
push 0xa5
call esi
bt ax, 0xf
jb 0x4021b4
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov edi, dword [ebp + 0x70]
lea esi, [eax - 3]
cmp esi, dword [edi + 0x10]
jb 0x40211f
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov ebx, eax
test ebx, ebx
je 0x402116
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea esi, [eax - 3]
cmp esi, dword [edi + 0x10]
jae 0x4021ad
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 0x4021ad
cmp esi, 0x2af8
je 0x4021ad
test eax, eax
je 0x4021b4
cmp byte [eax + 4], 0xc
jne 0x4021b4
mov edi, dword [ebp + 0x44]
cmp edi, 0x1b
je 0x402180
mov al, byte [eax + 5]
cmp edi, 0x41
je 0x40216e
test al, al
jns 0x402169
push 0x4e33b4
push 1
push 0xc2
jmp 0x401a16
mov ecx, dword [ebp + 0x40]
jmp 0x4021ba
test al, 2
jne 0x402169
push 0xffffffffffffffff
push 0
push 0xb1
jmp 0x401a16
mov edi, dword [ebp + 0x70]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [edi + 0x28], 0
je 0x401a11
push 0
push 0x2af80007
push 0x414
push dword [edi + 4]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x401a1d
mov dword [ebp + 0x5c], 0
mov ecx, dword [ebp + 0x40]
mov edi, dword [ebp + 0x44]
mov eax, dword [0x4fd1b0]
test eax, eax
je 0x402395
cmp ecx, 0x100
jne 0x402395
cmp edi, 0xd
jne 0x4021e7
push 0
push 0
push 0x1116
push eax
jmp 0x401a17
cmp edi, 0x1b
jne 0x402395
push 0
push 1
push 0x1116
push eax
jmp 0x401a17
mov ecx, dword [ebp + 0x3c]
mov edx, dword [0x4fb960]
mov ebx, dword [ebp + 0x40]
cmp ebx, 0x20a
je 0x402223
cmp ebx, 0x20e
je 0x402223
mov edi, dword [ebp + 0x44]
jmp 0x40239e
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 [0x4fb960]
xor ecx, ecx
mov ebx, eax
test edx, edx
jle 0x402265
mov edi, dword [0x4fb95c]
mov eax, dword [edi + ecx*4]
cmp dword [eax + 4], ebx
je 0x4022c9
inc ecx
cmp ecx, edx
jl 0x402258
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.004017d0
add esp, 8
test eax, eax
jne 0x402392
push dword [ebp + 0x3c]
mov ebx, dword [sym.imp.USER32.dll_GetParent]
call ebx
mov edx, dword [0x4fb960]
xor ecx, ecx
mov esi, dword [0x4fb95c]
test edx, edx
jle 0x4022b7
mov edi, dword [esi + ecx*4]
mov dword [ebp + 0x70], edi
cmp dword [edi + 4], eax
je 0x40231f
inc ecx
cmp ecx, edx
jl 0x4022a7
mov dword [ebp + 0x70], 0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
jmp 0x4023a4
test eax, eax
je 0x402265
mov edi, dword [ebp + 0x34]
cmp esi, dword [ebp + 0x3c]
jne 0x4022f7
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
mov ecx, esi
push edi
call fcn.004017d0
add esp, 8
test eax, eax
jne 0x402265
cmp esi, dword [ebp + 0x3c]
je 0x402265
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
mov ecx, esi
push edi
call fcn.004017d0
add esp, 8
test eax, eax
je 0x402265
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push esi
jmp 0x401a17
test edi, edi
je 0x4022be
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
push dword [edi + 0x3c]
mov ecx, dword [edi + 4]
call fcn.004017d0
add esp, 8
test eax, eax
jne 0x402381
push dword [edi + 4]
call ebx
mov edx, dword [0x4fb960]
xor ecx, ecx
mov esi, dword [0x4fb95c]
test edx, edx
jle 0x4022b7
mov edi, dword [esi + ecx*4]
mov dword [ebp + 0x70], edi
cmp dword [edi + 4], eax
je 0x402375
inc ecx
cmp ecx, edx
jl 0x402356
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
mov dword [ebp + 0x70], 0
jmp 0x4023a4
test edi, edi
jne 0x402323
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
jmp 0x4023a4
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [edi + 4]
jmp 0x401a17
mov edi, dword [ebp + 0x44]
mov edx, dword [0x4fb960]
mov ecx, dword [ebp + 0x3c]
mov esi, dword [0x4fb95c]
xor ebx, ebx
test edx, edx
jle 0x402417
nop word [eax + eax]
mov eax, dword [esi + ebx*4]
lea edi, [esi + ebx*4]
cmp dword [eax + 0x10], 0
jne 0x4023c5
cmp dword [ebp + 0x40], 0x106
je 0x40240a
mov ecx, dword [0x4f898c]
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 0x402548
mov eax, dword [0x4f898c]
mov edx, dword [0x4fb960]
mov esi, dword [0x4fb95c]
mov byte [eax + 0xc8], 0
inc ebx
cmp ebx, edx
jl 0x4023b0
mov ecx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x40]
jmp 0x402422
mov ebx, dword [ebp + 0x40]
jmp 0x402425
mov esi, dword [0x4fb95c]
mov edi, dword [ebp + 0x44]
cmp ebx, 0x400
ja 0x40265c
je case.0x402672.1025
cmp ebx, 0x100
ja 0x402491
je 0x402471
cmp ebx, 0x12
je 0x40245e
cmp ebx, 0x4b
jne case.0x402672.1027
mov dword [0x4fb948], 0
mov byte [ebp + 0x3b], 1
jmp 0x401a1d
push 0
push 4
mov ecx, 0x4fda88
call fcn.0042d8c0
jmp 0x401a1d
cmp ecx, dword [0x4fb944]
jne case.0x402672.1027
cmp edi, 0x1b
jne case.0x402672.1027
push 0
push dword [0x4fb968]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x401a1d
cmp ebx, 0x113
je 0x402559
cmp ebx, 0x312
je case.0x402672.1026
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x403a1e
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4fda50]
jne 0x403a1e
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.004c4262
add esp, 8
test eax, eax
jne 0x403a1e
mov ecx, dword [0x4f898c]
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 0x403a0f
cmp dword [0x4fb964], 0
je 0x402548
mov eax, dword [0x4fa378]
mov ecx, 0x4e3371
test eax, eax
je 0x402541
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [0x4f898c]
mov byte [eax + 0xc8], 0
jmp 0x401a1d
cmp dword [ebp + 0x48], 0
jne case.0x402672.1027
cmp ecx, dword [0x4fb968]
jne case.0x402672.1027
cmp dword [0x4fc440], 0
je 0x40257d
call fcn.00403f10
cmp dword [0x4fe084], 0
je 0x4025a0
call fcn.00403c20
mov edx, dword [ebp + 0x24]
test al, al
movzx ebx, dl
mov eax, 1
cmovne ebx, eax
mov dword [ebp + 0x24], ebx
jmp 0x4025a3
mov ebx, dword [ebp + 0x24]
cmp dword [ebp + 8], 0
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x401a26
cmp edi, 1
jl 0x401a26
call esi
cmp byte [ebp + 0x6b], 0
jne 0x4025d7
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add ecx, edi
cmp ecx, 5
jg 0x401a26
xor ecx, ecx
mov dword [0x4fe0d8], eax
cmp byte [ebp + 0x3a], cl
xorps xmm0, xmm0
mov dword [0x4fe0dc], eax
movzx eax, byte [0x4fb847]
cmovne eax, ecx
movlpd qword [0x4fe0c8], xmm0
mov byte [0x4fb847], al
cmp byte [ebp + 0x39], cl
je 0x402648
sub dword [0x4fb96c], 1
jne 0x402648
cmp dword [0x4fe084], ecx
jne 0x402648
cmp dword [0x4fc440], ecx
jne 0x402648
cmp byte [0x4fb846], cl
je 0x402648
push 9
push dword [0x4fb968]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4fb846]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4fb846], 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.0x402672.1027
movzx eax, byte [eax + 0x403b30]
jmp dword [eax*4 + 0x403b24]
test ecx, ecx
je case.0x402672.1026
cmp ecx, dword [0x4fb968]
jne case.0x402672.1027
lea eax, [ebx - 0x401]
mov dword [ebp + 0x1c], 0
cmp eax, 0x1d
ja case.0x4026a6.1027
movzx eax, byte [eax + 0x403b6c]
jmp dword [eax*4 + 0x403b50]
xor eax, eax
test edx, edx
jle 0x4026c5
mov ebx, dword [esi + eax*4]
mov dword [ebp + 0x70], ebx
mov ebx, dword [ebx + 4]
cmp ebx, ecx
je 0x4026d1
inc eax
cmp eax, edx
jl 0x4026b3
mov dword [ebp + 0x70], 0
jmp case.0x402672.1027
cmp dword [ebp + 0x70], 0
je case.0x402672.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 0x402724
shl esi, 6
add esi, dword [ecx + 0x18]
jmp 0x402726
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.0x402740
jmp dword [eax*4 + 0x403b8c]
mov esi, dword [ecx + 0x2c]
mov dword [ebp + 0x6c], edi
test esi, esi
je 0x401a1d
lea eax, [ecx + 0x3a]
jmp 0x40278a
mov esi, dword [ecx + 0x24]
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x401a1d
lea eax, [ecx + 0x38]
jmp 0x40278a
mov esi, dword [ecx + 0x28]
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x401a1d
lea eax, [ecx + 0x39]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x6c], edi
test eax, eax
je 0x40287e
cmp byte [eax], 0
mov dword [ebp + 0x6c], edi
mov edi, dword [ebp + 0x74]
mov dword [ebp + 0x58], edx
jne 0x401a20
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402ba3
mov esi, dword [ecx + 0x34]
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x401a1d
mov dword [ebp + 0x6c], edi
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402ba3
mov esi, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x68]
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x6c], edi
test esi, esi
je 0x40280d
mov dword [ebp + 0x6c], edi
test ebx, ebx
je 0x402822
push 0
push 0
push 0xffffffffffffffff
push ebx
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x40280d
mov edx, dword [ebp + 0x34]
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402ba3
test ebx, ebx
je 0x402822
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 0x401a1d
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x401a1d
mov eax, dword [ebp + 0x5c]
mov esi, dword [esi + 0xc]
mov al, byte [eax + 5]
test esi, esi
jne 0x402869
test al, 1
je 0x40285e
test ebx, ebx
je 0x40285e
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 0x401a1d
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], edx
test al, 4
jne 0x401a1d
mov byte [ebp + 0x63], 1
mov dword [ebp + 0x6c], edi
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402ba3
test edi, edi
je 0x4028bf
xor eax, eax
test edx, edx
jle 0x4028a2
mov ebx, dword [esi + eax*4]
mov dword [ebp + 0x70], ebx
cmp dword [ebx + 4], edi
je 0x4028b9
inc eax
cmp eax, edx
jl 0x402892
xor ebx, ebx
mov dword [ebp + 0x70], ebx
test ecx, ecx
je 0x4028c4
cmp ecx, dword [0x4fb968]
jne case.0x402672.1027
jmp 0x4028c4
test ebx, ebx
jne 0x4028c4
jmp 0x4028a7
xor ebx, ebx
mov dword [ebp + 0x70], ebx
mov ecx, dword [0x4fe088]
test ecx, ecx
je 0x4028f6
mov eax, dword [ebp + 0x48]
mov edi, dword [ecx + 4]
mov dword [ebp + 4], edi
test edi, edi
je 0x4028ef
nop dword [eax + eax]
cmp dword [edi + 0x14], eax
je 0x402902
mov edi, dword [edi + 0x20]
mov dword [ebp + 4], edi
test edi, edi
jne 0x4028e0
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
jne 0x4028d1
mov dword [ebp + 4], 0
jmp 0x401a1d
mov esi, dword [edi + 8]
test esi, esi
je 0x401a1d
mov edi, dword [edi + 0x18]
jmp 0x402ba6
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp edi, dword [0x4fc43c]
jae 0x401a11
mov eax, dword [0x4fc438]
mov ebx, dword [eax + edi*4]
mov dword [ebp], ebx
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x40295c
mov edx, dword [ebx + 4]
call fcn.00413700
mov edi, dword [ebp + 0x74]
mov dword [ebp + 0x28], eax
test eax, eax
je 0x401a26
mov eax, dword [ebx + 0x10]
mov al, byte [eax]
cmp al, 1
je 0x402963
cmp al, 3
je 0x402963
mov dword [ebp + 0x28], 0
push dword [ebp + 0x48]
mov ecx, ebx
call fcn.00416490
cmp dword [ebx + 0xc], 0
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x401a26
movzx eax, byte [ebp + 0x48]
xor ecx, ecx
cmp byte [ebx + 0x2a], cl
cmovne ecx, eax
mov byte [0x4fe09c], cl
mov esi, dword [ebx]
mov edi, dword [ebx + 0x14]
jmp 0x402ba3
cmp byte [0x4fe070], 0
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x401a26
mov esi, dword [0x4fe064]
test esi, esi
cmove esi, dword [0x4fde18]
xor edi, edi
jmp 0x402ba3
mov ecx, edi
call fcn.004536c0
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 0x401a26
mov esi, dword [ecx + 8]
xor edi, edi
mov esi, dword [esi + 0x35c]
jmp 0x402ba3
mov ecx, dword [0x4fb958]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
je 0x401a11
nop dword [eax]
cmp ecx, edi
je 0x402a23
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
jne 0x402a10
jmp 0x401a1d
mov esi, dword [ecx + 8]
cmp ebx, 0x41c
jne 0x402a36
mov esi, dword [esi + 0x360]
jmp 0x402a4c
cmp ebx, 0x41e
jne 0x402a46
mov esi, dword [esi + 0x368]
jmp 0x402a4c
mov esi, dword [esi + 0x364]
mov edi, dword [ebp + 0x74]
test esi, esi
je 0x401a20
xor edi, edi
jmp 0x402ba3
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, edi
and eax, 0x7fff
cmp ax, word [0x4fc454]
jae 0x401a11
mov ecx, eax
shr edi, 0x10
mov eax, dword [0x4fc444]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x10], edx
test di, di
je 0x402ab5
mov esi, dword [edx + 0x20]
add edi, 0xffff
mov dword [ebp + 0x10], esi
test di, di
je 0x402ab1
nop
mov esi, dword [esi + 8]
add edi, 0xffff
test di, di
jne 0x402aa0
mov dword [ebp + 0x10], esi
test esi, esi
jne 0x402aec
cmp ebx, 0x400
jne 0x402acc
mov eax, dword [ebp + 0x48]
mov ecx, 0xffc3d44d
shr eax, 0x10
sub ecx, eax
jmp 0x402ace
xor ecx, ecx
push 0
push ecx
lea eax, [ebp + 0x28]
mov ecx, edx
push eax
call fcn.00414100
mov edi, dword [ebp + 0x74]
mov esi, eax
mov dword [ebp + 0x10], esi
test esi, esi
je 0x401a20
mov eax, dword [0x51f88c]
mov edx, dword [esi]
test al, 1
jne 0x402b0c
or dword [0x51f88c], 1
mov ecx, 0x51f890
push 0
push 0
call fcn.0042b9c0
mov eax, dword [0x4fde18]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x402b1f
cmp ecx, dword [0x51f890]
jne 0x402b2a
mov eax, dword [edx + 8]
test eax, eax
je 0x402b2a
mov cl, byte [eax]
jmp 0x402b2c
xor cl, cl
mov al, byte [esi + 0x16]
cmp al, byte [esi + 0x17]
jb 0x402b75
cmp cl, 0xe2
je 0x402b75
cmp cl, 0xce
je 0x402b75
cmp cl, 0xdc
je 0x402b75
cmp cl, 0xdd
je 0x402b75
cmp cl, 0xd8
je 0x402b75
cmp cl, 0xd9
je 0x402b75
cmp cl, 0xda
je 0x402b75
cmp cl, 0xdb
je 0x402b75
cmp byte [esi + 0x1a], 0
je 0x402b66
mov byte [esi + 0x1b], 1
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov dword [esi + 0xc], eax
jmp 0x401a1d
mov eax, dword [esi + 4]
test eax, eax
je 0x402b94
mov al, byte [eax]
cmp al, 2
je 0x402b94
cmp al, 4
je 0x402b94
cmp al, 5
jb 0x402b9b
mov eax, dword [0x4fb954]
mov dword [ebp + 0x28], eax
jmp 0x402b9b
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 [0x51f88c]
test al, 1
jne 0x402bca
or dword [0x51f88c], 1
mov ecx, 0x51f890
push 0
push 0
call fcn.0042b9c0
mov eax, dword [0x4fde18]
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x402bdd
cmp ecx, dword [0x51f890]
jne 0x402bea
mov eax, esi
mov eax, dword [eax + 8]
test eax, eax
je 0x402bea
mov cl, byte [eax]
jmp 0x402bec
xor cl, cl
mov edx, dword [0x4fb950]
mov eax, dword [0x4f8988]
mov byte [ebp - 0x14], cl
cmp edx, eax
jl 0x402c69
add eax, 2
cmp edx, eax
jge 0x402c2d
cmp cl, 0xe2
je 0x402c69
cmp cl, 0xce
je 0x402c69
cmp cl, 0xdc
je 0x402c69
cmp cl, 0xdd
je 0x402c69
cmp cl, 0xd8
je 0x402c69
cmp cl, 0xd9
je 0x402c69
cmp cl, 0xda
je 0x402c69
cmp cl, 0xdb
je 0x402c69
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x402c42
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 0x401a26
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x401a1d
mov eax, dword [0x4f898c]
cmp edi, dword [eax + 0x2c]
jl 0x402c2d
mov ecx, dword [ebp + 0x40]
mov byte [ebp + 0x24], 1
lea eax, [ecx - 0x402]
cmp eax, 0x1c
ja case.0x402c8c.1027
movzx eax, byte [eax + 0x403bac]
jmp dword [eax*4 + 0x403ba0]
mov ebx, dword [ebp + 4]
push 0x104
push dword [ebx]
push 0x4fde20
call fcn.004cc440
mov byte [0x4fdf24], 0
mov eax, dword [ebx + 0x10]
push 0x104
push dword [eax]
push 0x4fdf25
call fcn.004cc440
add esp, 0x18
mov byte [0x4fe029], 0
mov dword [0x4fde1c], ebx
jmp case.0x402c8c.1044
mov eax, dword [0x4fe02c]
mov dword [0x4fe030], eax
mov eax, dword [0x4fe094]
mov dword [0x4fe098], eax
cmp ecx, 0x401
jne 0x402cf8
mov eax, dword [ebp]
mov eax, dword [eax + 4]
jmp 0x402cfe
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x1c]
mov dword [0x4fe02c], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov dword [0x4fe094], eax
mov ecx, dword [0x4fb94c]
push 0
push 1
call fcn.00401670
push 0x7f
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.004cc440
push dword [ebp - 0x14]
xor dl, dl
mov byte [ebp - 0x19d], 0
push 1
mov ecx, edi
call fcn.004044a0
mov ebx, dword [0x4f898c]
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4fe0dc], eax
mov dword [0x4fe0d8], eax
mov eax, dword [ebp + 0x40]
add eax, 0xfffffbff
cmp eax, 0x1d
ja case.0x402d73.1027
movzx eax, byte [eax + 0x403bec]
jmp dword [eax*4 + 0x403bcc]
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 0x402da2
mov eax, dword [edx]
jmp 0x402da5
mov eax, dword [edi + 4]
push eax
call fcn.00404aa0
mov ecx, dword [ebp + 0x30]
lea eax, [ecx - 5]
cmp eax, 4
ja case.default.0x402dba
jmp dword [eax*4 + 0x403c0c]
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 0x402e8f
cmp dword [ebp + 0x34], 0
je 0x402e06
push edi
push ecx
call fcn.00496cd0
mov edx, dword [ebx + 0x34]
mov ecx, dword [ebp + 0x5c]
movzx eax, byte [ecx + 4]
sub eax, 9
je 0x402e7a
sub eax, 1
je 0x402e6f
sub eax, 1
jne 0x402e8f
cmp edx, 1
jne 0x402e30
push eax
push 9
push 0x110a
push dword [ecx]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x402e8c
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 0x402e8c
push 1
push 0xffffffffffffffff
push 0x100c
jmp 0x402e83
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 0x402ed3
push dword [eax]
call fcn.00404aa0
jmp 0x402ee0
mov dword [ecx + 8], 0
mov dword [ecx], 0x4e3371
push dword [ebp + 0x6c]
lea ecx, [ebp - 0x88]
add ecx, edx
call fcn.00404aa0
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.00404a80
push dword [ebx + 0x3c]
lea ecx, [ebp - 0x88]
add ecx, edi
mov edi, dword [ebp + 0x64]
call fcn.00404a80
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.00404a80
mov edx, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x6c]
cmp byte [ebp + 0x63], 0
je 0x403311
mov edi, dword [ebp + 0x5c]
cmp byte [edi + 4], 0x17
jne 0x403311
push 0x10b0
lea eax, [ebp - 0x12cc]
push 0
push eax
call fcn.004c22a0
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 0x403364
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], 0x4e33ec
push 0xffffffffffffffff
call fcn.004a8ef0
add esp, 0xc
mov dword [ebp - 4], 1
mov ecx, 0x4e3371
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x402ffb
mov eax, dword [edi]
test eax, eax
cmovne ecx, eax
push 1
push 0
push 0xffffffffffffffff
push ecx
mov ecx, dword [0x4fb94c]
call fcn.004b01a0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x20], vtable.CKuStringT_char__class_CKuStringUtilA_.0
test edi, edi
je 0x403048
mov eax, dword [edi + 0x10]
add eax, 0xffffffff
mov dword [edi + 0x10], eax
jne 0x403048
mov edi, dword [ebp - 0x1c]
mov eax, dword [edi + 4]
test eax, eax
je 0x40303d
push eax
call fcn.004c4247
add esp, 4
push 0x14
push edi
call fcn.004c0915
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 [0x4fb94c]
push 1
call fcn.00401670
mov dword [edi + 8], 0
mov dword [edi], eax
jmp 0x403364
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.00486e70
mov dword [ebp + edi - 0x98], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + edi - 0x90], 6
test eax, eax
je 0x4030fc
push dword [eax]
lea ecx, [ebp - 0x88]
add ecx, edi
call fcn.00404aa0
jmp 0x40310f
mov dword [ebp + edi - 0x80], 0
mov dword [ebp + edi - 0x88], 0x4e3371
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 0x403136
push dword [0x4fda58]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
lea ecx, [ebp - 0x98]
push eax
add ecx, edi
call fcn.00404a80
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 0x40316e
push dword [0x4fda58]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
mov ecx, edi
jmp 0x402f37
mov dword [ebx + 0x34], 1
cmp ecx, 8
jne 0x402f3c
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 0x4031d8
push dword [0x4fda58]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
mov ecx, edi
call fcn.00404a80
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 0x403153
mov al, byte [edx + 4]
cmp al, 0xa
je 0x40325f
cmp al, 0x19
jne 0x40323a
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 0x4032d2
mov edx, dword [edx*4 + 0x4eff48]
jmp 0x4032dd
cmp cl, 0x49
jne 0x40323a
lea eax, [ebp - 0x30]
test ecx, 0x100
je 0x403275
mov byte [ebp - 0x30], 0x53
jmp 0x403281
test ecx, 0x200
je 0x403284
mov byte [ebp - 0x30], 0x73
lea eax, [ebp - 0x2f]
test ecx, 0x400
je 0x403291
mov byte [eax], 0x46
jmp 0x40329c
test ecx, 0x800
je 0x40329d
mov byte [eax], 0x66
inc eax
test ecx, 0x1000
je 0x4032aa
mov byte [eax], 0x43
jmp 0x4032b5
test ecx, 0x2000
je 0x4032b6
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 [0x51f598], dl
mov edx, 0x51f598
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 0x402f42
cmp byte [ebp - 0x30], 0
je 0x403334
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 0x403358
cmp eax, 5
je 0x403358
mov ecx, dword [0x4fb94c]
lea eax, [ebp - 0x30]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004b01a0
jmp 0x403364
push ecx
mov ecx, dword [0x4fb94c]
call fcn.004015e0
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 0x403470
mov byte [eax], 1
mov ebx, dword [ebp + 0x5c]
mov ecx, dword [0x4fa314]
cmp ecx, dword [0x4fa318]
jne 0x4033b0
call fcn.004065b0
mov ecx, dword [0x4fa314]
cmp ecx, dword [0x4fa310]
jb 0x4033c5
mov eax, dword [0x4fde14]
mov dword [ecx], eax
mov ecx, dword [0x4fa314]
push 0
add ecx, 0xc
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0x64]
mov dword [0x4fa314], ecx
lea eax, [ebp - 0x98]
push eax
mov dword [ecx], 0
mov edx, esi
mov dword [ecx + 4], 0x4e337c
mov dword [ecx + 8], 0
mov ecx, esi
push str.call
call fcn.0049a410
sub dword [0x4fa314], 0xc
add esp, 0x14
cmp dword [edi + 4], 0
je 0x4034ce
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x403486
mov byte [eax], 0
mov eax, dword [ebp + 0x30]
cmp eax, 6
jne 0x403493
cmp dword [ebp - 0x38], 0
jne 0x4034ce
mov eax, dword [0x51f88c]
test al, 1
jne 0x40344f
push 0
or eax, 1
mov ecx, 0x51f890
push 0
mov dword [0x51f88c], eax
call fcn.0042b9c0
mov eax, dword [0x4fde18]
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x40345e
test esi, esi
jne 0x4034ce
mov eax, dword [edi + 4]
test eax, eax
je 0x4034ce
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x4034ce
cmp byte [ebp + 0x63], 0
je 0x403394
mov ebx, dword [ebp + 0x5c]
or byte [ebx + 5], 4
jmp 0x403397
cmp byte [ebp + 0x63], 0
mov eax, dword [ebp + 0x30]
je 0x403493
and byte [ebx + 5], 0xfb
cmp eax, 5
jne 0x4034ce
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 0x4039b2
push dword [edi]
call fcn.004c4247
push 0xd8
push edi
call fcn.004c0915
add esp, 0xc
jmp 0x4039b2
mov edi, dword [ebp + 0x70]
test edi, edi
je 0x403513
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, 0x4fda88
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x16c], 0x4fde20
call fcn.004670f0
inc eax
lea ecx, [ebp - 0x15c]
push 0
push eax
call fcn.004049d0
mov ecx, dword [0x4fa314]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x14c], 0x4fdf25
cmp ecx, dword [0x4fa318]
jne 0x40356d
call fcn.004065b0
mov ecx, dword [0x4fa314]
cmp ecx, dword [0x4fa310]
jb 0x403582
mov eax, dword [0x4fde14]
mov dword [ecx], eax
mov ecx, dword [0x4fa314]
add ecx, 0xc
lea eax, [ebp - 0x16c]
push 0
push 0
mov dword [0x4fa314], ecx
mov edx, esi
push 3
push eax
mov dword [ecx], 0
mov dword [ecx + 4], str.Menu
mov dword [ecx + 8], 0
mov ecx, esi
push str.call
call fcn.0049a410
sub dword [0x4fa314], 0xc
add esp, 0x14
test edi, edi
je 0x4039b2
jmp 0x4034ce
mov edi, dword [ebp]
mov eax, dword [ebp + 0x28]
mov dword [ebx + 0xa4], eax
mov al, byte [edi + 0x21]
mov byte [ebx + 0xd6], al
mov eax, dword [0x51f88c]
mov edx, dword [edi]
test al, 1
jne 0x403607
push 0
or eax, 1
mov ecx, 0x51f890
push 0
mov dword [0x51f88c], eax
call fcn.0042b9c0
mov eax, dword [0x4fde18]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x40361a
cmp ecx, dword [0x51f890]
jne 0x403625
mov eax, dword [edx + 8]
test eax, eax
je 0x403625
mov cl, byte [eax]
jmp 0x403627
xor cl, cl
mov al, byte [edi + 0x24]
cmp al, byte [edi + 0x25]
jb 0x40365b
cmp cl, 0xe2
je 0x40365b
cmp cl, 0xce
je 0x40365b
cmp cl, 0xdc
je 0x40365b
cmp cl, 0xdd
je 0x40365b
cmp cl, 0xd8
je 0x40365b
cmp cl, 0xd9
je 0x40365b
cmp cl, 0xda
je 0x40365b
cmp cl, 0xdb
jne 0x4039b2
mov byte [0x4fe09d], 0
inc byte [edi + 0x24]
mov ecx, dword [0x4fa314]
mov esi, dword [0x4fe02c]
cmp ecx, dword [0x4fa318]
jne 0x403684
call fcn.004065b0
mov ecx, dword [0x4fa314]
cmp ecx, dword [0x4fa310]
jb 0x403699
mov eax, dword [0x4fde14]
mov dword [ecx], eax
mov ecx, dword [0x4fa314]
add ecx, 0xc
push 0
push 0
mov dword [0x4fa314], ecx
push 0
mov dword [ecx], 0
mov dword [ecx + 4], esi
mov dword [ecx + 8], 0
mov ecx, dword [edi]
mov edx, ecx
push 0
push str.call
call fcn.0049a410
sub dword [0x4fa314], 0xc
add esp, 0x14
dec byte [edi + 0x24]
jmp 0x4039b2
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
je 0x403708
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x403701
push 0xf
call esi
test eax, eax
jne 0x403701
mov eax, 2
jmp 0x40370a
mov eax, 1
jmp 0x40370a
xor eax, eax
mov ecx, dword [0x4fb94c]
push eax
mov dword [ebx + 0x38], eax
call fcn.004015e0
push 0
push dword [ebx + 0x38]
lea ecx, [ebp - 0x13c]
call fcn.004049d0
mov ecx, dword [0x4fa314]
mov byte [0x4fe070], 1
cmp ecx, dword [0x4fa318]
jne 0x403749
call fcn.004065b0
mov ecx, dword [0x4fa314]
cmp ecx, dword [0x4fa310]
jb 0x40375e
mov eax, dword [0x4fde14]
mov dword [ecx], eax
mov ecx, dword [0x4fa314]
add ecx, 0xc
mov dword [0x4fa314], ecx
mov dword [ecx], 0
mov dword [ecx + 4], str.OnClipboardChange
mov dword [ecx + 8], 0
mov ecx, dword [0x4fe064]
test ecx, ecx
je 0x403790
call fcn.00401730
mov ecx, dword [0x4fe064]
cmp dword [ebp + 0x44], 0
jne 0x4037b1
xor eax, eax
test ecx, ecx
mov ecx, 0x4fe044
sete al
push eax
push 1
lea eax, [ebp - 0x13c]
push eax
call fcn.0049d9b0
sub dword [0x4fa314], 0xc
mov byte [0x4fe070], 0
jmp 0x4039b2
mov ebx, dword [ebp + 0x2c]
mov ecx, dword [0x4fa314]
mov dword [ebp - 0x104], 6
mov eax, dword [ebx + 8]
mov dword [ebp - 0x10c], eax
cmp ecx, dword [0x4fa318]
jne 0x4037f3
call fcn.004065b0
mov ecx, dword [0x4fa314]
cmp ecx, dword [0x4fa310]
jb 0x403808
mov eax, dword [0x4fde14]
mov dword [ecx], eax
mov ecx, dword [0x4fa314]
add ecx, 0xc
lea eax, [ebp - 0x10c]
push 0
push 0
mov dword [0x4fa314], ecx
mov edx, esi
push 1
push eax
mov dword [ecx], 0
mov dword [ecx + 4], str.InputHook
mov dword [ecx + 8], 0
mov ecx, esi
push str.call
call fcn.0049a410
sub dword [0x4fa314], 0xc
add esp, 0x14
mov eax, dword [ebx + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x4039b2
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.004049d0
sar ebx, 0x10
lea ecx, [ebp - 0x17c]
movzx eax, bx
cdq
push edx
push eax
call fcn.004049d0
mov ecx, dword [0x4fa314]
cmp ecx, dword [0x4fa318]
jne 0x4038af
call fcn.004065b0
mov ecx, dword [0x4fa314]
cmp ecx, dword [0x4fa310]
jb 0x4038c4
mov eax, dword [0x4fde14]
mov dword [ecx], eax
mov ecx, dword [0x4fa314]
push 0
push 0
push 3
lea eax, [ebp - 0x19c]
add ecx, 0xc
mov edx, esi
mov dword [0x4fa314], ecx
push eax
push str.call
mov dword [ecx + 8], 0
mov dword [ecx + 4], str.InputHook
mov dword [ecx], 0
mov ecx, esi
call fcn.0049a410
add esp, 0x14
sub dword [0x4fa314], 0xc
jmp 0x4039b2
mov eax, dword [ebp + 0x48]
mov ecx, dword [0x4fa314]
mov byte [ebp + 0x18], al
sar eax, 0x10
mov byte [ebp + 0x19], al
mov eax, dword [ebp + 0x2c]
mov byte [ebp + 0x1a], 0
mov dword [ebp - 0x124], 6
mov dword [ebp - 0x114], 0
mov eax, dword [eax + 8]
mov dword [ebp - 0x12c], eax
lea eax, [ebp + 0x18]
mov dword [ebp - 0x11c], eax
cmp ecx, dword [0x4fa318]
jne 0x40395d
call fcn.004065b0
mov ecx, dword [0x4fa314]
cmp ecx, dword [0x4fa310]
jb 0x403972
mov eax, dword [0x4fde14]
mov dword [ecx], eax
mov ecx, dword [0x4fa314]
push 0
push 0
push 2
lea eax, [ebp - 0x12c]
jmp 0x4038d0
mov edx, dword [ebp - 0x10]
mov al, byte [edx + 0x10]
add al, 0x64
cmp al, 3
ja 0x403995
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.00414410
lea ecx, [ebp - 0x21c]
call fcn.004045b0
cmp dword [ebp + 8], 0
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x401a26
call esi
cmp byte [ebp + 0x6b], 0
jne 0x4039e8
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add ecx, edi
cmp ecx, 5
jg 0x401a26
cmp edi, 0xffffffff
jle 0x4039fd
xorps xmm0, xmm0
mov dword [0x4fe0d8], eax
movlpd qword [0x4fe0c8], xmm0
mov dword [0x4fe0dc], eax
mov byte [ebp + 0x3b], 1
mov byte [ebp + 0x6b], 1
jmp 0x401a26
mov ecx, dword [0x4f898c]
mov byte [ecx + 0xc8], 0
jmp 0x403a24
mov ecx, dword [0x4f898c]
mov eax, dword [0x4fb940]
test eax, eax
je 0x403a55
lea ecx, [ebp + 0x3c]
push ecx
push eax
push dword [0x4fb968]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
test eax, eax
jne 0x401a26
mov ecx, dword [0x4f898c]
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 [0x4f898c]
mov byte [eax + 0xc8], 0
jmp 0x401a1d
cmp edi, 0xffffffff
jle 0x403a9f
xorps xmm0, xmm0
mov dword [0x4fe0d8], eax
movlpd qword [0x4fe0c8], xmm0
xor ecx, ecx
mov dword [0x4fe0dc], eax
cmp byte [ebp + 0x3a], cl
movzx eax, byte [0x4fb847]
cmovne eax, ecx
mov byte [0x4fb847], al
cmp byte [ebp + 0x39], cl
je 0x403b0a
mov eax, dword [0x4fb96c]
dec eax
mov dword [0x4fb96c], eax
test edi, edi
jle 0x403b0a
test eax, eax
jne 0x403b0a
cmp dword [0x4fe084], ecx
jne 0x403b0a
cmp dword [0x4fc440], ecx
jne 0x403b0a
cmp byte [0x4fb846], cl
je 0x403b0a
push 9
push dword [0x4fb968]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4fb846]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4fb846], 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