Function at 0x453aa0
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4cb29e
push eax
mov dword fs:[0], esp
mov eax, dword [esp + 0x20]
sub esp, 0x164
push ebx
push ebp
push esi
push edi
xor edi, edi
cmp eax, edi
je 0x45414d
mov ebp, dword [esp + 0x184]
cmp ebp, edi
je 0x45414d
mov ecx, ebp
mov dword [esp + 0x10], edi
call fcn.0045b1b0
test eax, eax
je 0x453b2e
push 0x5c
call fcn.004be967
mov esi, eax
add esp, 4
mov dword [esp + 0x3c], esi
cmp esi, edi
mov dword [esp + 0x17c], edi
je 0x453b17
mov ecx, ebp
call fcn.0045b1b0
push eax
mov ecx, esi
call fcn.00459cd0
jmp 0x453b19
xor eax, eax
mov dword [esp + 0x17c], 0xffffffff
mov ebp, eax
mov dword [esp + 0x10], 1
push 0xffffffffffffffff
mov ecx, ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
call fcn.0045ac50
mov edi, eax
push 0xffffffffffffffff
dec edi
mov ecx, ebp
mov dword [esp + 0x24], edi
call fcn.0045acc0
mov esi, dword [esp + 0x18c]
mov ebx, eax
dec ebx
test esi, esi
mov dword [esp + 0x24], ebx
je 0x453b8b
push esi
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x453b8b
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov edi, edx
mov ebx, eax
mov ecx, ebp
call fcn.0045a9a0
test eax, eax
je 0x454131
mov esi, dword [esp + 0x18]
test esi, esi
jl 0x454131
mov eax, dword [esp + 0x1c]
test eax, eax
jl 0x454131
push 0xffffffffffffffff
mov ecx, ebp
call fcn.0045ac50
cmp edi, eax
jge 0x454131
push 0xffffffffffffffff
mov ecx, ebp
call fcn.0045acc0
cmp ebx, eax
jge 0x454131
cmp esi, edi
jge 0x454131
cmp dword [esp + 0x1c], ebx
jge 0x454131
mov ecx, ebp
call fcn.0045a980
mov esi, 1
cmp eax, esi
je 0x453c05
mov ecx, dword [esp + 0x188]
push ecx
mov ecx, ebp
call fcn.0045c940
lea ecx, [esp + 0x9c]
call fcn.00459c90
mov ebx, dword [esp + 0x190]
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0xd4]
push 0x50
push edx
push 0x45d
push ebx
mov dword [esp + 0xc4], esi
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], esi
call edi
mov ecx, dword [esp + 0x194]
lea eax, [esp + 0xd4]
push 0x1f4
push eax
push ecx
push ebx
call fcn.004539e0
add esp, 0x10
mov esi, eax
push 0
push 0
push 0x402
push 0x208
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0x27100000
push 0
push 0x401
push 0x208
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
lea edx, [esp + 0xd4]
push 0x50
push edx
push 0x45e
push ebx
call edi
lea eax, [esp + 0xd4]
push eax
push 0x1fb
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
lea ecx, [esp + 0x9c]
mov dword [esp + 0x30], eax
push ecx
mov ecx, ebp
call fcn.0045a2c0
test eax, eax
je 0x453da3
push 0xffffffffffffffff
mov ecx, ebp
call fcn.0045b0c0
test eax, eax
jne 0x453dd3
mov edi, dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [0x4eba3c]
test eax, eax
jne 0x453dd3
push 0xffffffffffffffff
mov ecx, ebp
call fcn.0045acc0
mov ecx, eax
mov eax, 0x51eb851f
add ecx, 0x32
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jge 0x453d3a
mov edx, 1
jmp 0x453d59
push 0xffffffffffffffff
mov ecx, ebp
call fcn.0045acc0
mov ecx, eax
mov eax, 0x51eb851f
add ecx, 0x32
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push 0
push 0
push edx
mov ecx, ebp
call fcn.0045a6b0
test eax, eax
je 0x453dd3
push 0
mov ecx, ebp
call fcn.0045b270
push eax
push 0x402
push 0x208
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push esi
call fcn.00453a20
add esp, 4
push esi
call edi
push 0xffffffffffffffff
mov ecx, ebp
call fcn.0045b0c0
test eax, eax
je 0x453d02
jmp 0x453dd3
mov edx, dword [ebp + 0x28]
lea eax, [esp + 0x124]
push edx
push 0x3ed
push ebx
push eax
call fcn.0044c380
push 0
lea ecx, [esp + 0x138]
push 0x45d
push ecx
push esi
push ebx
call fcn.0044ad50
add esp, 0x24
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [0x4eba3c]
xor esi, esi
cmp eax, esi
je 0x453e14
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.USER32.dll_SetCursor]
cmp dword [esp + 0x10], esi
je 0x453e0a
cmp ebp, esi
je 0x453e0a
mov ecx, ebp
call fcn.00459f00
push ebp
call fcn.004be975
add esp, 4
mov eax, 1
jmp 0x45414f
mov ecx, ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], esi
call fcn.0045b1b0
test eax, eax
je 0x453e96
mov ecx, ebp
call fcn.0045b1b0
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
call edi
add eax, 0x16
push eax
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
push ebx
mov dword [esp + 0x3c], ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
xor eax, eax
mov ecx, ebp
mov dword [esi], 0x14
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
add esi, 0x14
call fcn.0045b1b0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, ebp
call fcn.0045b1b0
push eax
call edi
push ebx
mov byte [eax + esi + 1], 0
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push 0xffffffffffffffff
mov ecx, ebp
call fcn.0045afc0
test eax, eax
je 0x453fee
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
sub eax, edx
inc eax
push eax
mov eax, dword [esp + 0x24]
sub eax, ecx
inc eax
push eax
push edx
push ecx
push 0xffffffffffffffff
mov ecx, ebp
call fcn.0045afc0
push eax
call fcn.0044a240
add esp, 0x14
mov esi, eax
lea eax, [esp + 0x48]
mov dword [esp + 0x34], esi
push eax
push 0x54
push esi
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
je 0x453fe7
mov ecx, dword [esp + 0x54]
lea eax, [ecx + 3]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x80]
sar eax, 2
imul eax, dword [esp + 0x50]
lea ebx, [edx*4]
shl eax, 2
test ebx, ebx
mov dword [esp + 0x3c], eax
jne 0x453f31
mov ecx, dword [esp + 0x5a]
cmp cx, 8
ja 0x453f31
mov ebx, 1
shl ebx, cl
shl ebx, 2
lea eax, [ebx + eax + 0x2c]
mov dword [esp + 0x74], 0
push eax
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [esp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, 0xa
lea esi, [esp + 0x60]
mov edi, eax
mov dword [esp + 0x40], eax
test ebx, ebx
rep movsd dword es:[edi], dword [esi]
je 0x453fbe
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push edi
push 0
mov esi, eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x34]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push ecx
push esi
call edi
mov edx, dword [esp + 0x40]
mov dword [esp + 0x44], eax
mov eax, ebx
add edx, 0x28
shr eax, 2
push edx
push eax
push 0
push esi
call dword [sym.imp.GDI32.dll_GetDIBColorTable]
mov ecx, dword [esp + 0x44]
push ecx
push esi
call edi
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
mov edx, ecx
lea edi, [eax + ebx + 0x28]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x28]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov esi, dword [esp + 0x34]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, ebp
call fcn.0045a980
cmp eax, 9
mov ecx, ebp
jne 0x454044
call fcn.0045cb80
mov edi, eax
push 0
push 0
mov ecx, dword [edi + 0x1c]
push ecx
call dword [sym.imp.GDI32.dll_GetMetaFileBitsEx]
mov esi, eax
test esi, esi
je 0x45409b
push esi
call fcn.004be967
mov edx, dword [edi + 0x1c]
add esp, 4
mov ebx, eax
push ebx
push esi
push edx
call dword [sym.imp.GDI32.dll_GetMetaFileBitsEx]
test eax, eax
je 0x454092
push 0
push 0
push ebx
push esi
call dword [sym.imp.GDI32.dll_SetWinMetaFileBits]
jmp 0x45408e
call fcn.0045a980
cmp eax, 0xf
jne 0x45409b
mov ecx, ebp
call fcn.0045cb80
mov edi, eax
push 0
push 0
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_GetEnhMetaFileBits]
mov esi, eax
test esi, esi
je 0x45409b
push esi
call fcn.004be967
mov ecx, dword [edi + 4]
add esp, 4
mov ebx, eax
push ebx
push esi
push ecx
call dword [sym.imp.GDI32.dll_GetEnhMetaFileBits]
test eax, eax
je 0x454092
push ebx
push esi
call dword [sym.imp.GDI32.dll_SetEnhMetaFileBits]
mov dword [esp + 0x2c], eax
push ebx
call fcn.004be975
add esp, 4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4540b7
test ebp, ebp
je 0x4540b7
mov ecx, ebp
call fcn.00459f00
push ebp
call fcn.004be975
add esp, 4
mov edx, dword [esp + 0x194]
push edx
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x454120
call dword [sym.imp.USER32.dll_EmptyClipboard]
mov eax, dword [esp + 0x28]
mov esi, dword [sym.imp.USER32.dll_SetClipboardData]
test eax, eax
je 0x4540ec
push eax
push 8
call esi
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x454103
push eax
push 0xe
call esi
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x45411a
push eax
push 0xf
call esi
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
call dword [sym.imp.USER32.dll_CloseClipboard]
mov eax, dword [esp + 0x30]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [esp + 0x14]
jmp 0x45414f
mov eax, dword [esp + 0x10]
test eax, eax
je 0x45414d
test ebp, ebp
je 0x45414d
mov ecx, ebp
call fcn.00459f00
push ebp
call fcn.004be975
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x174]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x170
ret