Function at 0x10051f80
Capabilities:
Open clipboard

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x17c
cmp dword [ebp + 0x10], 0xd0
je 0x10051fa2
cmp dword [ebp + 0x10], 0xb0
je 0x10051fa2
xor eax, eax
jmp 0x10052440
cmp dword [ebp + 0xc], 0
je 0x10051fb0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
jne 0x10051fc5
xor eax, eax
jmp 0x10052440
cmp dword [ebp + 0xc], 0
jne 0x10051fd2
xor eax, eax
jmp 0x10052440
push 8
call dword [0x100609f0]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x10052012
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.10022a80
add esp, 0xc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
je 0x1005200d
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
jmp 0x100523df
push 2
call dword [0x100609f0]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x100520c5
push 9
call dword [0x100609f0]
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], 0
cmp dword [ebp - 0x10], 0
jne 0x10052054
call sub.Ltkrnu.dll_Ordinal_48
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x10052054
mov dword [ebp - 8], 1
push 0x1005c38c
push 0x6a
mov eax, dword [ebp + 8]
push eax
call sub.Ltkrnu.dll_Ordinal_320
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call sym.Ltdisu.dll_L_ConvertFromDDB
mov dword [ebp - 4], eax
push 0x1005c3b8
push 0x6c
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp + 8]
push ecx
call sub.Ltkrnu.dll_Ordinal_332
cmp dword [ebp - 8], 0
je 0x100520ad
push 0x1005c3e4
push 0x6f
mov edx, dword [ebp - 0x10]
push edx
call sub.Ltkrnu.dll_Ordinal_316
cmp dword [ebp - 4], 1
je 0x100520c0
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
jmp 0x100523df
push 0xe
call dword [0x100609f0]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x100521fa
lea eax, [ebp - 0x168]
push eax
push 0x6c
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
test eax, eax
jne 0x100520fe
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
push 0x18
mov edx, dword [ebp - 0x154]
sub edx, dword [ebp - 0x15c]
add edx, 1
push edx
mov eax, dword [ebp - 0x158]
sub eax, dword [ebp - 0x160]
add eax, 1
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call sub.Ltkrnu.dll_Ordinal_116
push 1
mov eax, dword [ebp + 0xc]
push eax
call sub.Ltkrnu.dll_Ordinal_2
cmp eax, 1
je 0x1005214a
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
push 0xffffff
mov ecx, dword [ebp + 0xc]
push ecx
call sub.Ltkrnu.dll_Ordinal_61
mov edx, dword [ebp + 0xc]
push edx
call sub.Ltkrnu.dll_Ordinal_45
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x16c], 0
jne 0x10052186
mov eax, dword [ebp + 0xc]
push eax
call sub.Ltkrnu.dll_Ordinal_67
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x10]
sub edx, 1
push edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
sub ecx, 1
push ecx
push 0
push 0
lea edx, [ebp - 0xf8]
push edx
call dword [sym.imp.USER32.dll_SetRect]
lea eax, [ebp - 0xf8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0x16c]
push edx
call dword [sym.imp.GDI32.dll_PlayEnhMetaFile]
test eax, eax
jne 0x100521e9
mov eax, dword [ebp - 0x16c]
push eax
call sub.Ltkrnu.dll_Ordinal_52
mov ecx, dword [ebp + 0xc]
push ecx
call sub.Ltkrnu.dll_Ordinal_67
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
mov edx, dword [ebp - 0x16c]
push edx
call sub.Ltkrnu.dll_Ordinal_52
jmp 0x100523df
push 3
call dword [0x100609f0]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x100523d5
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x170], 0
jne 0x10052235
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x174], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x17c], ecx
mov edx, dword [ebp - 0x170]
push edx
lea eax, [ebp - 0x17c]
push eax
lea ecx, [ebp - 0x174]
push ecx
call fcn.10051c20
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x174]
mov dword [edx + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x17c]
mov dword [ecx + 0x10], edx
push 0x18
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call sub.Ltkrnu.dll_Ordinal_116
push 1
mov eax, dword [ebp + 0xc]
push eax
call sub.Ltkrnu.dll_Ordinal_2
cmp eax, 1
je 0x100522c6
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
push 0xffffff
mov edx, dword [ebp + 0xc]
push edx
call sub.Ltkrnu.dll_Ordinal_61
mov eax, dword [ebp + 0xc]
push eax
call sub.Ltkrnu.dll_Ordinal_45
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0
jne 0x1005230c
mov ecx, dword [ebp + 0xc]
push ecx
call sub.Ltkrnu.dll_Ordinal_67
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x178]
push edx
call dword [sym.imp.GDI32.dll_SetMapMode]
test eax, eax
je 0x10052376
mov eax, dword [ebp - 0x170]
cmp dword [eax], 8
je 0x1005233c
mov ecx, dword [ebp - 0x170]
cmp dword [ecx], 7
jne 0x10052376
push 0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
push edx
mov eax, dword [ebp - 0x178]
push eax
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
push 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x178]
push edx
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x178]
push edx
call dword [sym.imp.GDI32.dll_PlayMetaFile]
test eax, eax
jne 0x100523bd
mov eax, dword [ebp - 0x178]
push eax
call sub.Ltkrnu.dll_Ordinal_52
mov ecx, dword [ebp + 0xc]
push ecx
call sub.Ltkrnu.dll_Ordinal_67
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
mov eax, dword [ebp - 0x178]
push eax
call sub.Ltkrnu.dll_Ordinal_52
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x100523df
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x10052440
mov edx, dword [0x10060d60]
push edx
call dword [0x100609f0]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x10052435
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [ebp - 0xe8]
push edx
call fcn.10022a80
add esp, 0xc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
jne 0x10052435
push 1
lea eax, [ebp - 0xe8]
push eax
push 0
mov ecx, dword [ebp + 0xc]
push ecx
call sym.Ltdisu.dll_L_SetBitmapRgnFromMask
lea edx, [ebp - 0xe8]
push edx
call sub.Ltkrnu.dll_Ordinal_67
call dword [sym.imp.USER32.dll_CloseClipboard]
mov eax, 1
mov esp, ebp
pop ebp
ret 0xc