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 0x4b4975
mov eax, dword fs:[0]
push eax
mov eax, 0x12c8
mov dword fs:[0], esp
call fcn.004b4520
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 [0x4ca633], 0
mov edi, 1
mov dword [ebp + 8], edi
jne 0x401789
mov byte [0x4ca633], 1
mov byte [ebp + 0x3a], 1
cmp dword [0x4cc844], 0
je 0x4017cb
cmp dword [0x4cc834], 0
je 0x4017b1
push dword [0x4cc82c]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x4cc834], 0
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x4cc844], 0
mov dword [0x4cc82c], 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 [0x4cb204], 0
je 0x401811
call fcn.00403b40
xor bl, bl
cmp dword [0x4cce44], 0
mov dword [ebp + 0x24], ebx
je 0x401834
call fcn.004038a0
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 [0x4ca758]
cmp byte [0x4ca632], 0
mov byte [ebp + 0x39], 1
jne 0x401871
push 0
push 0xa
push 9
push dword [0x4ca754]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4ca632]
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.004046c0
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 [0x4ca633], 0
jne 0x401a46
cmp dword [0x4c801c], 0
je 0x401932
cmp dword [0x4ca63c], 0
jne 0x401932
mov ecx, dword [0x4c8024]
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 [0x4c8024]
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 [0x4cce90], eax
inc dword [ebp + 0x14]
cmp dword [0x4cc824], 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.00403c10
add esp, 0x10
test al, al
jne 0x4018b6
mov edx, dword [0x4ca74c]
mov ecx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x40]
test edx, edx
je 0x4022bc
test ecx, ecx
je 0x4022bc
cmp ecx, dword [0x4ca754]
je 0x4022bc
cmp ebx, 0x414
je 0x4022bc
cmp ebx, 0x402
je 0x4022bc
lea eax, [ebx - 0x100]
cmp eax, 9
ja 0x40209c
call dword [sym.imp.USER32.dll_GetFocus]
mov ebx, eax
mov dword [ebp + 0x34], ebx
test ebx, ebx
je 0x402090
push 0xfffffffffffffff0
push ebx
mov esi, ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x40000000
je 0x401d0f
push esi
mov edi, esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
test esi, esi
je 0x401d05
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x40000000
jne 0x401a11
jmp 0x401d0f
cmp byte [0x4ca633], 0
je 0x401c01
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x401bfb
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4cc810]
jne 0x401bfb
cmp dword [0x4ca750], 0
je 0x401aa1
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 dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscmp]
add esp, 8
test eax, eax
je 0x401af5
jmp 0x401aa7
mov esi, dword [sym.imp.USER32.dll_GetClassNameA]
call dword [sym.imp.USER32.dll_GetFocus]
test eax, eax
je 0x401bfb
push 0x20
lea ecx, [ebp - 0xcc]
push ecx
push eax
call esi
mov esi, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsicmp]
lea eax, [ebp - 0xcc]
push str.SysTreeView32
push eax
call esi
add esp, 8
test eax, eax
je 0x401af5
lea eax, [ebp - 0xcc]
push str.SysListView32
push eax
call esi
add esp, 8
test eax, eax
jne 0x401bfb
cmp dword [0x4c801c], 0
je 0x401b53
cmp dword [0x4ca63c], 0
jne 0x401b53
mov ecx, dword [0x4c8024]
cmp byte [ecx + 0xcc], 0
jne 0x401b4a
cmp byte [ecx + 0xce], 0
jne 0x401b4a
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401b4a
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov ecx, dword [0x4c8024]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401b4a
mov byte [ecx + 0xcc], 1
movzx eax, byte [ecx + 0xcc]
jmp 0x401b55
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 0x401b8d
push 1
push esi
push 0x20e
jmp 0x401c6f
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 0x401bc0
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 0x401c78
mov eax, dword [ebp + 0x4c]
sub eax, edi
test eax, eax
lea eax, [ebp + 0x3c]
jle 0x401be4
push 0x1ff
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [ebp + 0x74]
jmp 0x401c78
push esi
push 0x20e
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [ebp + 0x74]
jmp 0x401c78
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x4c801c], 0
je 0x401c5a
cmp dword [0x4ca63c], 0
jne 0x401c5a
mov ecx, dword [0x4c8024]
cmp byte [ecx + 0xcc], 0
jne 0x401c51
cmp byte [ecx + 0xce], 0
jne 0x401c51
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401c51
call esi
mov ecx, dword [0x4c8024]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401c51
mov byte [ecx + 0xcc], 1
movzx ecx, byte [ecx + 0xcc]
jmp 0x401c5c
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 [0x4cce90]
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
cmova edx, eax
mov dword [0x4cce90], edx
test edi, edi
jne 0x401cb8
cmp byte [ebp + 0x38], 0
jne 0x401cb8
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp + 0x38], 1
jmp 0x4018b6
cmp dword [ebp + 0x14], 0
jne 0x401cdc
cmp byte [ebp + 0x6b], 0
je 0x401cdc
test edi, edi
jle 0x401cd0
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp + 0x14], 1
jmp 0x4018b6
call esi
cmp byte [ebp + 0x6b], 0
jne 0x40370a
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add ecx, edi
cmp ecx, 5
jle 0x40370a
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4018b6
mov esi, edi
test edi, edi
je 0x402090
mov ecx, ebx
call fcn.004765d0
mov edi, eax
mov dword [ebp + 0x70], edi
test edi, edi
je 0x402090
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x401d44
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 0x402048
cmp byte [edi + 0xc0], 0
mov edi, dword [ebp + 0x44]
je 0x401f44
cmp edi, 0x22
je 0x401d80
cmp edi, 0x21
je 0x401d80
cmp edi, 9
je 0x401d80
cmp edi, 0x25
je 0x401d80
cmp edi, 0x27
jne 0x401f44
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 0x401dab
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov edi, eax
test edi, edi
je 0x401dab
push edi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea esi, [eax - 3]
mov ebx, dword [ebp + 0x70]
cmp esi, dword [ebx + 0x10]
jae 0x401f28
mov ecx, esi
shl ecx, 6
add ecx, dword [ebx + 0x18]
mov dword [ebp + 0x5c], ecx
cmp dword [ecx], edi
jne 0x401f28
cmp esi, 0x2af8
je 0x401f28
test ecx, ecx
je 0x401f2f
mov al, byte [ecx + 4]
cmp al, 0xf
je 0x401f2f
mov edi, dword [ebp + 0x44]
xor esi, esi
cmp al, 0x13
jne 0x401e19
mov esi, ecx
cmp edi, 0x25
je 0x401dfe
cmp edi, 0x27
jne 0x401e19
cmp edi, 0x27
push 0
sete al
push 0
movzx eax, al
push eax
push ecx
mov ecx, ebx
call fcn.00488af0
jmp 0x4018ad
cmp edi, 0x25
je 0x401f32
cmp edi, 0x27
je 0x401f32
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x401f2f
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
cmp edi, 9
jne 0x401e67
cmp byte [eax + 4], 0xc
jne 0x401e67
push 0xfffffffffffffff0
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 4
jne 0x401f2f
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
test esi, esi
jne 0x401eab
mov bl, byte [eax + 6]
cmp bl, 0xff
je 0x401ee7
mov esi, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [esi + 0x10]
test edx, edx
je 0x401ee7
mov esi, dword [esi + 0x18]
cmp byte [esi + 4], 0x13
jne 0x401e90
cmp al, bl
je 0x401ea4
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x401e84
mov ebx, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [ebx + 0x10]
jmp 0x401ef5
test esi, esi
je 0x401ee7
mov ebx, dword [ebp + 0x70]
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x401f2f
mov eax, dword [ebp + 0x44]
cmp eax, 0x22
je 0x401f14
cmp eax, 9
jne 0x401ed3
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x401f14
push 1
push 1
xor al, al
mov ecx, ebx
push eax
push esi
call fcn.00488af0
jmp 0x4018ad
mov ebx, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x401f32
mov esi, dword [ebx + 0x18]
cmp byte [esi + 4], 0x13
jne 0x401f04
test al, al
je 0x401f0e
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x401ef8
jmp 0x401f32
test esi, esi
je 0x401f32
jmp 0x401eab
push 1
push 1
mov al, 1
mov ecx, ebx
push eax
push esi
call fcn.00488af0
jmp 0x4018ad
mov dword [ebp + 0x5c], 0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x40]
cmp ecx, 0x100
jne 0x40204b
mov ebx, dword [ebp + 0x34]
cmp edi, 0x1b
je 0x401f7e
cmp edi, 9
je 0x401f7e
cmp edi, 0x41
jne 0x40204b
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
bt ax, 0xf
jae 0x402045
push 0xa5
call esi
bt ax, 0xf
jb 0x402045
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov edi, dword [ebp + 0x70]
lea esi, [eax - 3]
cmp esi, dword [edi + 0x10]
jb 0x401fb0
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov ebx, eax
test ebx, ebx
je 0x401fa7
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea esi, [eax - 3]
cmp esi, dword [edi + 0x10]
jae 0x40203e
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 0x40203e
cmp esi, 0x2af8
je 0x40203e
test eax, eax
je 0x402045
cmp byte [eax + 4], 0xc
jne 0x402045
mov edi, dword [ebp + 0x44]
cmp edi, 0x1b
je 0x402011
mov al, byte [eax + 5]
cmp edi, 0x41
je 0x401fff
test al, al
jns 0x401ffa
push 0x4b6bec
push 1
push 0xc2
jmp 0x4018a6
mov ecx, dword [ebp + 0x40]
jmp 0x40204b
test al, 2
jne 0x401ffa
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 [0x4cbf70]
test eax, eax
je 0x402232
cmp ecx, 0x100
jne 0x402232
cmp edi, 0xd
jne 0x402078
push 0
push 0
push 0x1116
push eax
jmp 0x4018a7
cmp edi, 0x1b
jne 0x402232
push 0
push 1
push 0x1116
push eax
jmp 0x4018a7
mov ecx, dword [ebp + 0x3c]
mov edx, dword [0x4ca74c]
mov ebx, dword [ebp + 0x40]
cmp ebx, 0x20a
je 0x4020b4
cmp ebx, 0x20e
je 0x4020b4
mov edi, dword [ebp + 0x44]
jmp 0x40223b
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 [0x4ca74c]
xor ecx, ecx
mov ebx, eax
test edx, edx
jle 0x4020fd
mov edi, dword [0x4ca748]
nop dword [eax]
mov eax, dword [edi + ecx*4]
cmp dword [eax + 4], ebx
je 0x402162
inc ecx
cmp ecx, edx
jl 0x4020f0
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 0x40222f
push dword [ebp + 0x3c]
mov ebx, dword [sym.imp.USER32.dll_GetParent]
call ebx
mov edx, dword [0x4ca74c]
xor ecx, ecx
mov esi, dword [0x4ca748]
test edx, edx
jle 0x402150
nop
mov edi, dword [esi + ecx*4]
mov dword [ebp + 0x70], edi
cmp dword [edi + 4], eax
je 0x4021b8
inc ecx
cmp ecx, edx
jl 0x402140
mov dword [ebp + 0x70], 0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
jmp 0x402241
test eax, eax
je 0x4020fd
mov edi, dword [ebp + 0x34]
cmp esi, dword [ebp + 0x3c]
jne 0x402190
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
mov ecx, esi
push edi
call fcn.00401660
add esp, 8
test eax, eax
jne 0x4020fd
cmp esi, dword [ebp + 0x3c]
je 0x4020fd
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
mov ecx, esi
push edi
call fcn.00401660
add esp, 8
test eax, eax
je 0x4020fd
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push esi
jmp 0x4018a7
test edi, edi
je 0x402157
nop dword [eax]
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 0x40221e
push dword [edi + 4]
call ebx
mov edx, dword [0x4ca74c]
xor ecx, ecx
mov esi, dword [0x4ca748]
test edx, edx
jle 0x402150
mov edi, dword [esi + ecx*4]
mov dword [ebp + 0x70], edi
cmp dword [edi + 4], eax
je 0x402212
inc ecx
cmp ecx, edx
jl 0x4021f3
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
mov dword [ebp + 0x70], 0
jmp 0x402241
test edi, edi
jne 0x4021c0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
jmp 0x402241
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 [0x4ca74c]
mov ecx, dword [ebp + 0x3c]
mov esi, dword [0x4ca748]
xor ebx, ebx
test edx, edx
jle 0x4022b7
nop word [eax + eax]
mov eax, dword [esi + ebx*4]
lea edi, [esi + ebx*4]
cmp dword [eax + 0x10], 0
jne 0x402265
cmp dword [ebp + 0x40], 0x106
je 0x4022aa
mov ecx, dword [0x4c8024]
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 0x4023e9
mov eax, dword [0x4c8024]
mov edx, dword [0x4ca74c]
mov esi, dword [0x4ca748]
mov byte [eax + 0xc8], 0
inc ebx
cmp ebx, edx
jl 0x402250
mov ecx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x40]
jmp 0x4022c2
mov ebx, dword [ebp + 0x40]
jmp 0x4022c5
mov esi, dword [0x4ca748]
mov edi, dword [ebp + 0x44]
cmp ebx, 0x400
ja 0x4024fd
je case.0x402513.1025
cmp ebx, 0x100
ja 0x402331
je 0x402311
cmp ebx, 0x12
je 0x4022fe
cmp ebx, 0x4b
jne case.0x402513.1027
mov dword [0x4ca734], 0
mov byte [ebp + 0x3b], 1
jmp 0x4018ad
push 0
push 4
mov ecx, 0x4cc848
call fcn.00423cb0
jmp 0x4018ad
cmp ecx, dword [0x4ca730]
jne case.0x402513.1027
cmp edi, 0x1b
jne case.0x402513.1027
push 0
push dword [0x4ca754]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x4018ad
cmp ebx, 0x113
je 0x4023fa
cmp ebx, 0x312
je case.0x402513.1026
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x40369e
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4cc810]
jne 0x40369e
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 dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x40369e
mov ecx, dword [0x4c8024]
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 0x40368f
cmp dword [0x4ca750], 0
je 0x4023e9
mov eax, dword [0x4c9994]
mov ecx, 0x4b6ba9
test eax, eax
je 0x4023e2
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [0x4c8024]
mov byte [eax + 0xc8], 0
jmp 0x4018ad
cmp dword [ebp + 0x48], 0
jne case.0x402513.1027
cmp ecx, dword [0x4ca754]
jne case.0x402513.1027
cmp dword [0x4cb204], 0
je 0x40241e
call fcn.00403b40
cmp dword [0x4cce44], 0
je 0x402441
call fcn.004038a0
mov edx, dword [ebp + 0x24]
test al, al
movzx ebx, dl
mov eax, 1
cmovne ebx, eax
mov dword [ebp + 0x24], ebx
jmp 0x402444
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 0x402478
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add ecx, edi
cmp ecx, 5
jg 0x4018b6
xor ecx, ecx
mov dword [0x4cce90], eax
cmp byte [ebp + 0x3a], cl
xorps xmm0, xmm0
mov dword [0x4cce94], eax
movzx eax, byte [0x4ca633]
cmovne eax, ecx
movlpd qword [0x4cce80], xmm0
mov byte [0x4ca633], al
cmp byte [ebp + 0x39], cl
je 0x4024e9
sub dword [0x4ca758], 1
jne 0x4024e9
cmp dword [0x4cce44], ecx
jne 0x4024e9
cmp dword [0x4cb204], ecx
jne 0x4024e9
cmp byte [0x4ca632], cl
je 0x4024e9
push 9
push dword [0x4ca754]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4ca632]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4ca632], 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.0x402513.1027
movzx eax, byte [eax + 0x4037b0]
jmp dword [eax*4 + 0x4037a4]
test ecx, ecx
je case.0x402513.1026
cmp ecx, dword [0x4ca754]
jne case.0x402513.1027
lea eax, [ebx - 0x401]
mov dword [ebp + 0x1c], 0
cmp eax, 0x1d
ja case.0x402547.1027
movzx eax, byte [eax + 0x4037ec]
jmp dword [eax*4 + 0x4037d0]
xor eax, eax
test edx, edx
jle 0x402566
mov ebx, dword [esi + eax*4]
mov dword [ebp + 0x70], ebx
mov ebx, dword [ebx + 4]
cmp ebx, ecx
je 0x402572
inc eax
cmp eax, edx
jl 0x402554
mov dword [ebp + 0x70], 0
jmp case.0x402513.1027
cmp dword [ebp + 0x70], 0
je case.0x402513.1027
movzx esi, di
mov ecx, 0x2af8
shr edi, 0x10
cmp esi, 8
mov eax, edi
mov dword [ebp + 0x30], esi
cmovne edi, dword [ebp + 0x48]
cmove eax, ecx
mov ecx, dword [ebp + 0x70]
mov dword [ebp], eax
mov eax, dword [ebp + 0x48]
cmovne eax, dword [ebp + 0x58]
mov edx, eax
mov dword [ebp + 0x58], eax
mov eax, dword [ebp]
mov dword [ebp + 0x64], 0
mov dword [ebp + 0x34], edx
cmp eax, dword [ecx + 0x10]
jae 0x4025c4
mov esi, eax
shl esi, 6
add esi, dword [ecx + 0x18]
jmp 0x4025c6
xor esi, esi
mov eax, dword [ebp + 0x30]
add eax, 0xfffffffb
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x20], 0
mov byte [ebp + 0x63], 0
cmp eax, 4
ja case.default.0x4025e3
jmp dword [eax*4 + 0x40380c]
mov esi, dword [ecx + 0x2c]
mov dword [ebp + 0x6c], edi
test esi, esi
je 0x4018ad
lea eax, [ecx + 0x3a]
jmp 0x40262d
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 0x40262d
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 0x402721
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 0x402a43
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 0x402a43
mov esi, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x68]
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x6c], edi
test esi, esi
je 0x4026b0
mov dword [ebp + 0x6c], edi
test ebx, ebx
je 0x4026c5
push 0
push 0
push 0xffffffffffffffff
push ebx
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x4026b0
mov edx, dword [ebp + 0x34]
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402a43
test ebx, ebx
je 0x4026c5
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 0x40270c
test al, 1
je 0x402701
test ebx, ebx
je 0x402701
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 0x402a43
test edi, edi
je 0x402762
xor eax, eax
test edx, edx
jle 0x402745
mov ebx, dword [esi + eax*4]
mov dword [ebp + 0x70], ebx
cmp dword [ebx + 4], edi
je 0x40275c
inc eax
cmp eax, edx
jl 0x402735
xor ebx, ebx
mov dword [ebp + 0x70], ebx
test ecx, ecx
je 0x402767
cmp ecx, dword [0x4ca754]
jne case.0x402513.1027
jmp 0x402767
test ebx, ebx
jne 0x402767
jmp 0x40274a
xor ebx, ebx
mov dword [ebp + 0x70], ebx
mov ecx, dword [0x4cce48]
test ecx, ecx
je 0x402796
mov eax, dword [ebp + 0x48]
mov edi, dword [ecx + 4]
mov dword [ebp + 4], edi
test edi, edi
je 0x40278f
nop
cmp dword [edi + 0x14], eax
je 0x4027a2
mov edi, dword [edi + 0x20]
mov dword [ebp + 4], edi
test edi, edi
jne 0x402780
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
jne 0x402774
mov dword [ebp + 4], 0
jmp 0x4018ad
mov esi, dword [edi + 8]
test esi, esi
je 0x4018ad
mov edi, dword [edi + 0x18]
jmp 0x402a46
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp edi, dword [0x4cb200]
jae 0x4018a1
mov eax, dword [0x4cb1fc]
mov ebx, dword [eax + edi*4]
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4027fc
mov edx, dword [ebx + 4]
call fcn.0040bc50
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 0x402803
cmp al, 3
je 0x402803
mov dword [ebp + 0x28], 0
push dword [ebp + 0x48]
mov ecx, ebx
call fcn.0040e920
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 [0x4cce5c], cl
mov esi, dword [ebx]
mov edi, dword [ebx + 0x14]
jmp 0x402a43
cmp byte [0x4cce30], 0
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x4018b6
mov esi, dword [0x4cce24]
test esi, esi
cmove esi, dword [0x4ccbd8]
xor edi, edi
jmp 0x402a43
mov ecx, edi
call fcn.00444bf0
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 0x402a43
mov ecx, dword [0x4ca744]
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 0x4028c3
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
jne 0x4028b0
jmp 0x4018ad
mov esi, dword [ecx + 8]
cmp ebx, 0x41c
jne 0x4028d6
mov esi, dword [esi + 0x360]
jmp 0x4028ec
cmp ebx, 0x41e
jne 0x4028e6
mov esi, dword [esi + 0x368]
jmp 0x4028ec
mov esi, dword [esi + 0x364]
mov edi, dword [ebp + 0x74]
test esi, esi
je 0x4018b0
xor edi, edi
jmp 0x402a43
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, edi
and eax, 0x7fff
cmp ax, word [0x4cb218]
jae 0x4018a1
mov ecx, eax
shr edi, 0x10
mov eax, dword [0x4cb208]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x14], edx
test di, di
je 0x402955
mov esi, dword [edx + 0x20]
add edi, 0xffff
mov dword [ebp + 0x10], esi
test di, di
je 0x402951
nop
mov esi, dword [esi + 8]
add edi, 0xffff
test di, di
jne 0x402940
mov dword [ebp + 0x10], esi
test esi, esi
jne 0x40298c
cmp ebx, 0x400
jne 0x40296c
mov eax, dword [ebp + 0x48]
mov ecx, 0xffc3d44d
shr eax, 0x10
sub ecx, eax
jmp 0x40296e
xor ecx, ecx
push 0
push ecx
lea eax, [ebp + 0x28]
mov ecx, edx
push eax
call fcn.0040c650
mov edi, dword [ebp + 0x74]
mov esi, eax
mov dword [ebp + 0x10], esi
test esi, esi
je 0x4018b0
mov eax, dword [0x4ee514]
mov edx, dword [esi]
test al, 1
jne 0x4029ac
or dword [0x4ee514], 1
mov ecx, 0x4ee518
push 0
push 0
call fcn.00422440
mov eax, dword [0x4ccbd8]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x4029bf
cmp ecx, dword [0x4ee518]
jne 0x4029ca
mov eax, dword [edx + 8]
test eax, eax
je 0x4029ca
mov cl, byte [eax]
jmp 0x4029cc
xor cl, cl
mov al, byte [esi + 0x16]
cmp al, byte [esi + 0x17]
jb 0x402a15
cmp cl, 0xe2
je 0x402a15
cmp cl, 0xce
je 0x402a15
cmp cl, 0xdc
je 0x402a15
cmp cl, 0xdd
je 0x402a15
cmp cl, 0xd8
je 0x402a15
cmp cl, 0xd9
je 0x402a15
cmp cl, 0xda
je 0x402a15
cmp cl, 0xdb
je 0x402a15
cmp byte [esi + 0x1a], 0
je 0x402a06
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 0x402a34
mov al, byte [eax]
cmp al, 2
je 0x402a34
cmp al, 4
je 0x402a34
cmp al, 5
jb 0x402a3b
mov eax, dword [0x4ca740]
mov dword [ebp + 0x28], eax
jmp 0x402a3b
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 [0x4ee514]
test al, 1
jne 0x402a6a
or dword [0x4ee514], 1
mov ecx, 0x4ee518
push 0
push 0
call fcn.00422440
mov eax, dword [0x4ccbd8]
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x402a7d
cmp ecx, dword [0x4ee518]
jne 0x402a8a
mov eax, esi
mov eax, dword [eax + 8]
test eax, eax
je 0x402a8a
mov cl, byte [eax]
jmp 0x402a8c
xor cl, cl
mov edx, dword [0x4ca73c]
mov eax, dword [0x4c8020]
mov byte [ebp - 0x18], cl
cmp edx, eax
jl 0x402b09
add eax, 2
cmp edx, eax
jge 0x402acd
cmp cl, 0xe2
je 0x402b09
cmp cl, 0xce
je 0x402b09
cmp cl, 0xdc
je 0x402b09
cmp cl, 0xdd
je 0x402b09
cmp cl, 0xd8
je 0x402b09
cmp cl, 0xd9
je 0x402b09
cmp cl, 0xda
je 0x402b09
cmp cl, 0xdb
je 0x402b09
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x402ae2
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 [0x4c8024]
cmp edi, dword [eax + 0x2c]
jl 0x402acd
mov ecx, dword [ebp + 0x40]
mov byte [ebp + 0x24], 1
lea eax, [ecx - 0x402]
cmp eax, 0x1c
ja case.0x402b2c.1027
movzx eax, byte [eax + 0x40382c]
jmp dword [eax*4 + 0x403820]
mov ebx, dword [ebp + 4]
push 0x104
push dword [ebx]
push 0x4ccbe0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov byte [0x4ccce4], 0
mov eax, dword [ebx + 0x10]
push 0x104
push dword [eax]
push 0x4ccce5
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0x18
mov byte [0x4ccde9], 0
mov dword [0x4ccbdc], ebx
jmp case.0x402b2c.1044
mov eax, dword [0x4ccdec]
mov dword [0x4ccdf0], eax
mov eax, dword [0x4cce54]
mov dword [0x4cce58], eax
cmp ecx, 0x401
jne 0x402b9a
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
jmp 0x402ba0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1c]
mov dword [0x4ccdec], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov dword [0x4cce54], eax
mov ecx, dword [0x4ca738]
push 0
push 1
call fcn.00401550
push 0x7f
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
push dword [ebp - 0x18]
xor dl, dl
mov byte [ebp - 0x19d], 0
push 1
mov ecx, edi
call fcn.00404090
mov ebx, dword [0x4c8024]
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4cce94], eax
mov dword [0x4cce90], eax
mov eax, dword [ebp + 0x40]
add eax, 0xfffffbff
cmp eax, 0x1d
ja case.0x402c16.1027
movzx eax, byte [eax + 0x40386c]
jmp dword [eax*4 + 0x40384c]
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 - 0x34], 0
je 0x402c45
mov eax, dword [edx]
jmp 0x402c48
mov eax, dword [edi + 4]
push eax
call fcn.004046a0
mov ecx, dword [ebp + 0x30]
lea eax, [ecx - 5]
cmp eax, 4
ja case.default.0x402c5d
jmp dword [eax*4 + 0x40388c]
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 0x402d32
cmp dword [ebp + 0x34], 0
je 0x402ca9
push edi
push ecx
call fcn.004894f0
mov edx, dword [ebx + 0x34]
mov ecx, dword [ebp + 0x5c]
movzx eax, byte [ecx + 4]
sub eax, 9
je 0x402d1d
sub eax, 1
je 0x402d12
sub eax, 1
jne 0x402d32
cmp edx, 1
jne 0x402cd3
push eax
push 9
push 0x110a
push dword [ecx]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x402d2f
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 0x402d2f
push 1
push 0xffffffffffffffff
push 0x100c
jmp 0x402d26
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 0x402d76
push dword [eax]
call fcn.004046a0
jmp 0x402d83
mov dword [ecx + 8], 0
mov dword [ecx], 0x4b6ba9
push dword [ebp + 0x6c]
lea ecx, [ebp - 0x88]
add ecx, edx
call fcn.004046a0
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.00404680
push dword [ebx + 0x3c]
lea ecx, [ebp - 0x88]
add ecx, edi
mov edi, dword [ebp + 0x64]
call fcn.00404680
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.00404680
mov edx, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x6c]
cmp byte [ebp + 0x63], 0
je 0x4031b2
mov edi, dword [ebp + 0x5c]
cmp byte [edi + 4], 0x17
jne 0x4031b2
push 0x10b0
lea eax, [ebp - 0x12cc]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
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 0x403205
cmp word [ebp - 0x1264], 0
lea ecx, [ebp - 0x1264]
lea eax, [ebp - 0x12c4]
mov dword [ebp - 0x20], 0
cmove ecx, eax
mov byte [ebp - 0x1c], 0
sub esp, 8
mov dword [ebp - 4], 0
lea edx, [ebp - 0x24]
mov dword [ebp - 0x24], 0x4b6c04
push 0xffffffffffffffff
call fcn.0049bbc0
add esp, 0xc
mov dword [ebp - 4], 1
mov ecx, 0x4b6ba9
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x402e9e
mov eax, dword [edi]
test eax, eax
cmovne ecx, eax
push 1
push 0
push 0xffffffffffffffff
push ecx
mov ecx, dword [0x4ca738]
call fcn.004a2db0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x24], vtable.CKuStringT_char__class_CKuStringUtilA_.0
test edi, edi
je 0x402eec
mov eax, dword [edi + 0x10]
add eax, 0xffffffff
mov dword [edi + 0x10], eax
jne 0x402eec
mov edi, dword [ebp - 0x20]
mov eax, dword [edi + 4]
test eax, eax
je 0x402ee1
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push 0x14
push edi
call fcn.004b3515
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 [0x4ca738]
push 1
call fcn.00401550
mov dword [edi + 8], 0
mov dword [edi], eax
jmp 0x403205
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.004796d0
mov dword [ebp + edi - 0x98], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + edi - 0x90], 6
test eax, eax
je 0x402fa0
push dword [eax]
lea ecx, [ebp - 0x88]
add ecx, edi
call fcn.004046a0
jmp 0x402fb3
mov dword [ebp + edi - 0x80], 0
mov dword [ebp + edi - 0x88], 0x4b6ba9
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 0x402fda
push dword [0x4cc818]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
lea ecx, [ebp - 0x98]
push eax
add ecx, edi
call fcn.00404680
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 0x403012
push dword [0x4cc818]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
mov ecx, edi
jmp 0x402dda
mov dword [ebx + 0x34], 1
cmp ecx, 8
jne 0x402ddf
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 0x40307c
push dword [0x4cc818]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
mov ecx, edi
call fcn.00404680
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 0x402ff7
mov al, byte [edx + 4]
cmp al, 0xa
je 0x403100
cmp al, 0x19
jne 0x4030de
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]
lea edx, [ebp - 0x98]
shl eax, 4
add edx, eax
mov dword [ebx + 0x34], ecx
cmp ecx, 5
jae 0x403173
mov ecx, dword [ecx*4 + 0x4c0df8]
jmp 0x40317e
cmp cl, 0x49
jne 0x4030de
lea eax, [ebp - 0x34]
test ecx, 0x100
je 0x403116
mov byte [ebp - 0x34], 0x53
jmp 0x403122
test ecx, 0x200
je 0x403125
mov byte [ebp - 0x34], 0x73
lea eax, [ebp - 0x33]
test ecx, 0x400
je 0x403132
mov byte [eax], 0x46
jmp 0x40313d
test ecx, 0x800
je 0x40313e
mov byte [eax], 0x66
inc eax
test ecx, 0x1000
je 0x40314b
mov byte [eax], 0x43
jmp 0x403156
test ecx, 0x2000
je 0x403157
mov byte [eax], 0x63
inc eax
mov byte [eax], 0
lea edx, [ebp - 0x98]
mov eax, dword [ebp + 0x64]
mov ecx, 0x49
shl eax, 4
mov dword [ebp + 0x30], ecx
add edx, eax
mov dword [ebx + 0x34], ecx
mov byte [0x4ee340], cl
mov ecx, 0x4ee340
mov dword [edx], ecx
mov ecx, dword [ebp + 0x6c]
mov dword [edx + 8], 0
mov edx, dword [ebp + 0x64]
add edx, 2
mov dword [ebp + eax - 0x80], 1
mov dword [ebp + eax - 0x88], ecx
mov dword [ebp + eax - 0x84], 0
mov dword [ebp + 0x64], edx
jmp 0x402de5
cmp byte [ebp - 0x34], 0
je 0x4031d5
mov eax, edx
add eax, eax
inc edx
mov dword [ebp + 0x64], edx
lea edx, [ebp - 0x34]
mov dword [ebp + eax*8 - 0x90], 0
mov dword [ebp + eax*8 - 0x98], edx
mov eax, dword [ebp + 0x30]
cmp eax, 8
je 0x4031f9
cmp eax, 5
je 0x4031f9
mov ecx, dword [0x4ca738]
lea eax, [ebp - 0x34]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004a2db0
jmp 0x403205
push ecx
mov ecx, dword [0x4ca738]
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]
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 0x4032bf
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.0048cfc0
add esp, 0x14
cmp dword [edi + 4], 0
je 0x40331d
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4032d5
mov byte [eax], 0
mov eax, dword [ebp + 0x30]
cmp eax, 6
jne 0x4032e2
cmp dword [ebp - 0x38], 0
jne 0x40331d
mov eax, dword [0x4ee514]
test al, 1
jne 0x40329e
push 0
or eax, 1
mov ecx, 0x4ee518
push 0
mov dword [0x4ee514], eax
call fcn.00422440
mov eax, dword [0x4ccbd8]
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x4032ad
test esi, esi
jne 0x40331d
mov eax, dword [edi + 4]
test eax, eax
je 0x40331d
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x40331d
cmp byte [ebp + 0x63], 0
je 0x403235
mov ebx, dword [ebp + 0x5c]
or byte [ebx + 5], 4
jmp 0x403238
cmp byte [ebp + 0x63], 0
mov eax, dword [ebp + 0x30]
je 0x4032e2
and byte [ebx + 5], 0xfb
cmp eax, 5
jne 0x40331d
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 0x403632
push dword [edi]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push 0xd8
push edi
call fcn.004b3515
add esp, 0xc
jmp 0x403632
mov edi, dword [ebp + 0x70]
test edi, edi
je 0x403363
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, 0x4cc848
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x16c], 0x4ccbe0
call fcn.00458ae0
inc eax
lea ecx, [ebp - 0x15c]
push 0
push eax
call fcn.004045c0
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], 0x4ccce5
mov ecx, esi
call fcn.0048cfc0
add esp, 0x14
test edi, edi
je 0x403632
jmp 0x40331d
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 0x28]
mov dword [ebx + 0xa4], eax
mov al, byte [esi + 0x21]
mov byte [ebx + 0xd6], al
mov eax, dword [0x4ee514]
mov edx, dword [esi]
test al, 1
jne 0x403405
push 0
or eax, 1
mov ecx, 0x4ee518
push 0
mov dword [0x4ee514], eax
call fcn.00422440
mov eax, dword [0x4ccbd8]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x403418
cmp ecx, dword [0x4ee518]
jne 0x403423
mov eax, dword [edx + 8]
test eax, eax
je 0x403423
mov cl, byte [eax]
jmp 0x403425
xor cl, cl
mov al, byte [esi + 0x24]
cmp al, byte [esi + 0x25]
jb 0x403459
cmp cl, 0xe2
je 0x403459
cmp cl, 0xce
je 0x403459
cmp cl, 0xdc
je 0x403459
cmp cl, 0xdd
je 0x403459
cmp cl, 0xd8
je 0x403459
cmp cl, 0xd9
je 0x403459
cmp cl, 0xda
je 0x403459
cmp cl, 0xdb
jne 0x403632
push 0
push 0
mov byte [0x4cce5d], 0
inc byte [esi + 0x24]
mov ecx, dword [esi]
mov edx, ecx
push 0
push 0
push str.call
call fcn.0048cfc0
add esp, 0x14
dec byte [esi + 0x24]
jmp 0x403632
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
je 0x4034b2
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x4034ab
push 0xf
call esi
test eax, eax
jne 0x4034ab
mov eax, 2
jmp 0x4034b4
mov eax, 1
jmp 0x4034b4
xor eax, eax
mov ecx, dword [0x4ca738]
push eax
mov dword [ebx + 0x38], eax
call fcn.004014c0
push 0
push dword [ebx + 0x38]
lea ecx, [ebp - 0x13c]
call fcn.004045c0
mov ecx, dword [0x4cce24]
mov byte [0x4cce30], 1
test ecx, ecx
je 0x4034ef
call fcn.00401610
mov ecx, dword [0x4cce24]
cmp dword [ebp + 0x44], 0
jne 0x403510
xor eax, eax
test ecx, ecx
mov ecx, 0x4cce04
sete al
push eax
push 1
lea eax, [ebp - 0x13c]
push eax
call fcn.00490550
mov byte [0x4cce30], 0
jmp 0x403632
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.0048cfc0
mov eax, dword [ebx + 8]
add esp, 0x14
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x403632
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.004045c0
sar ebx, 0x10
lea ecx, [ebp - 0x17c]
movzx eax, bx
cdq
push edx
push eax
call fcn.004045c0
push 0
push 0
push 3
lea eax, [ebp - 0x19c]
push eax
push str.call
mov edx, esi
mov ecx, esi
call fcn.0048cfc0
add esp, 0x14
jmp 0x403632
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 0x4035a8
mov edx, dword [ebp - 0x14]
mov al, byte [edx + 0x10]
add al, 0x64
cmp al, 3
ja 0x403615
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.0040c960
lea ecx, [ebp - 0x21c]
call fcn.004041a0
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 0x403668
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add ecx, edi
cmp ecx, 5
jg 0x4018b6
cmp edi, 0xffffffff
jle 0x40367d
xorps xmm0, xmm0
mov dword [0x4cce90], eax
movlpd qword [0x4cce80], xmm0
mov dword [0x4cce94], eax
mov byte [ebp + 0x3b], 1
mov byte [ebp + 0x6b], 1
jmp 0x4018b6
mov ecx, dword [0x4c8024]
mov byte [ecx + 0xc8], 0
jmp 0x4036a4
mov ecx, dword [0x4c8024]
mov eax, dword [0x4ca72c]
test eax, eax
je 0x4036d5
lea ecx, [ebp + 0x3c]
push ecx
push eax
push dword [0x4ca754]
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 [0x4c8024]
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 [0x4c8024]
mov byte [eax + 0xc8], 0
jmp 0x4018ad
cmp edi, 0xffffffff
jle 0x40371f
xorps xmm0, xmm0
mov dword [0x4cce90], eax
movlpd qword [0x4cce80], xmm0
xor ecx, ecx
mov dword [0x4cce94], eax
cmp byte [ebp + 0x3a], cl
movzx eax, byte [0x4ca633]
cmovne eax, ecx
mov byte [0x4ca633], al
cmp byte [ebp + 0x39], cl
je 0x40378a
mov eax, dword [0x4ca758]
dec eax
mov dword [0x4ca758], eax
test edi, edi
jle 0x40378a
test eax, eax
jne 0x40378a
cmp dword [0x4cce44], ecx
jne 0x40378a
cmp dword [0x4cb204], ecx
jne 0x40378a
cmp byte [0x4ca632], cl
je 0x40378a
push 9
push dword [0x4ca754]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4ca632]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4ca632], 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