Function at 0x300496a2
Capabilities:
Open clipboard

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
and dword [ebp - 4], 0
push esi
mov esi, dword [sym.imp.USER32.dll_GetWindowLongA]
push edi
push 4
push dword [ebp + 0xc]
xor edi, edi
inc edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], edi
call esi
test eax, eax
mov dword [ebp - 0xc], eax
je 0x30049a4d
push ebx
push dword [ebp + 0xc]
mov ebx, dword [sym.imp.USER32.dll_IsWindowVisible]
call ebx
test eax, eax
je 0x30049880
push 5
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_GetWindow]
test eax, eax
mov dword [ebp + 0xc], eax
je 0x30049880
push eax
call ebx
test eax, eax
je 0x300497ca
push 0
push dword [ebp + 0xc]
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ebx, eax
push ebx
call edi
mov esi, dword [eax + 0x48]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
and esi, 0x20
call ebx
push dword [0x300967d0]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x30049766
movzx eax, word [0x30096818]
push eax
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x30049759
push 1
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x30049760
mov dword [ebp - 4], 0xbb9
call dword [sym.imp.USER32.dll_CloseClipboard]
test esi, esi
je 0x3004976e
and dword [ebp - 4], 0
push dword [ebp + 0xc]
call fcn.3006c0dc
test eax, eax
je 0x3004977e
and dword [ebp - 8], 0
push dword [ebp - 0xc]
call edi
lea esi, [eax + 0xe6]
mov eax, dword [esi]
test eax, eax
je 0x30049796
push eax
call edi
push dword [esi]
call ebx
push dword [ebp - 0xc]
call ebx
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0xc]
call fcn.3006c126
test eax, eax
je 0x300497af
and dword [ebp - 0x10], 0
add eax, 0x9c4
cmp dword [ebp - 0x14], 0
mov dword [ebp + 0xc], eax
je 0x3004998a
inc eax
mov dword [ebp + 0xc], eax
jmp 0x3004998a
push dword [0x300967d0]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x300497fd
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 2
call esi
test eax, eax
jne 0x300497f0
push 8
call esi
test eax, eax
je 0x300497f7
mov dword [ebp - 4], 0xbbd
call dword [sym.imp.USER32.dll_CloseClipboard]
push dword [ebp - 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], edi
mov dword [ebp + 0xc], 0x9c4
call esi
mov dword [ebp - 0x20], eax
mov eax, dword [eax + 0xe6]
test eax, eax
je 0x30049981
push eax
call esi
mov ebx, eax
push dword [ebx + 0x14]
call esi
mov ecx, dword [eax + 0x14]
cmp ecx, 0xffffffff
je 0x30049865
imul ecx, ecx, 0x34
push dword [ecx + eax + 0x44]
push dword [ebx + 0x18]
call fcn.3006473a
test eax, eax
je 0x3004985d
cmp dword [eax], edi
jne 0x3004985d
mov ecx, dword [eax + 8]
cmp dword [ecx + eax + 0x54], 0
jl 0x3004985d
and dword [ebp - 8], 0
push dword [ebx + 0x18]
call fcn.30064767
push dword [ebx + 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call esi
mov eax, dword [ebp - 0x20]
push dword [eax + 0xe6]
call esi
jmp 0x30049981
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
mov eax, dword [esi + 0x4a]
xor ebx, ebx
cmp eax, ebx
lea ecx, [eax + eax + 0xdac]
mov dword [ebp + 0xc], ecx
je 0x300498a1
mov dword [ebp - 0x10], ebx
test word [esi + 0x22], 0x100
je 0x300498e6
cmp dword [ebp - 0x10], ebx
jne 0x300498e6
inc dword [ebp + 0xc]
mov dword [ebp - 0x14], edi
push dword [0x300967d0]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
mov edi, 0xbbc
je 0x30049934
movzx eax, word [0x3009636c]
mov ebx, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push eax
call ebx
test eax, eax
je 0x300498eb
mov dword [ebp - 4], 0xbba
jmp 0x3004992c
mov dword [ebp - 0x14], ebx
jmp 0x300498b4
movzx eax, word [0x30096370]
push eax
call ebx
test eax, eax
je 0x30049902
mov dword [ebp - 4], 0xbbb
jmp 0x3004992c
movzx eax, word [0x30096378]
push eax
call ebx
test eax, eax
je 0x30049915
mov dword [ebp - 4], edi
jmp 0x3004992c
push 8
call ebx
test eax, eax
jne 0x30049925
push 2
call ebx
test eax, eax
je 0x3004992c
mov dword [ebp - 4], 0xbbd
call dword [sym.imp.USER32.dll_CloseClipboard]
xor ebx, ebx
cmp dword [esi + 0x32], ebx
jle 0x30049952
cmp dword [ebp - 4], edi
mov dword [ebp - 8], ebx
mov dword [ebp - 0x1c], ebx
jl 0x30049981
cmp dword [ebp - 4], 0xbbe
jg 0x30049981
mov dword [ebp - 4], ebx
jmp 0x30049981
cmp dword [ebp - 4], edi
jl 0x30049960
cmp dword [ebp - 4], 0xbbe
jle 0x30049963
mov dword [ebp - 4], ebx
add esi, 0x1d6
push dword [esi]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp dword [eax + 0x60], ebx
je 0x30049979
mov dword [ebp - 8], ebx
push dword [esi]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
xor eax, eax
cmp dword [ebp - 4], eax
je 0x30049996
mov dword [ebp - 0x18], eax
jmp 0x3004999d
mov dword [ebp - 4], 0xbb8
mov edi, dword [sym.imp.USER32.dll_GetMenuState]
push eax
mov ebx, 0xcd
push ebx
push dword [ebp + 8]
call edi
cmp eax, 0xffffffff
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
je 0x300499d2
push dword [ebp + 0x10]
push dword [ebp - 4]
push ebx
push dword [ebp + 8]
call fcn.30066aee
push dword [ebp - 0x18]
push ebx
push dword [ebp + 8]
call esi
push 0
mov ebx, 0xc9
push ebx
push dword [ebp + 8]
call edi
cmp eax, 0xffffffff
je 0x300499fc
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
push dword [ebp + 8]
call fcn.30066aee
push dword [ebp - 0x10]
push ebx
push dword [ebp + 8]
call esi
push dword [ebp - 8]
push 0xca
push dword [ebp + 8]
call esi
push 0
mov ebx, 0xcc
push ebx
push dword [ebp + 8]
call edi
cmp eax, 0xffffffff
je 0x30049a31
push dword [ebp - 0x1c]
push ebx
push dword [ebp + 8]
call esi
push dword [ebp - 8]
push 0xd3
push dword [ebp + 8]
call esi
push 0
mov ebx, 0xcb
push ebx
push dword [ebp + 8]
call edi
cmp eax, 0xffffffff
je 0x30049a4c
push dword [ebp - 8]
push ebx
push dword [ebp + 8]
call esi
pop ebx
pop edi
pop esi
leave
ret 0xc