Function at 0x4215b0
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x44d588
push 0x4371c0
mov eax, dword fs:[0]
push eax
sub esp, 0x10c
mov eax, dword [0x451050]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x20], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xe0], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_LockWindowUpdate]
push 0x4c
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
call edi
mov dword [0x45a20c], eax
push 0x4e
call edi
add eax, dword [0x45a20c]
mov dword [0x45a214], eax
push 0x4d
call edi
mov dword [0x45a210], eax
push 0x4f
call edi
add eax, dword [0x45a210]
mov dword [0x45a218], eax
xor esi, esi
mov dword [0x45a21c], esi
push esi
call edi
mov dword [0x45a224], eax
mov dword [0x45a220], esi
push 1
call edi
mov dword [0x45a228], eax
mov eax, dword [0x45a260]
cmp eax, esi
je 0x421667
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [0x45a260], esi
xor esi, esi
xor eax, eax
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x10c], 0x14
lea ecx, [ebp - 0x10c]
push ecx
call dword [sym.imp.USER32.dll_GetCursorInfo]
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xac], esi
xor ebx, ebx
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xe4], esi
xor eax, eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xc4], eax
wait
mov dword [ebp - 4], eax
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0xac], eax
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x421971
mov edx, dword [0x45a218]
sub edx, dword [0x45a210]
push edx
mov eax, dword [0x45a214]
sub eax, dword [0x45a20c]
push eax
mov ecx, dword [ebp - 0xac]
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x421971
mov edx, eax
push edx
mov eax, dword [ebp - 0xb0]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x421971
push 0x40cc0020
mov eax, dword [0x45a210]
push eax
mov ecx, dword [0x45a20c]
push ecx
mov edx, dword [ebp - 0xac]
push edx
mov edx, dword [0x45a218]
sub edx, eax
push edx
mov eax, dword [0x45a214]
sub eax, ecx
push eax
push ebx
push ebx
mov ecx, dword [ebp - 0xb0]
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x421971
test dword [0x452498], 0x80000
je 0x421967
cmp dword [ebp - 0x108], 1
jne 0x421967
mov ecx, dword [ebp - 0x104]
test ecx, ecx
je 0x421967
xor eax, eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
lea edx, [ebp - 0xdc]
push edx
push ecx
call dword [sym.imp.USER32.dll_GetIconInfo]
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x421809
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x42181a
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ebx, dword [ebp - 0x100]
sub ebx, dword [0x45a20c]
sub ebx, dword [ebp - 0xd8]
mov dword [ebp - 0xf0], ebx
push 0xd
call edi
add eax, ebx
mov dword [ebp - 0xe8], eax
mov esi, dword [ebp - 0xfc]
sub esi, dword [ebp - 0xd4]
sub esi, dword [0x45a210]
mov dword [ebp - 0xec], esi
push 0xe
call edi
add eax, esi
mov dword [ebp - 0xe4], eax
xor eax, eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xbc], eax
wait
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0xac]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x42193b
mov edi, dword [ebp - 0xe4]
sub edi, esi
mov eax, dword [ebp - 0xe8]
sub eax, ebx
mov dword [ebp - 0xb4], eax
push edi
push eax
mov ecx, dword [ebp - 0xac]
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x42193b
mov edx, eax
push edx
mov eax, dword [ebp - 0xa8]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x42193b
push 0xcc0020
push esi
push ebx
mov ecx, dword [ebp - 0xb0]
push ecx
push edi
mov edx, dword [ebp - 0xb4]
push edx
push 0
push 0
mov eax, dword [ebp - 0xa8]
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x42193b
push 0xb
push 0
push 0
push edi
mov ecx, dword [ebp - 0xb4]
push ecx
mov edx, dword [ebp - 0x104]
push edx
push esi
push ebx
mov eax, dword [ebp - 0xb0]
push eax
call dword [sym.imp.USER32.dll_DrawIconEx]
mov dword [ebp - 0xc4], 1
wait
mov dword [ebp - 4], 0
call fcn.004219c0
cmp dword [ebp - 0xc4], 0
jne 0x421967
cmp dword [ebp - 0xb8], 0
je 0x421967
mov ecx, dword [ebp - 0xb8]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp - 0xc4], 1
wait
mov dword [ebp - 4], 0xfffffffe
call fcn.004219f0
cmp dword [ebp - 0xc4], 0
jne 0x421a27
mov eax, dword [ebp - 0xc8]
test eax, eax
je 0x42199c
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x4219ad
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
jmp 0x421fa1
mov edx, dword [ebp - 0xc8]
mov dword [0x45a208], edx
push 0
call dword [sym.imp.USER32.dll_LockWindowUpdate]
xor edi, edi
push edi
push 0x420a10
push edi
push 0xa0
mov eax, dword [0x459f78]
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
mov dword [ebp - 0xc4], eax
cmp eax, edi
je 0x421f17
cmp dword [ebp - 0xe0], edi
je 0x421f17
cmp dword [ebp - 0xb8], edi
je 0x421b55
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xbc], edi
wait
mov dword [ebp - 4], 2
push edi
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0xac], eax
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edi, eax
mov dword [ebp - 0xb0], edi
mov ecx, dword [ebp - 0xac]
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0xa8], eax
test edi, edi
je 0x421b39
test eax, eax
je 0x421b39
mov edx, dword [0x45a208]
push edx
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x421b39
mov eax, dword [ebp - 0xb8]
push eax
mov ecx, dword [ebp - 0xa8]
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x421b39
push 0xcc0020
push 0
push 0
mov edx, dword [ebp - 0xa8]
push edx
mov eax, dword [ebp - 0xe4]
sub eax, esi
push eax
mov eax, dword [ebp - 0xe8]
sub eax, ebx
push eax
push esi
push ebx
push edi
call dword [sym.imp.GDI32.dll_BitBlt]
wait
mov dword [ebp - 4], 0xfffffffe
call fcn.00421bca
mov edx, dword [ebp - 0xb8]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
xor edi, edi
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xc8], edi
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0x110], edi
mov dword [ebp - 0xb4], edi
mov ecx, dword [0x45a260]
cmp ecx, edi
je 0x421bab
lea eax, [ebp - 0xd8]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetRgnBox]
mov ecx, dword [0x45a260]
test eax, eax
jne 0x421c80
mov eax, dword [0x45a244]
mov edx, dword [0x45a23c]
cmp eax, edx
jle 0x421c38
mov dword [ebp - 0xd8], edx
mov esi, eax
jmp 0x421c40
mov dword [ebp - 0xd8], eax
mov esi, edx
mov eax, dword [0x45a248]
mov edx, dword [0x45a240]
cmp eax, edx
jle 0x421c57
mov dword [ebp - 0xd4], edx
jmp 0x421c5f
mov dword [ebp - 0xd4], eax
mov eax, edx
inc esi
mov dword [ebp - 0xd0], esi
inc eax
mov dword [ebp - 0xcc], eax
cmp ecx, edi
je 0x421c80
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
xor ecx, ecx
mov dword [0x45a260], ecx
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x114], eax
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0x118], edx
sub dword [ebp - 0xd0], eax
mov esi, edx
sub dword [ebp - 0xcc], esi
mov dword [ebp - 0xd4], edi
mov dword [ebp - 0xd8], edi
cmp ecx, edi
je 0x421d21
neg eax
mov dword [ebp - 0xb4], eax
fild dword [ebp - 0xb4]
fstp dword [ebp - 0xe8]
neg edx
mov dword [ebp - 0xb4], edx
fild dword [ebp - 0xb4]
fstp dword [ebp - 0xe4]
fld1
fst dword [ebp - 0xec]
fstp dword [ebp - 0xf8]
fldz
fst dword [ebp - 0xf0]
fstp dword [ebp - 0xf4]
lea edx, [ebp - 0xf8]
push edx
call fcn.0042c3e0
add esp, 4
mov dword [ebp - 0xb4], eax
mov eax, dword [0x45a260]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [0x45a260], edi
mov dword [ebp - 0xc4], edi
wait
mov dword [ebp - 4], 3
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
mov dword [ebp - 0xac], ebx
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0xd0]
push edx
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov edi, eax
mov dword [ebp - 0xc8], edi
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, eax
mov dword [ebp - 0xb0], esi
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0xa8], eax
test edi, edi
je 0x421e4d
test esi, esi
je 0x421e4d
test eax, eax
je 0x421e4d
push edi
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x421e4d
mov eax, dword [0x45a208]
push eax
mov ecx, dword [ebp - 0xa8]
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x421e4d
mov edx, dword [ebp - 0xe0]
mov eax, dword [edx + 8]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov edi, eax
push edi
lea ecx, [ebp - 0xd8]
push ecx
push esi
call dword [sym.imp.USER32.dll_FillRect]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [ebp - 0xb4], 0
je 0x421e0c
mov edx, dword [ebp - 0xb4]
push edx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x110], eax
push 0xcc0020
mov eax, dword [ebp - 0x118]
push eax
mov ecx, dword [ebp - 0x114]
push ecx
mov edx, dword [ebp - 0xa8]
push edx
mov eax, dword [ebp - 0xcc]
push eax
mov ecx, dword [ebp - 0xd0]
push ecx
push 0
push 0
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x421e4d
mov dword [ebp - 0xc4], 1
wait
mov dword [ebp - 4], 0xfffffffe
call fcn.00421fc9
cmp dword [ebp - 0xc4], 0
je 0x422033
mov esi, dword [ebp - 0xe0]
mov dword [esi + 4], ebx
mov eax, dword [ebp - 0xc8]
mov dword [esi], eax
test dword [0x452498], 0x80000
je 0x421ecb
cmp dword [ebp - 0x108], 1
jne 0x421ecb
mov eax, dword [ebp - 0x104]
test eax, eax
je 0x421ecb
push eax
call dword [sym.imp.USER32.dll_CopyIcon]
mov dword [esi + 0xc], eax
mov ecx, dword [ebp - 0x100]
sub ecx, dword [ebp - 0x114]
sub ecx, dword [0x45a20c]
mov dword [esi + 0x10], ecx
mov edx, dword [ebp - 0xfc]
sub edx, dword [ebp - 0x118]
sub edx, dword [0x45a210]
mov dword [esi + 0x14], edx
lea eax, [ebp - 0xa4]
push eax
push 0x4f01
mov ebx, 0x40
call fcn.0040af30
add esp, 8
lea ecx, [esi + 0x18]
push ecx
lea eax, [ebp - 0xa4]
call fcn.004034d0
push ebx
lea edx, [ebp - 0xa4]
push edx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetClassNameW]
add esi, 0x34
push esi
lea eax, [ebp - 0xa4]
call fcn.004034d0
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x421f2a
push eax
call esi
mov eax, dword [0x45a208]
push eax
call esi
xor edi, edi
mov dword [0x45a208], edi
mov eax, dword [0x45a260]
cmp eax, edi
je 0x421f4c
push eax
call esi
mov dword [0x45a260], edi
mov eax, dword [0x45a258]
test eax, 0x40000000
je 0x421f7e
mov ecx, dword [0x45242c]
sub ecx, dword [0x45a23c]
inc ecx
mov dword [0x45a24c], ecx
mov edx, dword [0x452430]
sub edx, dword [0x45a240]
inc edx
mov dword [0x45a250], edx
test eax, 0x20000000
je 0x421f9b
mov eax, dword [0x45242c]
mov dword [0x452434], eax
mov ecx, dword [0x452430]
mov dword [0x452438], ecx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.00433c32
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
test ebx, ebx
je 0x422040
push ebx
call esi
mov eax, dword [ebp - 0xc8]
test eax, eax
je 0x421f1d
push eax
call esi
jmp 0x421f1d