Function at 0x41c330
Capabilities:
Open clipboard
Read clipboard data
Write clipboard data

Disassembly:
sub esp, 0x208
mov eax, dword [0x477b14]
push ebx
mov dword [esp + 0x208], eax
mov eax, dword [esp + 0x210]
push ebp
add eax, 0xfffffffc
cmp eax, 0x11
push esi
push edi
ja case.0x41c355.5
jmp dword [eax*4 + 0x41cac8]
mov eax, dword [esp + 0x220]
push eax
push 0x490d70
call fcn.00422140
add esp, 8
xor eax, eax
mov ecx, dword [esp + 0x214]
pop edi
pop esi
pop ebp
pop ebx
call fcn.00444c27
add esp, 0x208
ret 0x10
mov ecx, dword [esp + 0x220]
push ecx
call fcn.00408040
add esp, 4
cmp eax, 0xffffffff
je case.0x41c355.5
mov edx, dword [0x47c0f8]
mov ebx, dword [edx + eax*4]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcmpW]
xor esi, esi
xor edi, edi
mov ecx, dword [0x490d78]
test ecx, ecx
je 0x41c409
mov eax, dword [0x490d7c]
sub eax, ecx
sar eax, 9
cmp esi, eax
jae 0x41c409
lea eax, [edi + ecx]
push eax
lea eax, [ebx + 0xc]
push eax
call ebp
test eax, eax
je 0x41c3e3
inc esi
add edi, 0x200
jmp 0x41c3b4
mov edi, dword [0x490d78]
mov ecx, dword [ebx + 4]
shl esi, 9
add esi, edi
push ecx
add esi, 0x100
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, 1
jmp 0x41c373
mov edx, dword [esp + 0x220]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push edx
lea eax, [esp + 0x118]
push eax
call esi
add ebx, 0xc
push ebx
lea ecx, [esp + 0x18]
push ecx
call esi
lea edx, [esp + 0x14]
push edx
mov ecx, 0x490d74
call fcn.0041c250
mov eax, 1
jmp 0x41c373
push 0xd
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je case.0x41c355.5
mov eax, dword [0x47c354]
push eax
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je case.0x41c355.5
mov ebx, dword [esp + 0x220]
test ebx, ebx
je 0x41c479
mov word [ebx], 0
push 0xd
xor ebp, ebp
call dword [sym.imp.USER32.dll_GetClipboardData]
mov edi, eax
test edi, edi
je 0x41c4b2
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
test esi, esi
je 0x41c4b2
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test ebx, ebx
mov ebp, eax
je 0x41c4ab
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov eax, ebp
jmp 0x41c373
mov edi, dword [esp + 0x220]
test edi, edi
je case.0x41c355.5
mov ecx, dword [0x47c354]
push ecx
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je case.0x41c355.5
call dword [sym.imp.USER32.dll_EmptyClipboard]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [eax + eax + 2]
push edx
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
push 0xd
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov eax, 1
jmp 0x41c373
mov eax, dword [esp + 0x220]
cmp eax, 1
jne 0x41c544
mov eax, dword [0x47c080]
jmp 0x41c373
cmp eax, 2
jne 0x41c580
mov edx, dword [esp + 0x224]
xor eax, eax
test edx, edx
setne al
test eax, eax
mov dword [0x47c080], eax
je 0x41c580
push 0x2000
push 0
push 0
call dword [sym.imp.WINMM.dll_PlaySoundW]
push 0
push 0
push 0
push str.close_all
call dword [sym.imp.WINMM.dll_mciSendStringW]
mov eax, 1
jmp 0x41c373
mov eax, dword [esp + 0x220]
cmp eax, 1
jne 0x41c5a0
call fcn.00422f60
jmp 0x41c373
cmp eax, 2
jne 0x41c5bf
mov eax, dword [esp + 0x224]
push eax
call fcn.00422fe0
add esp, 4
mov eax, 1
jmp 0x41c373
cmp eax, 3
jne 0x41c5ce
call fcn.00422eb0
jmp 0x41c373
cmp eax, 4
jne 0x41c5e3
mov ecx, dword [esp + 0x224]
push ecx
call fcn.00422f10
add esp, 4
mov eax, 1
jmp 0x41c373
mov eax, dword [esp + 0x220]
cmp eax, 1
jne 0x41c613
mov edx, dword [esp + 0x224]
push edx
call fcn.00427970
add esp, 4
mov eax, 1
jmp 0x41c373
cmp eax, 2
jne 0x41c66b
mov eax, dword [esp + 0x224]
push eax
call fcn.00425be0
add esp, 4
test eax, eax
je 0x41c8d8
lea esi, [eax + 4]
lea ecx, [eax + 0x1004]
push esi
push ecx
add eax, 0x2004
push eax
call fcn.00423070
add esp, 0xc
test esi, esi
jne 0x41c652
mov esi, 0x466680
mov edx, dword [esp + 0x228]
push esi
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, 1
jmp 0x41c373
cmp eax, 3
jne 0x41c6a9
mov eax, dword [esp + 0x224]
push eax
call fcn.00425be0
add esp, 4
test eax, eax
je 0x41c8d8
mov ecx, dword [esp + 0x228]
push ecx
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
call fcn.00426e30
mov eax, 1
jmp 0x41c373
cmp eax, 4
jne 0x41c6dc
mov edx, dword [esp + 0x224]
push edx
call fcn.00425be0
mov ecx, dword [esp + 0x22c]
add esp, 4
push ecx
add eax, 0x2104
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, 1
jmp 0x41c373
cmp eax, 5
jne 0x41c70c
mov edx, dword [esp + 0x224]
push edx
call fcn.00425be0
add esp, 4
test eax, eax
je 0x41c8d8
mov ecx, dword [esp + 0x228]
mov dword [eax], ecx
mov eax, 1
jmp 0x41c373
cmp eax, 6
jne 0x41c76c
mov edx, dword [esp + 0x224]
push edx
call fcn.00425be0
mov edi, eax
add esp, 4
test edi, edi
je 0x41c8d8
mov esi, dword [esp + 0x228]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
call fcn.00445884
add esp, 4
push esi
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [edi + 0x2918]
call fcn.00413b00
mov eax, 1
jmp 0x41c373
cmp eax, 7
jne 0x41c7a0
mov edx, dword [esp + 0x224]
push edx
call fcn.00425be0
add esp, 4
test eax, eax
je 0x41c8d8
mov ecx, dword [esp + 0x228]
mov dword [eax + 0x2904], ecx
mov eax, 1
jmp 0x41c373
cmp eax, 8
jne 0x41c7d4
mov edx, dword [esp + 0x224]
push edx
call fcn.00425be0
add esp, 4
test eax, eax
je 0x41c8d8
mov ecx, dword [esp + 0x228]
mov dword [eax + 0x2908], ecx
mov eax, 1
jmp 0x41c373
cmp eax, 9
jne 0x41c80f
mov edx, dword [esp + 0x224]
push edx
call fcn.00425be0
add esp, 4
test eax, eax
je 0x41c8d8
mov ecx, dword [esp + 0x228]
push ecx
add eax, 0x1004
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, 1
jmp 0x41c373
cmp eax, 0xa
jne 0x41c84a
mov edx, dword [esp + 0x224]
push edx
call fcn.00425be0
add esp, 4
test eax, eax
je 0x41c8d8
mov ecx, dword [esp + 0x228]
push ecx
add eax, 0x2084
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, 1
jmp 0x41c373
cmp eax, 0xb
jne 0x41c87a
mov edx, dword [esp + 0x224]
push edx
call fcn.00425be0
add esp, 4
test eax, eax
je 0x41c8d8
mov ecx, dword [esp + 0x228]
mov dword [eax + 0x290c], ecx
mov eax, 1
jmp 0x41c373
cmp eax, 0xc
jne 0x41c8d8
mov edx, dword [esp + 0x224]
push edx
call fcn.00425be0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x41c8d8
lea edi, [ebx + 0x2918]
mov ecx, edi
xor esi, esi
call fcn.004107e0
test eax, eax
jbe 0x41c8d1
jmp 0x41c8b0
mov eax, dword [ebx + 0x291c]
mov ecx, dword [eax + esi*4]
lea eax, [eax + esi*4]
push ecx
call fcn.00445979
add esp, 4
mov ecx, edi
inc esi
call fcn.004107e0
cmp esi, eax
jb 0x41c8b0
mov ecx, edi
call fcn.00437a90
mov eax, 1
jmp 0x41c373
mov esi, dword [esp + 0x220]
push esi
call fcn.00408720
add esp, 4
test eax, eax
je case.0x41c355.5
mov eax, dword [esi + 0x79c]
test eax, eax
je case.0x41c355.5
mov eax, dword [esp + 0x224]
test eax, eax
jne 0x41c931
mov ecx, dword [esi + 0xb94]
mov edx, dword [ecx]
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x228]
mov dword [ecx], eax
mov eax, 1
jmp 0x41c373
cmp eax, 1
jne 0x41c949
mov ecx, dword [esi + 0xb94]
mov eax, dword [esp + 0x228]
mov edx, dword [ecx]
push eax
call dword [edx + 0x18]
mov eax, 1
jmp 0x41c373
mov esi, dword [esp + 0x220]
push esi
call fcn.00408720
add esp, 4
test eax, eax
je case.0x41c355.5
mov eax, dword [esi + 0x7bc]
test eax, eax
jne 0x41c982
mov ecx, dword [esp + 0x224]
mov dword [esi + 0x7bc], ecx
mov eax, dword [esi + 0x7c0]
test eax, eax
jne 0x41c999
mov edx, dword [esp + 0x228]
mov dword [esi + 0x7c0], edx
mov eax, 1
jmp 0x41c373
mov eax, dword [0x47c51c]
test eax, eax
je case.0x41c355.5
mov eax, dword [0x47c520]
test eax, eax
jne case.0x41c355.5
mov eax, 1
jmp 0x41c373
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x220]
push eax
push ecx
call fcn.00427520
add esp, 8
jmp 0x41c373
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x4923c0]
je 0x41ca1e
mov edx, dword [esp + 0x228]
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x220]
push edx
push eax
push ecx
push 0x13
call fcn.0041a930
add esp, 0x10
mov eax, 1
jmp 0x41c373
mov eax, dword [esp + 0x220]
test eax, eax
jne 0x41ca7c
mov edx, dword [esp + 0x228]
mov eax, edx
shr eax, 8
xor ecx, ecx
test al, 4
je 0x41ca40
mov ecx, 1
test al, 2
je 0x41ca47
or ecx, 2
test al, 1
je 0x41ca4e
or ecx, 4
test al, 8
je 0x41ca55
or ecx, 8
mov eax, dword [esp + 0x224]
movzx edx, dl
push edx
push ecx
mov ecx, dword [0x47c354]
add eax, 0xa
push eax
push ecx
call dword [sym.imp.USER32.dll_RegisterHotKey]
mov eax, 1
jmp 0x41c373
cmp eax, 1
jne 0x41ca98
mov edx, dword [esp + 0x224]
mov eax, dword [0x47c354]
add edx, 0xa
push edx
push eax
call dword [sym.imp.USER32.dll_UnregisterHotKey]
mov eax, 1
jmp 0x41c373
mov ecx, dword [esp + 0x220]
mov dword [0x4914ec], ecx
mov eax, 1
jmp 0x41c373
call fcn.00408930
mov eax, 1
jmp 0x41c373