Function at 0x429e92
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff88
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp dword [0x560458], 0
je 0x429eae
xor eax, eax
jmp 0x42a523
mov dword [0x560458], 1
push 0
lea edx, [ebp - 0x4c]
push edx
push edi
call fcn.00521fcc
mov ebx, eax
test ebx, ebx
je 0x429ed3
cmp dword [ebx + 0x918], 0
jne 0x429ee1
xor eax, eax
mov dword [0x560458], eax
xor eax, eax
jmp 0x42a523
cmp dword [ebx + 0x90c], 5
je 0x429efe
mov eax, dword [ebx + 0x810]
test eax, eax
je 0x429efe
lea edx, [ebp - 0x4c]
push edx
push eax
call sub.USER32.dll_GetClientRect
cmp dword [ebp + 0xc], 0
jne 0x429f95
mov ecx, dword [ebx + 0x8fc]
cmp ecx, dword [ebp - 0x44]
jne 0x429f30
mov eax, dword [ebx + 0x900]
cmp eax, dword [ebp - 0x40]
jne 0x429f30
xor edx, edx
mov dword [0x560458], edx
mov eax, 1
jmp 0x42a523
push dword [0x56f01c]
call sub.USER32.dll_GetTopWindow
mov esi, eax
push esi
call sub.USER32.dll_IsZoomed
test eax, eax
je 0x429f95
cmp esi, edi
jne 0x429f83
mov eax, dword [ebx + 0x8fc]
cmp eax, dword [ebp - 0x44]
jl 0x429f95
mov edx, dword [ebx + 0x900]
cmp edx, dword [ebp - 0x40]
jl 0x429f95
mov eax, dword [ebx + 0x90c]
cmp eax, 2
je 0x429f71
cmp eax, 4
jne 0x429f95
xor edx, edx
mov dword [0x560458], edx
mov eax, 1
jmp 0x42a523
xor edx, edx
mov dword [0x560458], edx
mov eax, 1
jmp 0x42a523
push dword [0x56f018]
call sub.USER32.dll_GetDC
mov edi, eax
test edi, edi
jne 0x429fb4
xor eax, eax
mov dword [0x560458], eax
xor eax, eax
jmp 0x42a523
push edi
call sub.GDI32.dll_CreateCompatibleDC
mov esi, eax
test esi, esi
jne 0x429fda
push edi
push dword [0x56f018]
call sub.USER32.dll_ReleaseDC
xor eax, eax
mov dword [0x560458], eax
xor eax, eax
jmp 0x42a523
push edi
call sub.GDI32.dll_CreateCompatibleDC
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x42a00a
push esi
call sub.GDI32.dll_DeleteDC
push edi
push dword [0x56f018]
call sub.USER32.dll_ReleaseDC
xor edx, edx
mov dword [0x560458], edx
xor eax, eax
jmp 0x42a523
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push edi
call sub.GDI32.dll_CreateCompatibleBitmap
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x42a048
push dword [ebp - 0x10]
call sub.GDI32.dll_DeleteDC
push esi
call sub.GDI32.dll_DeleteDC
push edi
push dword [0x56f018]
call sub.USER32.dll_ReleaseDC
xor edx, edx
mov dword [0x560458], edx
xor eax, eax
jmp 0x42a523
lea edx, [ebp - 0x74]
push edx
push 0x18
push dword [ebx + 0x918]
call sub.GDI32.dll_GetObjectA
push dword [ebp - 4]
push esi
call sub.GDI32.dll_SelectObject
mov dword [ebp - 8], eax
push dword [ebx + 0x918]
push dword [ebp - 0x10]
call sub.GDI32.dll_SelectObject
mov dword [ebp - 0xc], eax
mov eax, dword [0x560450]
test eax, eax
je 0x42a095
cmp eax, ebx
jne 0x42a095
push 0xc
call sub.USER32.dll_GetSysColor
push eax
call sub.GDI32.dll_CreateSolidBrush
mov dword [ebp - 0x3c], eax
jmp 0x42a0aa
mov edx, dword [0x5618dc]
push dword [edx*4 + 0x57f828]
call sub.GDI32.dll_CreateSolidBrush
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebx + 0x90c]
cmp ecx, 5
ja case.0x42a0b9.2
jmp dword [ecx*4 + 0x42a0c0]
push dword [ebp - 0x3c]
lea eax, [ebp - 0x4c]
push eax
push esi
call sub.USER32.dll_FillRect
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x70]
sub ecx, edx
sar ecx, 1
jns 0x42a0f4
adc ecx, 0
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x6c]
sar eax, 1
jns 0x42a104
adc eax, 0
mov dword [ebp - 0x58], eax
push 0xcc0020
push 0
push 0
push dword [ebp - 0x10]
push dword [ebp - 0x6c]
push edx
push eax
push dword [ebp - 0x5c]
push esi
call sub.GDI32.dll_BitBlt
jmp 0x42a49d
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push esi
call fcn.00429dda
push 0xcc0020
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push 0
push 0
push dword [ebp - 0x10]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push 0
push 0
push esi
call sub.GDI32.dll_StretchBlt
jmp 0x42a49d
push dword [ebp - 0x3c]
lea edx, [ebp - 0x4c]
push edx
push esi
call sub.USER32.dll_FillRect
push 0xcc0020
push 0
push 0
push dword [ebp - 0x10]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push 0
push 0
push esi
call sub.GDI32.dll_BitBlt
jmp 0x42a49d
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x4c]
push ecx
push esi
call sub.USER32.dll_FillRect
fild dword [ebp - 0x70]
fstp xword [ebp - 0x1c]
wait
fild dword [ebp - 0x6c]
fstp xword [ebp - 0x28]
wait
fld xword [ebp - 0x28]
fcomp dword [0x42a52e]
fnstsw ax
sahf
ja 0x42a1ca
xor edx, edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], 0x80000000
mov word [ebp - 0x2c], 0x3fff
jmp 0x42a1d6
fld xword [ebp - 0x1c]
fld xword [ebp - 0x28]
fdivp st(1)
fstp xword [ebp - 0x34]
wait
fld xword [ebp - 0x34]
fld xword [0x42a532]
fcompp
fnstsw ax
sahf
jbe 0x42a217
mov dword [ebp - 0x34], 0xccccd000
mov dword [ebp - 0x30], 0xcccccccc
mov word [ebp - 0x2c], 0x3ffb
jmp 0x42a217
fld xword [ebp - 0x34]
fld xword [ebp - 0x1c]
faddp st(1)
fstp xword [ebp - 0x1c]
wait
fld dword [0x42a53e]
fld xword [ebp - 0x28]
faddp st(1)
fstp xword [ebp - 0x28]
wait
fild dword [ebp - 0x44]
fld xword [ebp - 0x1c]
fcompp
fnstsw ax
sahf
jae 0x42a24e
fild dword [ebp - 0x40]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
jb 0x42a1fc
jmp 0x42a24e
fld xword [ebp - 0x34]
fld xword [ebp - 0x1c]
fsubrp st(1)
fstp xword [ebp - 0x1c]
wait
fld dword [0x42a53e]
fld xword [ebp - 0x28]
fsubrp st(1)
fstp xword [ebp - 0x28]
wait
fild dword [ebp - 0x44]
fld xword [ebp - 0x1c]
fcompp
fnstsw ax
sahf
ja 0x42a233
fild dword [ebp - 0x40]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
ja 0x42a233
fld xword [ebp - 0x1c]
call fcn.005569e8
mov dword [ebp - 0x54], eax
fld xword [ebp - 0x28]
call fcn.005569e8
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x44]
sub edx, dword [ebp - 0x54]
sar edx, 1
jns 0x42a28b
adc edx, 0
mov dword [ebp - 0x5c], edx
mov ecx, dword [ebp - 0x40]
sub ecx, dword [ebp - 0x50]
sar ecx, 1
jns 0x42a29b
adc ecx, 0
mov dword [ebp - 0x58], ecx
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push esi
call fcn.00429dda
push 0xcc0020
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push 0
push 0
push dword [ebp - 0x10]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push esi
call sub.GDI32.dll_StretchBlt
jmp 0x42a49d
xor eax, eax
mov dword [ebp - 0x58], eax
xor edx, edx
mov dword [ebp - 0x5c], edx
push 0xcc0020
push 0
push 0
push dword [ebp - 0x10]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push esi
call sub.GDI32.dll_BitBlt
mov ecx, dword [ebp - 0x70]
add dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x44]
jl 0x42a2e3
mov edx, dword [ebp - 0x6c]
add dword [ebp - 0x58], edx
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x40]
jl 0x42a2de
jmp 0x42a49d
push dword [ebp - 0x3c]
lea eax, [ebp - 0x4c]
push eax
push esi
call sub.USER32.dll_FillRect
fild dword [ebp - 0x70]
fstp xword [ebp - 0x1c]
wait
fild dword [ebp - 0x6c]
fstp xword [ebp - 0x28]
wait
fld xword [ebp - 0x28]
fcomp dword [0x42a52e]
fnstsw ax
sahf
ja 0x42a35f
xor edx, edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], 0x80000000
mov word [ebp - 0x2c], 0x3fff
jmp 0x42a36b
fld xword [ebp - 0x1c]
fld xword [ebp - 0x28]
fdivp st(1)
fstp xword [ebp - 0x34]
wait
fld xword [ebp - 0x34]
fld xword [0x42a532]
fcompp
fnstsw ax
sahf
jbe 0x42a38f
mov dword [ebp - 0x34], 0xccccd000
mov dword [ebp - 0x30], 0xcccccccc
mov word [ebp - 0x2c], 0x3ffb
mov dword [ebp - 0x38], 0x78
fild dword [ebp - 0x38]
fld xword [ebp - 0x34]
fmulp st(1)
call fcn.005569e8
mov edx, eax
mov dword [ebp - 0x78], edx
fild dword [ebp - 0x78]
fld xword [ebp - 0x1c]
fcompp
fnstsw ax
sahf
ja 0x42a3df
fild dword [ebp - 0x38]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
jbe 0x42a436
jmp 0x42a3df
fld xword [ebp - 0x34]
fld xword [ebp - 0x1c]
faddp st(1)
fstp xword [ebp - 0x1c]
wait
fld dword [0x42a53e]
fld xword [ebp - 0x28]
faddp st(1)
fstp xword [ebp - 0x28]
wait
mov dword [ebp - 0x78], edx
fild dword [ebp - 0x78]
fld xword [ebp - 0x1c]
fcompp
fnstsw ax
sahf
jae 0x42a419
fild dword [ebp - 0x38]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
jb 0x42a3c4
jmp 0x42a419
fld xword [ebp - 0x34]
fld xword [ebp - 0x1c]
fsubrp st(1)
fstp xword [ebp - 0x1c]
wait
fld dword [0x42a53e]
fld xword [ebp - 0x28]
fsubrp st(1)
fstp xword [ebp - 0x28]
wait
mov dword [ebp - 0x78], edx
fild dword [ebp - 0x78]
fld xword [ebp - 0x1c]
fcompp
fnstsw ax
sahf
ja 0x42a3fe
fild dword [ebp - 0x38]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
ja 0x42a3fe
fld xword [ebp - 0x1c]
call fcn.005569e8
mov dword [ebp - 0x54], eax
fld xword [ebp - 0x28]
call fcn.005569e8
mov dword [ebp - 0x50], eax
xor edx, edx
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x54]
cmp eax, edx
jle 0x42a462
sub eax, edx
mov dword [ebp - 0x5c], eax
jmp 0x42a467
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push esi
call fcn.00429dda
push 0xcc0020
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push 0
push 0
push dword [ebp - 0x10]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push esi
call sub.GDI32.dll_StretchBlt
push dword [ebp - 0x3c]
call sub.GDI32.dll_DeleteObject
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call sub.GDI32.dll_SelectObject
push dword [ebp - 8]
push esi
call sub.GDI32.dll_SelectObject
mov eax, dword [ebx + 0x8f4]
test eax, eax
je 0x42a4c9
push eax
call sub.GDI32.dll_DeleteObject
mov edx, dword [ebp - 4]
mov dword [ebx + 0x8f4], edx
mov eax, dword [ebx + 0x91c]
test eax, eax
je 0x42a4e2
push eax
call sub.GDI32.dll_DeleteObject
xor edx, edx
mov dword [ebx + 0x91c], edx
mov ecx, dword [ebp - 0x44]
mov dword [ebx + 0x8fc], ecx
mov eax, dword [ebp - 0x40]
mov dword [ebx + 0x900], eax
push dword [ebp - 0x10]
call sub.GDI32.dll_DeleteDC
push esi
call sub.GDI32.dll_DeleteDC
push edi
push dword [0x56f018]
call sub.USER32.dll_ReleaseDC
xor edx, edx
mov dword [0x560458], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8