Function at 0x401870
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 0x4c20b5
mov eax, dword fs:[0]
push eax
mov eax, 0x12c8
mov dword fs:[0], esp
call fcn.004c1c60
push ebx
push esi
mov esi, edx
mov byte [ebp + 0x3a], 0
mov dword [ebp], esi
mov ebx, ecx
mov dword [ebp + 0x20], ebx
push edi
cmp esi, 2
jne 0x4018c9
cmp byte [0x4d9857], 0
mov esi, 1
mov dword [ebp], esi
jne 0x4018c9
mov byte [0x4d9857], 1
mov byte [ebp + 0x3a], 1
cmp dword [0x4dba94], 0
je 0x40190b
cmp dword [0x4dba84], 0
je 0x4018f1
push dword [0x4dba7c]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x4dba84], 0
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x4dba94], 0
mov dword [0x4dba7c], 0
cmp ebx, 0x8000012f
jne 0x401928
mov ebx, 0xa
mov byte [ebp + 0x6b], 1
mov dword [ebp + 0x20], ebx
mov dword [ebp + 8], 0
jmp 0x401943
cmp ebx, 5
setle byte [ebp + 0x6b]
jg 0x40193a
mov dword [ebp + 8], 0
jmp 0x401943
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 8], eax
cmp dword [0x4da450], 0
je 0x401951
call fcn.00403eb0
cmp dword [0x4dc094], 0
mov edi, 1
mov byte [ebp + 0x24], 0
je 0x401976
call fcn.00403bb0
mov ecx, dword [ebp + 0x24]
test al, al
movzx ecx, cl
cmovne ecx, edi
mov dword [ebp + 0x24], ecx
test ebx, ebx
jle 0x4019af
cmp esi, 1
jne 0x4019af
inc dword [0x4d997c]
cmp byte [0x4d9856], 0
mov byte [ebp + 0x39], 1
jne 0x4019b3
push 0
push 0xa
push 9
push dword [0x4d9978]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4d9856]
jmp 0x4019b3
mov byte [ebp + 0x39], 0
xor esi, esi
mov byte [ebp + 0x38], 0
mov byte [ebp + 0x3b], 0
mov dword [ebp + 0x74], esi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x4019d8
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
call edi
cmp dword [ebp + 0x20], 0
mov ebx, eax
jle 0x401a93
cmp byte [ebp + 0x3b], 0
jne 0x401a93
cmp byte [0x4d9857], 0
jne 0x401aa0
cmp dword [0x4d70ec], 0
je 0x401a56
cmp dword [0x4d9948], 0
jne 0x401a56
mov ecx, dword [0x4d70f4]
cmp byte [ecx + 0xcc], 0
jne 0x401a4d
cmp byte [ecx + 0xce], 0
jne 0x401a4d
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401a4d
call edi
mov ecx, dword [0x4d70f4]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401a4d
mov byte [ecx + 0xcc], 1
movzx ecx, byte [ecx + 0xcc]
jmp 0x401a58
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 0x4019d8
call edi
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jbe 0x401d5b
mov dword [0x4dc0e8], eax
jmp 0x401d5b
cmp byte [0x4d9857], 0
je 0x401c56
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x401c56
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4dba60]
jne 0x401c56
cmp dword [0x4d9974], 0
je 0x401afb
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 0x401b4f
jmp 0x401b01
mov esi, dword [sym.imp.USER32.dll_GetClassNameA]
call dword [sym.imp.USER32.dll_GetFocus]
test eax, eax
je 0x401c56
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 0x401b4f
lea eax, [ebp - 0xcc]
push str.SysListView32
push eax
call esi
add esp, 8
test eax, eax
jne 0x401c56
cmp dword [0x4d70ec], 0
je 0x401ba8
cmp dword [0x4d9948], 0
jne 0x401ba8
mov ecx, dword [0x4d70f4]
cmp byte [ecx + 0xcc], 0
jne 0x401b9f
cmp byte [ecx + 0xce], 0
jne 0x401b9f
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401b9f
call edi
mov ecx, dword [0x4d70f4]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401b9f
mov byte [ecx + 0xcc], 1
movzx eax, byte [ecx + 0xcc]
jmp 0x401baa
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 0x401be2
push 1
push esi
push 0x20e
jmp 0x401cc4
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 0x401c18
push 0x1ff
push eax
push eax
lea eax, [ebp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x401ccd
mov eax, dword [ebp + 0x4c]
sub eax, edi
test eax, eax
lea eax, [ebp + 0x3c]
jle 0x401c3f
push 0x1ff
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x401ccd
push esi
push 0x20e
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x401ccd
cmp dword [0x4d70ec], 0
je 0x401caf
cmp dword [0x4d9948], 0
jne 0x401caf
mov ecx, dword [0x4d70f4]
cmp byte [ecx + 0xcc], 0
jne 0x401ca6
cmp byte [ecx + 0xce], 0
jne 0x401ca6
cmp dword [ecx + 0xc0], 0xffffffff
jle 0x401ca6
call edi
mov ecx, dword [0x4d70f4]
sub eax, dword [ecx + 0xbc]
cmp eax, dword [ecx + 0xc0]
jb 0x401ca6
mov byte [ecx + 0xcc], 1
movzx ecx, byte [ecx + 0xcc]
jmp 0x401cb1
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]
test eax, eax
jne 0x401d58
call edi
mov edx, dword [0x4dc0e8]
mov ecx, eax
sub ecx, ebx
mov ebx, dword [ebp + 0x20]
cmp ecx, 3
cmova edx, eax
mov dword [0x4dc0e8], edx
test ebx, ebx
jne 0x401d09
cmp byte [ebp + 0x38], bl
jne 0x401d09
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp + 0x38], 1
jmp 0x4019d5
mov esi, dword [ebp + 0x74]
test esi, esi
jne 0x401d2f
cmp byte [ebp + 0x6b], 0
je 0x401d2f
test ebx, ebx
jle 0x401d22
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, 1
mov dword [ebp + 0x74], esi
jmp 0x4019d8
call edi
cmp byte [ebp + 0x6b], 0
jne 0x403a57
mov ecx, dword [ebp + 8]
sub ecx, eax
add ecx, ebx
cmp ecx, 5
jle 0x403a57
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4019d8
mov esi, dword [ebp + 0x74]
inc esi
cmp dword [0x4dba74], 0
mov dword [ebp + 0x74], esi
je 0x401d8f
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.00403f80
add esp, 0x10
test al, al
jne 0x4019d8
mov edx, dword [0x4d9970]
mov ecx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x40]
test edx, edx
je 0x4023cc
test ecx, ecx
je 0x4023cc
cmp ecx, dword [0x4d9978]
je 0x4023cc
cmp ebx, 0x414
je 0x4023cc
cmp ebx, 0x402
je 0x4023cc
lea eax, [ebx - 0x100]
cmp eax, 9
ja 0x4021b5
call dword [sym.imp.USER32.dll_GetFocus]
mov ebx, eax
mov dword [ebp + 0x34], ebx
test ebx, ebx
je 0x4021a9
push 0xfffffffffffffff0
push ebx
mov esi, ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x40000000
je 0x401e2e
push esi
mov edi, esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
test esi, esi
je 0x401e24
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x40000000
jne 0x401e03
jmp 0x401e2e
mov esi, edi
test edi, edi
je 0x4021a9
mov ecx, ebx
call fcn.00483ef0
mov edi, eax
mov dword [ebp + 0x70], edi
test edi, edi
je 0x4021a9
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x401e60
lea eax, [ebp + 0x3c]
push eax
push ecx
push esi
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov esi, dword [ebp + 0x74]
test eax, eax
jne 0x4019c0
mov ecx, dword [ebp + 0x40]
cmp ecx, 0x100
jne 0x402161
cmp byte [edi + 0xc0], 0
mov edi, dword [ebp + 0x44]
je 0x402060
cmp edi, 0x22
je 0x401e9c
cmp edi, 0x21
je 0x401e9c
cmp edi, 9
je 0x401e9c
cmp edi, 0x25
je 0x401e9c
cmp edi, 0x27
jne 0x402060
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 0x401ec7
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov edi, eax
test edi, edi
je 0x401ec7
push edi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea esi, [eax - 3]
mov ebx, dword [ebp + 0x70]
cmp esi, dword [ebx + 0x10]
jae 0x402044
mov ecx, esi
shl ecx, 6
add ecx, dword [ebx + 0x18]
mov dword [ebp + 0x5c], ecx
cmp dword [ecx], edi
jne 0x402044
cmp esi, 0x2af8
je 0x402044
test ecx, ecx
je 0x40204b
mov al, byte [ecx + 4]
cmp al, 0xf
je 0x40204b
mov edi, dword [ebp + 0x44]
xor esi, esi
cmp al, 0x13
jne 0x401f35
mov esi, ecx
cmp edi, 0x25
je 0x401f1a
cmp edi, 0x27
jne 0x401f35
cmp edi, 0x27
push 0
sete al
push 0
movzx eax, al
push eax
push ecx
mov ecx, ebx
call fcn.00496390
jmp 0x4019cf
cmp edi, 0x25
je 0x40204e
cmp edi, 0x27
je 0x40204e
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x40204b
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
cmp edi, 9
jne 0x401f83
cmp byte [eax + 4], 0xc
jne 0x401f83
push 0xfffffffffffffff0
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 4
jne 0x40204b
mov edi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x5c]
test esi, esi
jne 0x401fc7
mov bl, byte [eax + 6]
cmp bl, 0xff
je 0x402003
mov esi, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [esi + 0x10]
test edx, edx
je 0x402003
mov esi, dword [esi + 0x18]
cmp byte [esi + 4], 0x13
jne 0x401fac
cmp al, bl
je 0x401fc0
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x401fa0
mov ebx, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [ebx + 0x10]
jmp 0x402011
test esi, esi
je 0x402003
mov ebx, dword [ebp + 0x70]
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x40204b
mov eax, dword [ebp + 0x44]
cmp eax, 0x22
je 0x402030
cmp eax, 9
jne 0x401fef
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x402030
push 1
push 1
xor al, al
mov ecx, ebx
push eax
push esi
call fcn.00496390
jmp 0x4019cf
mov ebx, dword [ebp + 0x70]
xor al, al
xor ecx, ecx
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x40204e
mov esi, dword [ebx + 0x18]
cmp byte [esi + 4], 0x13
jne 0x402020
test al, al
je 0x40202a
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x402014
jmp 0x40204e
test esi, esi
je 0x40204e
jmp 0x401fc7
push 1
push 1
mov al, 1
mov ecx, ebx
push eax
push esi
call fcn.00496390
jmp 0x4019cf
mov dword [ebp + 0x5c], 0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x40]
cmp ecx, 0x100
jne 0x402164
mov ebx, dword [ebp + 0x34]
cmp edi, 0x1b
je 0x40209a
cmp edi, 9
je 0x40209a
cmp edi, 0x41
jne 0x402164
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
bt ax, 0xf
jae 0x40215e
push 0xa5
call esi
bt ax, 0xf
jb 0x40215e
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov edi, dword [ebp + 0x70]
lea esi, [eax - 3]
cmp esi, dword [edi + 0x10]
jb 0x4020cc
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov ebx, eax
test ebx, ebx
je 0x4020c3
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea esi, [eax - 3]
cmp esi, dword [edi + 0x10]
jae 0x402157
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 0x402157
cmp esi, 0x2af8
je 0x402157
test eax, eax
je 0x40215e
cmp byte [eax + 4], 0xc
jne 0x40215e
mov edi, dword [ebp + 0x44]
cmp edi, 0x1b
je 0x40212d
mov al, byte [eax + 5]
cmp edi, 0x41
je 0x40211b
test al, al
jns 0x402116
push 0x4c3c6c
push 1
push 0xc2
jmp 0x4019c8
mov ecx, dword [ebp + 0x40]
jmp 0x402164
test al, 2
jne 0x402116
push 0xffffffffffffffff
push 0
push 0xb1
jmp 0x4019c8
mov edi, dword [ebp + 0x70]
mov esi, dword [ebp + 0x74]
cmp dword [edi + 0x28], 0
je 0x4019c0
push 0
push 0x2af80007
push 0x414
push dword [edi + 4]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x4019cf
mov dword [ebp + 0x5c], 0
mov ecx, dword [ebp + 0x40]
mov edi, dword [ebp + 0x44]
mov eax, dword [0x4db1c0]
test eax, eax
je 0x402342
cmp ecx, 0x100
jne 0x402342
cmp edi, 0xd
jne 0x402191
push 0
push 0
push 0x1116
push eax
jmp 0x4019c9
cmp edi, 0x1b
jne 0x402342
push 0
push 1
push 0x1116
push eax
jmp 0x4019c9
mov ecx, dword [ebp + 0x3c]
mov edx, dword [0x4d9970]
mov ebx, dword [ebp + 0x40]
cmp ebx, 0x20a
je 0x4021cd
cmp ebx, 0x20e
je 0x4021cd
mov edi, dword [ebp + 0x44]
jmp 0x40234b
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 [0x4d9970]
xor ecx, ecx
mov ebx, eax
test edx, edx
jle 0x40220f
mov edi, dword [0x4d996c]
mov eax, dword [edi + ecx*4]
cmp dword [eax + 4], ebx
je 0x402273
inc ecx
cmp ecx, edx
jl 0x402202
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.004017a0
add esp, 8
test eax, eax
jne 0x40233f
push dword [ebp + 0x3c]
mov ebx, dword [sym.imp.USER32.dll_GetParent]
call ebx
mov edx, dword [0x4d9970]
xor ecx, ecx
mov esi, dword [0x4d996c]
test edx, edx
jle 0x402261
mov edi, dword [esi + ecx*4]
mov dword [ebp + 0x70], edi
cmp dword [edi + 4], eax
je 0x4022c9
inc ecx
cmp ecx, edx
jl 0x402251
mov dword [ebp + 0x70], 0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
jmp 0x402351
test eax, eax
je 0x40220f
mov edi, dword [ebp + 0x34]
cmp esi, dword [ebp + 0x3c]
jne 0x4022a1
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
mov ecx, esi
push edi
call fcn.004017a0
add esp, 8
test eax, eax
jne 0x40220f
cmp esi, dword [ebp + 0x3c]
je 0x40220f
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
mov ecx, esi
push edi
call fcn.004017a0
add esp, 8
test eax, eax
je 0x40220f
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push esi
jmp 0x4019c9
test edi, edi
je 0x402268
nop dword [eax]
push dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
push dword [edi + 0x3c]
mov ecx, dword [edi + 4]
call fcn.004017a0
add esp, 8
test eax, eax
jne 0x40232e
push dword [edi + 4]
call ebx
mov edx, dword [0x4d9970]
xor ecx, ecx
mov esi, dword [0x4d996c]
test edx, edx
jle 0x402261
mov edi, dword [esi + ecx*4]
mov dword [ebp + 0x70], edi
cmp dword [edi + 4], eax
je 0x402322
inc ecx
cmp ecx, edx
jl 0x402303
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
mov dword [ebp + 0x70], 0
jmp 0x402351
test edi, edi
jne 0x4022d0
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
jmp 0x402351
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push dword [edi + 4]
jmp 0x4019c9
mov edi, dword [ebp + 0x44]
mov edx, dword [0x4d9970]
mov ecx, dword [ebp + 0x3c]
mov esi, dword [0x4d996c]
xor ebx, ebx
test edx, edx
jle 0x4023c7
nop word [eax + eax]
mov eax, dword [esi + ebx*4]
lea edi, [esi + ebx*4]
cmp dword [eax + 0x10], 0
jne 0x402375
cmp dword [ebp + 0x40], 0x106
je 0x4023ba
mov ecx, dword [0x4d70f4]
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 0x4024f9
mov eax, dword [0x4d70f4]
mov edx, dword [0x4d9970]
mov esi, dword [0x4d996c]
mov byte [eax + 0xc8], 0
inc ebx
cmp ebx, edx
jl 0x402360
mov ecx, dword [ebp + 0x3c]
mov ebx, dword [ebp + 0x40]
jmp 0x4023d2
mov ebx, dword [ebp + 0x40]
jmp 0x4023d5
mov esi, dword [0x4d996c]
mov edi, dword [ebp + 0x44]
cmp ebx, 0x400
ja 0x40260e
je case.0x402624.1025
cmp ebx, 0x100
ja 0x402441
je 0x402421
cmp ebx, 0x12
je 0x40240e
cmp ebx, 0x4b
jne case.0x402624.1027
mov dword [0x4d9958], 0
mov byte [ebp + 0x3b], 1
jmp 0x4019cf
push 0
push 4
mov ecx, 0x4dba98
call fcn.0042d940
jmp 0x4019cf
cmp ecx, dword [0x4d9954]
jne case.0x402624.1027
cmp edi, 0x1b
jne case.0x402624.1027
push 0
push dword [0x4d9978]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x4019cf
cmp ebx, 0x113
je 0x40250a
cmp ebx, 0x312
je case.0x402624.1026
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x4039eb
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4dba60]
jne 0x4039eb
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 0x4039eb
mov ecx, dword [0x4d70f4]
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 0x4039dc
cmp dword [0x4d9974], 0
je 0x4024f9
mov eax, dword [0x4d8ae0]
mov ecx, 0x4c3c29
test eax, eax
je 0x4024f2
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [0x4d70f4]
mov byte [eax + 0xc8], 0
jmp 0x4019cf
cmp dword [ebp + 0x48], 0
jne case.0x402624.1027
cmp ecx, dword [0x4d9978]
jne case.0x402624.1027
cmp dword [0x4da450], 0
je 0x40252e
call fcn.00403eb0
cmp dword [0x4dc094], 0
je 0x40254f
call fcn.00403bb0
mov edx, dword [ebp + 0x24]
test al, al
movzx ecx, dl
mov eax, 1
cmovne ecx, eax
mov byte [ebp + 0x24], cl
cmp dword [ebp], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
je 0x4019d8
mov ebx, dword [ebp + 0x20]
cmp ebx, 1
jl 0x4019d8
call edi
cmp byte [ebp + 0x6b], 0
jne 0x402586
mov ecx, dword [ebp + 8]
sub ecx, eax
add ecx, ebx
cmp ecx, 5
jg 0x4019d5
xor ecx, ecx
mov dword [0x4dc0e8], eax
cmp byte [ebp + 0x3a], cl
xorps xmm0, xmm0
mov dword [0x4dc0ec], eax
movzx eax, byte [0x4d9857]
cmovne eax, ecx
movlpd qword [0x4dc0d8], xmm0
mov byte [0x4d9857], al
cmp byte [ebp + 0x39], cl
je 0x4025f7
sub dword [0x4d997c], 1
jne 0x4025f7
cmp dword [0x4dc094], ecx
jne 0x4025f7
cmp dword [0x4da450], ecx
jne 0x4025f7
cmp byte [0x4d9856], cl
je 0x4025f7
push 9
push dword [0x4d9978]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4d9856]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4d9856], 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
lea eax, [ebx - 0x401]
cmp eax, 0x1d
ja case.0x402624.1027
movzx eax, byte [eax + 0x403ab4]
jmp dword [eax*4 + 0x403aa8]
test ecx, ecx
je case.0x402624.1026
cmp ecx, dword [0x4d9978]
jne case.0x402624.1027
lea eax, [ebx - 0x401]
mov dword [ebp + 0x18], 0
cmp eax, 0x1d
ja case.0x402658.1027
movzx eax, byte [eax + 0x403af0]
jmp dword [eax*4 + 0x403ad4]
xor eax, eax
test edx, edx
jle 0x402677
mov ebx, dword [esi + eax*4]
mov dword [ebp + 0x70], ebx
mov ebx, dword [ebx + 4]
cmp ebx, ecx
je 0x402683
inc eax
cmp eax, edx
jl 0x402665
mov dword [ebp + 0x70], 0
jmp case.0x402624.1027
cmp dword [ebp + 0x70], 0
je case.0x402624.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 - 0x14], eax
mov eax, dword [ebp + 0x48]
cmovne eax, dword [ebp + 0x58]
mov edx, eax
mov dword [ebp + 0x58], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp + 0x64], 0
mov dword [ebp + 0x34], edx
cmp eax, dword [ecx + 0x10]
jae 0x4026d5
mov esi, eax
shl esi, 6
add esi, dword [ecx + 0x18]
jmp 0x4026d7
xor esi, esi
mov eax, dword [ebp + 0x30]
add eax, 0xfffffffb
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x1c], 0
mov byte [ebp + 0x63], 0
cmp eax, 4
ja case.default.0x4026f4
jmp dword [eax*4 + 0x403b10]
mov esi, dword [ecx + 0x2c]
mov dword [ebp + 0x6c], edi
test esi, esi
je 0x4019cf
lea eax, [ecx + 0x3a]
jmp 0x40273e
mov esi, dword [ecx + 0x24]
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x4019cf
lea eax, [ecx + 0x38]
jmp 0x40273e
mov esi, dword [ecx + 0x28]
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x4019cf
lea eax, [ecx + 0x39]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x6c], edi
test eax, eax
je 0x402835
cmp byte [eax], 0
mov dword [ebp + 0x6c], edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x58], edx
jne 0x4019d5
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402b67
mov esi, dword [ecx + 0x34]
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x4019cf
mov dword [ebp + 0x6c], edi
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402b67
mov esi, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x68]
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x6c], edi
test esi, esi
je 0x4027c4
mov dword [ebp + 0x6c], edi
test ebx, ebx
je 0x4027d9
push 0
push 0
push 0xffffffffffffffff
push ebx
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x4027c4
mov edx, dword [ebp + 0x34]
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402b67
test ebx, ebx
je 0x4027d9
push ebx
call dword [sym.imp.SHELL32.dll_DragFinish]
mov eax, dword [ebp + 0x70]
mov dword [eax + 0x68], 0
mov esi, dword [ebp + 0x34]
mov dword [ebp + 0x58], esi
jmp 0x4019cf
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], eax
test esi, esi
je 0x4019cf
mov eax, dword [ebp + 0x5c]
mov esi, dword [esi + 0xc]
mov al, byte [eax + 5]
test esi, esi
jne 0x402820
test al, 1
je 0x402815
test ebx, ebx
je 0x402815
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 0x4019cf
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x58], edx
test al, 4
jne 0x4019cf
mov byte [ebp + 0x63], 1
mov dword [ebp + 0x6c], edi
xor edi, edi
mov dword [ebp + 0x58], edx
jmp 0x402b67
test edi, edi
je 0x40287d
xor eax, eax
test edx, edx
jle 0x402860
nop dword [eax]
mov ebx, dword [esi + eax*4]
mov dword [ebp + 0x70], ebx
cmp dword [ebx + 4], edi
je 0x402877
inc eax
cmp eax, edx
jl 0x402850
xor ebx, ebx
mov dword [ebp + 0x70], ebx
test ecx, ecx
je 0x402882
cmp ecx, dword [0x4d9978]
jne case.0x402624.1027
jmp 0x402882
test ebx, ebx
jne 0x402882
jmp 0x402865
xor ebx, ebx
mov dword [ebp + 0x70], ebx
mov ecx, dword [0x4dc098]
test ecx, ecx
je 0x4028b6
mov eax, dword [ebp + 0x48]
nop
mov edi, dword [ecx + 4]
mov dword [ebp + 4], edi
test edi, edi
je 0x4028af
nop word [eax + eax]
cmp dword [edi + 0x14], eax
je 0x4028c2
mov edi, dword [edi + 0x20]
mov dword [ebp + 4], edi
test edi, edi
jne 0x4028a0
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
jne 0x402890
mov dword [ebp + 4], 0
jmp 0x4019cf
mov esi, dword [edi + 8]
test esi, esi
je 0x4019cf
mov edi, dword [edi + 0x18]
jmp 0x402b6a
mov esi, dword [ebp + 0x74]
cmp edi, dword [0x4da44c]
jae 0x4019c0
mov eax, dword [0x4da448]
mov esi, dword [eax + edi*4]
mov dword [ebp + 0x10], esi
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x40291c
mov edx, dword [esi + 4]
call fcn.00413770
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x28], eax
test eax, eax
je 0x4019d5
mov eax, dword [esi + 0x10]
mov al, byte [eax]
cmp al, 1
je 0x402923
cmp al, 3
je 0x402923
mov dword [ebp + 0x28], 0
push dword [ebp + 0x48]
mov ecx, esi
call fcn.00416560
cmp dword [esi + 0xc], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x4019d5
movzx eax, byte [ebp + 0x48]
xor ecx, ecx
cmp byte [esi + 0x2a], cl
mov edi, dword [ebp + 0x10]
cmovne ecx, eax
mov byte [0x4dc0ac], cl
mov edi, dword [edi + 0x14]
jmp 0x402b65
cmp byte [0x4dc080], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
jne 0x4019d8
mov esi, dword [0x4dc074]
test esi, esi
cmove esi, dword [0x4dbe28]
xor edi, edi
jmp 0x402b67
mov ecx, edi
call fcn.004534c0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov esi, dword [ebp + 0x74]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
je 0x4019d8
mov esi, dword [ecx + 8]
xor edi, edi
mov esi, dword [esi + 0x35c]
jmp 0x402b67
mov ecx, dword [0x4d9968]
mov esi, dword [ebp + 0x74]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
je 0x4019c0
cmp ecx, edi
je 0x4029da
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x2c], ecx
test ecx, ecx
jne 0x4029c7
jmp 0x4019cf
mov esi, dword [ecx + 8]
cmp ebx, 0x41c
jne 0x4029ed
mov esi, dword [esi + 0x360]
jmp 0x402a03
cmp ebx, 0x41e
jne 0x4029fd
mov esi, dword [esi + 0x368]
jmp 0x402a03
mov esi, dword [esi + 0x364]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
test esi, esi
je 0x4019d5
xor edi, edi
jmp 0x402b67
mov esi, dword [ebp + 0x74]
mov eax, edi
and eax, 0x7fff
cmp ax, word [0x4da464]
jae 0x4019c0
mov ecx, eax
shr edi, 0x10
mov eax, dword [0x4da454]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x18], edx
test di, di
je 0x402a75
mov esi, dword [edx + 0x20]
add edi, 0xffff
mov dword [ebp + 0xc], esi
test di, di
je 0x402a71
nop word [eax + eax]
mov esi, dword [esi + 8]
add edi, 0xffff
test di, di
jne 0x402a60
mov dword [ebp + 0xc], esi
test esi, esi
jne 0x402aaf
cmp ebx, 0x400
jne 0x402a8c
mov eax, dword [ebp + 0x48]
mov ecx, 0xffc3d44d
shr eax, 0x10
sub ecx, eax
jmp 0x402a8e
xor ecx, ecx
push 0
push ecx
lea eax, [ebp + 0x28]
mov ecx, edx
push eax
call fcn.00414170
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov dword [ebp + 0xc], esi
test esi, esi
je 0x4019d5
mov eax, dword [0x4fd89c]
mov edx, dword [esi]
test al, 1
jne 0x402acf
or dword [0x4fd89c], 1
mov ecx, 0x4fd8a0
push 0
push 0
call fcn.0042ba30
mov eax, dword [0x4dbe28]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x402ae2
cmp ecx, dword [0x4fd8a0]
jne 0x402aed
mov eax, dword [edx + 8]
test eax, eax
je 0x402aed
mov cl, byte [eax]
jmp 0x402aef
xor cl, cl
mov al, byte [esi + 0x16]
cmp al, byte [esi + 0x17]
jb 0x402b39
cmp cl, 0xe2
je 0x402b39
cmp cl, 0xce
je 0x402b39
cmp cl, 0xdc
je 0x402b39
cmp cl, 0xdd
je 0x402b39
cmp cl, 0xd8
je 0x402b39
cmp cl, 0xd9
je 0x402b39
cmp cl, 0xda
je 0x402b39
cmp cl, 0xdb
je 0x402b39
cmp byte [esi + 0x1a], 0
je 0x402b29
mov byte [esi + 0x1b], 1
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [esi + 0xc], eax
jmp 0x4019d5
mov eax, dword [esi + 4]
test eax, eax
je 0x402b58
mov al, byte [eax]
cmp al, 2
je 0x402b58
cmp al, 4
je 0x402b58
cmp al, 5
jb 0x402b5f
mov eax, dword [0x4d9964]
mov dword [ebp + 0x28], eax
jmp 0x402b5f
mov dword [ebp + 0x28], 0
mov edi, dword [ebp + 0xc]
mov edi, dword [edi + 0x10]
mov esi, dword [esi]
mov ebx, dword [ebp + 0x70]
mov eax, dword [ebp + 0x6c]
mov dword [ebp + 0x34], eax
mov eax, dword [0x4fd89c]
test al, 1
jne 0x402b8e
or dword [0x4fd89c], 1
mov ecx, 0x4fd8a0
push 0
push 0
call fcn.0042ba30
mov eax, dword [0x4dbe28]
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x402ba1
cmp ecx, dword [0x4fd8a0]
jne 0x402bae
mov eax, esi
mov eax, dword [eax + 8]
test eax, eax
je 0x402bae
mov cl, byte [eax]
jmp 0x402bb0
xor cl, cl
mov edx, dword [0x4d9960]
mov eax, dword [0x4d70f0]
mov byte [ebp - 0x10], cl
cmp edx, eax
jl 0x402c2d
add eax, 2
cmp edx, eax
jge 0x402bf1
cmp cl, 0xe2
je 0x402c2d
cmp cl, 0xce
je 0x402c2d
cmp cl, 0xdc
je 0x402c2d
cmp cl, 0xdd
je 0x402c2d
cmp cl, 0xd8
je 0x402c2d
cmp cl, 0xd9
je 0x402c2d
cmp cl, 0xda
je 0x402c2d
cmp cl, 0xdb
je 0x402c2d
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x402c06
push eax
call dword [sym.imp.SHELL32.dll_DragFinish]
mov dword [ebx + 0x68], 0
cmp dword [ebp + 0x40], 0x41b
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
jne 0x4019d8
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x4019cf
mov eax, dword [0x4d70f4]
cmp edi, dword [eax + 0x2c]
jl 0x402bf1
mov ecx, dword [ebp + 0x40]
mov byte [ebp + 0x24], 1
lea eax, [ecx - 0x402]
cmp eax, 0x1c
ja case.0x402c50.1027
movzx eax, byte [eax + 0x403b30]
jmp dword [eax*4 + 0x403b24]
mov ebx, dword [ebp + 4]
push 0x104
push dword [ebx]
push 0x4dbe30
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov byte [0x4dbf34], 0
mov eax, dword [ebx + 0x10]
push 0x104
push dword [eax]
push 0x4dbf35
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0x18
mov byte [0x4dc039], 0
mov dword [0x4dbe2c], ebx
jmp case.0x402c50.1044
mov eax, dword [0x4dc03c]
mov dword [0x4dc040], eax
mov eax, dword [0x4dc0a4]
mov dword [0x4dc0a8], eax
cmp ecx, 0x401
jne 0x402cbe
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
jmp 0x402cc4
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x1c]
mov dword [0x4dc03c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4dc0a4], eax
mov ecx, dword [0x4d995c]
push 0
push 1
call fcn.00401640
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 - 0x10]
xor dl, dl
mov byte [ebp - 0x19d], 0
push 1
mov ecx, edi
call fcn.00404440
mov ebx, dword [0x4d70f4]
add esp, 0x14
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [0x4dc0ec], eax
mov dword [0x4dc0e8], eax
mov eax, dword [ebp + 0x40]
add eax, 0xfffffbff
cmp eax, 0x1d
ja case.0x402d3b.1027
movzx eax, byte [eax + 0x403b70]
jmp dword [eax*4 + 0x403b50]
cmp byte [ebp + 0x63], 0
mov edi, dword [ebp + 0x70]
mov byte [ebp - 0x34], 0
je 0x402d56
mov eax, dword [ebp + 0x5c]
mov edx, dword [eax]
jmp 0x402d59
mov edx, dword [edi + 4]
mov eax, dword [ebp + 0x64]
lea ecx, [ebp - 0x98]
inc dword [ebp + 0x64]
shl eax, 4
add ecx, eax
push edx
call fcn.00404a50
mov ecx, dword [ebp + 0x30]
lea eax, [ecx - 5]
cmp eax, 4
ja case.default.0x402d7f
jmp dword [eax*4 + 0x403b90]
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 0x402e54
cmp dword [ebp + 0x34], 0
je 0x402dcb
push edi
push ecx
call fcn.00496d90
mov edx, dword [ebx + 0x34]
mov ecx, dword [ebp + 0x5c]
movzx eax, byte [ecx + 4]
sub eax, 9
je 0x402e3f
sub eax, 1
je 0x402e34
sub eax, 1
jne 0x402e54
cmp edx, 1
jne 0x402df5
push eax
push 9
push 0x110a
push dword [ecx]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x402e51
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 0x402e51
push 1
push 0xffffffffffffffff
push 0x100c
jmp 0x402e48
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 0x402e98
push dword [eax]
call fcn.00404a50
jmp 0x402ea5
mov dword [ecx + 8], 0
mov dword [ecx], 0x4c3c29
push dword [ebp + 0x6c]
lea ecx, [ebp - 0x88]
add ecx, edx
call fcn.00404a50
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.00404a30
push dword [ebx + 0x3c]
lea ecx, [ebp - 0x88]
add ecx, edi
mov edi, dword [ebp + 0x64]
call fcn.00404a30
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.00404a30
mov edx, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x6c]
cmp byte [ebp + 0x63], 0
je 0x4032db
mov edi, dword [ebp + 0x5c]
cmp byte [edi + 4], 0x17
jne 0x4032db
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 0x40332e
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], 0x4c3ca4
push 0xffffffffffffffff
call fcn.004a91e0
add esp, 0xc
mov dword [ebp - 4], 1
mov ecx, 0x4c3c29
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x402fc0
mov eax, dword [edi]
test eax, eax
cmovne ecx, eax
push 1
push 0
push 0xffffffffffffffff
push ecx
mov ecx, dword [0x4d995c]
call fcn.004b04f0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x24], vtable.CKuStringT_char__class_CKuStringUtilA_.0
test edi, edi
je 0x40300e
mov eax, dword [edi + 0x10]
add eax, 0xffffffff
mov dword [edi + 0x10], eax
jne 0x40300e
mov edi, dword [ebp - 0x20]
mov eax, dword [edi + 4]
test eax, eax
je 0x403003
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.004c0c55
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 [0x4d995c]
push 1
call fcn.00401640
mov dword [edi + 8], 0
mov dword [edi], eax
jmp 0x40332e
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 + 0x18]
shl edi, 4
call fcn.00486f40
mov dword [ebp + edi - 0x98], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + edi - 0x90], 6
test eax, eax
je 0x4030c2
push dword [eax]
lea ecx, [ebp - 0x88]
add ecx, edi
call fcn.00404a50
jmp 0x4030d5
mov dword [ebp + edi - 0x80], 0
mov dword [ebp + edi - 0x88], 0x4c3c29
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 0x4030fc
push dword [0x4dba68]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
lea ecx, [ebp - 0x98]
push eax
add ecx, edi
call fcn.00404a30
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 0x403134
push dword [0x4dba68]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
mov ecx, edi
jmp 0x402efc
mov dword [ebx + 0x34], 1
cmp ecx, 8
jne 0x402f01
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 0x40319e
push dword [0x4dba68]
push 0x60
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
mov ecx, edi
call fcn.00404a30
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 0x403119
mov eax, dword [ebp + 0x5c]
mov al, byte [eax + 4]
cmp al, 0xa
je 0x403229
cmp al, 0x19
jne 0x403203
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 0x40329c
mov ecx, dword [ecx*4 + 0x4cf590]
jmp 0x4032a7
cmp cl, 0x49
jne 0x403203
lea eax, [ebp - 0x34]
test ecx, 0x100
je 0x40323f
mov byte [ebp - 0x34], 0x53
jmp 0x40324b
test ecx, 0x200
je 0x40324e
mov byte [ebp - 0x34], 0x73
lea eax, [ebp - 0x33]
test ecx, 0x400
je 0x40325b
mov byte [eax], 0x46
jmp 0x403266
test ecx, 0x800
je 0x403267
mov byte [eax], 0x66
inc eax
test ecx, 0x1000
je 0x403274
mov byte [eax], 0x43
jmp 0x40327f
test ecx, 0x2000
je 0x403280
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 [0x4fd5a8], cl
mov ecx, 0x4fd5a8
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 0x402f07
cmp byte [ebp - 0x34], 0
je 0x4032fe
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 0x403322
cmp eax, 5
je 0x403322
mov ecx, dword [0x4d995c]
lea eax, [ebp - 0x34]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004b04f0
jmp 0x40332e
push ecx
mov ecx, dword [0x4d995c]
call fcn.004015b0
mov edi, dword [ebp + 0x70]
mov eax, dword [edi + 4]
mov dword [ebx + 0xa4], eax
add dword [edi + 0x20], 2
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp + 0x6c]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x44], edi
test eax, eax
je 0x40343a
mov byte [eax], 1
mov ebx, dword [ebp + 0x5c]
mov ecx, dword [0x4d8a7c]
cmp ecx, dword [0x4d8a80]
jne 0x40337a
call fcn.00406580
mov ecx, dword [0x4d8a7c]
cmp ecx, dword [0x4d8a78]
jb 0x40338f
mov eax, dword [0x4dbe24]
mov dword [ecx], eax
mov ecx, dword [0x4d8a7c]
push 0
add ecx, 0xc
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0x64]
mov dword [0x4d8a7c], ecx
lea eax, [ebp - 0x98]
push eax
mov dword [ecx], 0
mov edx, esi
mov dword [ecx + 4], 0x4c3c34
mov dword [ecx + 8], 0
mov ecx, esi
push str.call
call fcn.0049a540
sub dword [0x4d8a7c], 0xc
add esp, 0x14
cmp dword [edi + 4], 0
je 0x403498
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x403450
mov byte [eax], 0
mov eax, dword [ebp + 0x30]
cmp eax, 6
jne 0x40345d
cmp dword [ebp - 0x38], 0
jne 0x403498
mov eax, dword [0x4fd89c]
test al, 1
jne 0x403419
push 0
or eax, 1
mov ecx, 0x4fd8a0
push 0
mov dword [0x4fd89c], eax
call fcn.0042ba30
mov eax, dword [0x4dbe28]
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x403428
test esi, esi
jne 0x403498
mov eax, dword [edi + 4]
test eax, eax
je 0x403498
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x403498
cmp byte [ebp + 0x63], 0
je 0x40335e
mov ebx, dword [ebp + 0x5c]
or byte [ebx + 5], 4
jmp 0x403361
cmp byte [ebp + 0x63], 0
mov eax, dword [ebp + 0x30]
je 0x40345d
and byte [ebx + 5], 0xfb
cmp eax, 5
jne 0x403498
mov eax, dword [ebp - 0x88]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [ebp + 0x18]
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 0x4034b4
push dword [edi]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push 0xd8
push edi
call fcn.004c0c55
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [ebp - 0x21c]
call fcn.00404550
cmp dword [ebp], 0
mov esi, dword [ebp + 0x74]
je 0x4019d8
call edi
cmp byte [ebp + 0x6b], 0
mov edx, dword [ebp + 0x20]
jne 0x4034ed
mov ecx, dword [ebp + 8]
sub ecx, eax
add ecx, edx
cmp ecx, 5
jg 0x4019d8
cmp edx, 0xffffffff
jle 0x403502
xorps xmm0, xmm0
mov dword [0x4dc0e8], eax
movlpd qword [0x4dc0d8], xmm0
mov dword [0x4dc0ec], eax
mov byte [ebp + 0x3b], 1
mov byte [ebp + 0x6b], 1
jmp 0x4019d5
mov edi, dword [ebp + 0x70]
test edi, edi
je 0x403535
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, 0x4dba98
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x16c], 0x4dbe30
call fcn.00466ff0
inc eax
lea ecx, [ebp - 0x15c]
push 0
push eax
call fcn.00404970
mov ecx, dword [0x4d8a7c]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x14c], 0x4dbf35
cmp ecx, dword [0x4d8a80]
jne 0x40358f
call fcn.00406580
mov ecx, dword [0x4d8a7c]
cmp ecx, dword [0x4d8a78]
jb 0x4035a4
mov eax, dword [0x4dbe24]
mov dword [ecx], eax
mov ecx, dword [0x4d8a7c]
add ecx, 0xc
lea eax, [ebp - 0x16c]
push 0
push 0
mov dword [0x4d8a7c], 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.0049a540
sub dword [0x4d8a7c], 0xc
add esp, 0x14
test edi, edi
je 0x4034b4
jmp 0x403498
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 [0x4fd89c]
mov edx, dword [esi]
test al, 1
jne 0x403629
push 0
or eax, 1
mov ecx, 0x4fd8a0
push 0
mov dword [0x4fd89c], eax
call fcn.0042ba30
mov eax, dword [0x4dbe28]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x40363c
cmp ecx, dword [0x4fd8a0]
jne 0x403647
mov eax, dword [edx + 8]
test eax, eax
je 0x403647
mov cl, byte [eax]
jmp 0x403649
xor cl, cl
mov al, byte [esi + 0x24]
cmp al, byte [esi + 0x25]
jb 0x40367d
cmp cl, 0xe2
je 0x40367d
cmp cl, 0xce
je 0x40367d
cmp cl, 0xdc
je 0x40367d
cmp cl, 0xdd
je 0x40367d
cmp cl, 0xd8
je 0x40367d
cmp cl, 0xd9
je 0x40367d
cmp cl, 0xda
je 0x40367d
cmp cl, 0xdb
jne 0x4034ba
mov byte [0x4dc0ad], 0
inc byte [esi + 0x24]
mov ecx, dword [0x4d8a7c]
mov esi, dword [0x4dc03c]
cmp ecx, dword [0x4d8a80]
jne 0x4036a6
call fcn.00406580
mov ecx, dword [0x4d8a7c]
cmp ecx, dword [0x4d8a78]
jb 0x4036bb
mov eax, dword [0x4dbe24]
mov dword [ecx], eax
mov ecx, dword [0x4d8a7c]
add ecx, 0xc
mov dword [0x4d8a7c], ecx
push 0
push 0
mov dword [ecx + 4], esi
mov esi, dword [ebp + 0x10]
push 0
mov dword [ecx], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi]
mov edx, ecx
push 0
push str.call
call fcn.0049a540
sub dword [0x4d8a7c], 0xc
add esp, 0x14
dec byte [esi + 0x24]
jmp 0x4034ba
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
je 0x40372d
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x403726
push 0xf
call esi
test eax, eax
jne 0x403726
mov eax, 2
jmp 0x40372f
mov eax, 1
jmp 0x40372f
xor eax, eax
mov ecx, dword [0x4d995c]
push eax
mov dword [ebx + 0x38], eax
call fcn.004015b0
push 0
push dword [ebx + 0x38]
lea ecx, [ebp - 0x13c]
call fcn.00404970
mov ecx, dword [0x4d8a7c]
mov byte [0x4dc080], 1
cmp ecx, dword [0x4d8a80]
jne 0x40376e
call fcn.00406580
mov ecx, dword [0x4d8a7c]
cmp ecx, dword [0x4d8a78]
jb 0x403783
mov eax, dword [0x4dbe24]
mov dword [ecx], eax
mov ecx, dword [0x4d8a7c]
add ecx, 0xc
mov dword [0x4d8a7c], ecx
mov dword [ecx], 0
mov dword [ecx + 4], str.OnClipboardChange
mov dword [ecx + 8], 0
mov ecx, dword [0x4dc074]
test ecx, ecx
je 0x4037b5
call fcn.00401700
mov ecx, dword [0x4dc074]
cmp dword [ebp + 0x44], 0
jne 0x4037d6
xor eax, eax
test ecx, ecx
mov ecx, 0x4dc054
sete al
push eax
push 1
lea eax, [ebp - 0x13c]
push eax
call fcn.0049db00
sub dword [0x4d8a7c], 0xc
mov byte [0x4dc080], 0
jmp 0x4034ba
mov ebx, dword [ebp + 0x2c]
mov ecx, dword [0x4d8a7c]
mov dword [ebp - 0x104], 6
mov eax, dword [ebx + 8]
mov dword [ebp - 0x10c], eax
cmp ecx, dword [0x4d8a80]
jne 0x403818
call fcn.00406580
mov ecx, dword [0x4d8a7c]
cmp ecx, dword [0x4d8a78]
jb 0x40382d
mov eax, dword [0x4dbe24]
mov dword [ecx], eax
mov ecx, dword [0x4d8a7c]
add ecx, 0xc
lea eax, [ebp - 0x10c]
push 0
push 0
mov dword [0x4d8a7c], 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.0049a540
sub dword [0x4d8a7c], 0xc
add esp, 0x14
mov eax, dword [ebx + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x4034ba
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.00404970
sar ebx, 0x10
lea ecx, [ebp - 0x17c]
movzx eax, bx
cdq
push edx
push eax
call fcn.00404970
mov ecx, dword [0x4d8a7c]
cmp ecx, dword [0x4d8a80]
jne 0x4038d4
call fcn.00406580
mov ecx, dword [0x4d8a7c]
cmp ecx, dword [0x4d8a78]
jb 0x4038e9
mov eax, dword [0x4dbe24]
mov dword [ecx], eax
mov ecx, dword [0x4d8a7c]
push 0
push 0
push 3
lea eax, [ebp - 0x19c]
add ecx, 0xc
mov edx, esi
mov dword [0x4d8a7c], 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.0049a540
add esp, 0x14
sub dword [0x4d8a7c], 0xc
jmp 0x4034ba
mov eax, dword [ebp + 0x48]
mov ecx, dword [0x4d8a7c]
mov byte [ebp + 0x14], al
sar eax, 0x10
mov byte [ebp + 0x15], al
mov eax, dword [ebp + 0x2c]
mov byte [ebp + 0x16], 0
mov dword [ebp - 0x124], 6
mov dword [ebp - 0x114], 0
mov eax, dword [eax + 8]
mov dword [ebp - 0x12c], eax
lea eax, [ebp + 0x14]
mov dword [ebp - 0x11c], eax
cmp ecx, dword [0x4d8a80]
jne 0x403982
call fcn.00406580
mov ecx, dword [0x4d8a7c]
cmp ecx, dword [0x4d8a78]
jb 0x403997
mov eax, dword [0x4dbe24]
mov dword [ecx], eax
mov ecx, dword [0x4d8a7c]
push 0
push 0
push 2
lea eax, [ebp - 0x12c]
jmp 0x4038f5
mov edx, dword [ebp - 0x18]
mov al, byte [edx + 0x10]
add al, 0x64
cmp al, 3
ja 0x4039ba
mov eax, dword [ebp + 0x48]
mov dword [ebx + 0x38], eax
mov ecx, dword [ebp + 0xc]
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.00414480
jmp 0x4034ba
mov ecx, dword [0x4d70f4]
mov byte [ecx + 0xc8], 0
jmp 0x4039f1
mov ecx, dword [0x4d70f4]
mov eax, dword [0x4d9950]
test eax, eax
je 0x403a22
lea ecx, [ebp + 0x3c]
push ecx
push eax
push dword [0x4d9978]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 0x74]
test eax, eax
jne 0x4019d8
mov ecx, dword [0x4d70f4]
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 [0x4d70f4]
mov byte [eax + 0xc8], 0
jmp 0x4019cf
cmp ebx, 0xffffffff
jle 0x403a6c
xorps xmm0, xmm0
mov dword [0x4dc0e8], eax
movlpd qword [0x4dc0d8], xmm0
xor ecx, ecx
mov dword [0x4dc0ec], eax
cmp byte [ebp + 0x3a], cl
movzx eax, byte [0x4d9857]
cmovne eax, ecx
mov byte [0x4d9857], al
cmp byte [ebp + 0x39], cl
je 0x4025f7
mov eax, dword [0x4d997c]
dec eax
mov dword [0x4d997c], eax
test ebx, ebx
jle 0x4025f7
test eax, eax
jmp 0x4025bb