Function at 0x459898
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe74
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405f68
xor eax, eax
push ebp
push 0x459b03
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
push 0x459b14
call sub.gdi32.dll_CreateDCA
mov esi, eax
mov eax, dword [0x4e2f28]
movzx eax, byte [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x4e2f28]
mov byte [eax], 0
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x178]
call fcn.004036dc
mov edx, 1
lea eax, [ebp - 0x178]
call fcn.00403f30
call fcn.00402f54
test eax, eax
jle 0x459919
mov edx, dword [ebp - 4]
mov eax, 0x12c
call fcn.00458594
lea eax, [ebp - 0x178]
call fcn.00403b04
mov ebx, eax
test ebx, ebx
jne 0x459937
mov edx, dword [ebp - 4]
mov eax, 0x135
call fcn.00458594
mov eax, ebx
call fcn.00402cf8
mov dword [ebp - 0xc], eax
push 0
mov edx, dword [ebp - 0xc]
mov ecx, ebx
lea eax, [ebp - 0x178]
call fcn.00403844
lea eax, [ebp - 0x178]
call fcn.00403884
push ebx
push 0x22
call sub.kernel32.dll_GlobalAlloc
mov edi, eax
push edi
call sub.kernel32.dll_GlobalLock
mov ecx, ebx
mov edx, dword [ebp - 0xc]
call fcn.0040859c
mov eax, dword [ebp - 0xc]
call fcn.00402d14
push edi
call sub.kernel32.dll_GlobalUnlock
lea eax, [ebp - 0x10]
push eax
push 0xffffffffffffffff
push edi
call sub.ole32.dll_CreateStreamOnHGlobal
lea eax, [ebp - 0x14]
push eax
mov eax, dword [0x4e2edc]
push eax
push 0
push ebx
mov eax, dword [ebp - 0x10]
push eax
call sub.olepro32.dll_OleLoadPicture
cmp dword [ebp - 0x14], 0
je 0x4599b7
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [eax]
call dword [eax + 8]
push edi
call sub.kernel32.dll_GlobalFree
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x18]
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
push 0x58
push esi
call sub.gdi32.dll_GetDeviceCaps
mov ebx, eax
push 0x5a
push esi
call sub.gdi32.dll_GetDeviceCaps
mov edi, eax
mov eax, dword [ebp - 0x20]
imul ebx
mov dword [ebp - 0x18c], eax
fild dword [ebp - 0x18c]
fdiv dword [0x459b1c]
call fcn.004033bc
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
imul edi
mov dword [ebp - 0x18c], eax
fild dword [ebp - 0x18c]
fdiv dword [0x459b1c]
call fcn.004033bc
mov edi, eax
push esi
call sub.gdi32.dll_CreateCompatibleDC
mov ebx, eax
push edi
mov eax, dword [ebp - 0x28]
push eax
push esi
call sub.gdi32.dll_CreateCompatibleBitmap
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
push ebx
call sub.gdi32.dll_SelectObject
cmp dword [ebp - 8], 0xffffff
jne 0x459a6c
push 0xff0062
push 0
push 0
push esi
push edi
mov eax, dword [ebp - 0x28]
push eax
push 0
push 0
push ebx
call sub.gdi32.dll_BitBlt
jmp 0x459a96
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_CreateSolidBrush
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call sub.gdi32.dll_SelectObject
push 0xf00021
push edi
mov eax, dword [ebp - 0x28]
push eax
push 0
push 0
push ebx
call sub.gdi32.dll_PatBlt
lea eax, [ebp - 0x188]
push eax
mov eax, dword [ebp - 0x24]
neg eax
push eax
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x24]
push eax
push 0
push edi
mov eax, dword [ebp - 0x28]
push eax
push 0
push 0
push ebx
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x20]
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 8]
push ebx
call sub.gdi32.dll_DeleteDC
push esi
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_DeleteObject
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [ebp - 0x2c]
mov edx, dword [0x4e2f28]
mov byte [edx], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x459b0a
lea eax, [ebp - 4]
call fcn.00405ab4
ret