Function at 0x429c43
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 [0x55e440], 0
je 0x429c5f
xor eax, eax
jmp 0x42a2d4
mov dword [0x55e440], 1
push 0
lea edx, [ebp - 0x4c]
push edx
push edi
call fcn.005201c7
mov ebx, eax
test ebx, ebx
je 0x429c84
cmp dword [ebx + 0x91c], 0
jne 0x429c92
xor eax, eax
mov dword [0x55e440], eax
xor eax, eax
jmp 0x42a2d4
cmp dword [ebx + 0x910], 5
je 0x429caf
mov eax, dword [ebx + 0x810]
test eax, eax
je 0x429caf
lea edx, [ebp - 0x4c]
push edx
push eax
call sub.USER32.dll_GetClientRect
cmp dword [ebp + 0xc], 0
jne 0x429d46
mov ecx, dword [ebx + 0x900]
cmp ecx, dword [ebp - 0x44]
jne 0x429ce1
mov eax, dword [ebx + 0x904]
cmp eax, dword [ebp - 0x40]
jne 0x429ce1
xor edx, edx
mov dword [0x55e440], edx
mov eax, 1
jmp 0x42a2d4
push dword [0x56ceec]
call sub.USER32.dll_GetTopWindow
mov esi, eax
push esi
call sub.USER32.dll_IsZoomed
test eax, eax
je 0x429d46
cmp esi, edi
jne 0x429d34
mov eax, dword [ebx + 0x900]
cmp eax, dword [ebp - 0x44]
jl 0x429d46
mov edx, dword [ebx + 0x904]
cmp edx, dword [ebp - 0x40]
jl 0x429d46
mov eax, dword [ebx + 0x910]
cmp eax, 2
je 0x429d22
cmp eax, 4
jne 0x429d46
xor edx, edx
mov dword [0x55e440], edx
mov eax, 1
jmp 0x42a2d4
xor edx, edx
mov dword [0x55e440], edx
mov eax, 1
jmp 0x42a2d4
push dword [0x56cee8]
call sub.USER32.dll_GetDC
mov edi, eax
test edi, edi
jne 0x429d65
xor eax, eax
mov dword [0x55e440], eax
xor eax, eax
jmp 0x42a2d4
push edi
call sub.GDI32.dll_CreateCompatibleDC
mov esi, eax
test esi, esi
jne 0x429d8b
push edi
push dword [0x56cee8]
call sub.USER32.dll_ReleaseDC
xor eax, eax
mov dword [0x55e440], eax
xor eax, eax
jmp 0x42a2d4
push edi
call sub.GDI32.dll_CreateCompatibleDC
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x429dbb
push esi
call sub.GDI32.dll_DeleteDC
push edi
push dword [0x56cee8]
call sub.USER32.dll_ReleaseDC
xor edx, edx
mov dword [0x55e440], edx
xor eax, eax
jmp 0x42a2d4
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 0x429df9
push dword [ebp - 0x10]
call sub.GDI32.dll_DeleteDC
push esi
call sub.GDI32.dll_DeleteDC
push edi
push dword [0x56cee8]
call sub.USER32.dll_ReleaseDC
xor edx, edx
mov dword [0x55e440], edx
xor eax, eax
jmp 0x42a2d4
lea edx, [ebp - 0x74]
push edx
push 0x18
push dword [ebx + 0x91c]
call sub.GDI32.dll_GetObjectA
push dword [ebp - 4]
push esi
call sub.GDI32.dll_SelectObject
mov dword [ebp - 8], eax
push dword [ebx + 0x91c]
push dword [ebp - 0x10]
call sub.GDI32.dll_SelectObject
mov dword [ebp - 0xc], eax
mov eax, dword [0x55e438]
test eax, eax
je 0x429e46
cmp eax, ebx
jne 0x429e46
push 0xc
call sub.USER32.dll_GetSysColor
push eax
call sub.GDI32.dll_CreateSolidBrush
mov dword [ebp - 0x3c], eax
jmp 0x429e5b
mov edx, dword [0x55f890]
push dword [edx*4 + 0x57d6d8]
call sub.GDI32.dll_CreateSolidBrush
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebx + 0x910]
cmp ecx, 5
ja case.0x429e6a.2
jmp dword [ecx*4 + 0x429e71]
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 0x429ea5
adc ecx, 0
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x6c]
sar eax, 1
jns 0x429eb5
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 0x42a24e
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push esi
call fcn.00429b8b
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 0x42a24e
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 0x42a24e
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 [0x42a2df]
fnstsw ax
sahf
ja 0x429f7b
xor edx, edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], 0x80000000
mov word [ebp - 0x2c], 0x3fff
jmp 0x429f87
fld xword [ebp - 0x1c]
fld xword [ebp - 0x28]
fdivp st(1)
fstp xword [ebp - 0x34]
wait
fld xword [ebp - 0x34]
fld xword [0x42a2e3]
fcompp
fnstsw ax
sahf
jbe 0x429fc8
mov dword [ebp - 0x34], 0xccccd000
mov dword [ebp - 0x30], 0xcccccccc
mov word [ebp - 0x2c], 0x3ffb
jmp 0x429fc8
fld xword [ebp - 0x34]
fld xword [ebp - 0x1c]
faddp st(1)
fstp xword [ebp - 0x1c]
wait
fld dword [0x42a2ef]
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 0x429fff
fild dword [ebp - 0x40]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
jb 0x429fad
jmp 0x429fff
fld xword [ebp - 0x34]
fld xword [ebp - 0x1c]
fsubrp st(1)
fstp xword [ebp - 0x1c]
wait
fld dword [0x42a2ef]
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 0x429fe4
fild dword [ebp - 0x40]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
ja 0x429fe4
fld xword [ebp - 0x1c]
call fcn.00554a2c
mov dword [ebp - 0x54], eax
fld xword [ebp - 0x28]
call fcn.00554a2c
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x44]
sub edx, dword [ebp - 0x54]
sar edx, 1
jns 0x42a03c
adc edx, 0
mov dword [ebp - 0x5c], edx
mov ecx, dword [ebp - 0x40]
sub ecx, dword [ebp - 0x50]
sar ecx, 1
jns 0x42a04c
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.00429b8b
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 0x42a24e
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 0x42a094
mov edx, dword [ebp - 0x6c]
add dword [ebp - 0x58], edx
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x40]
jl 0x42a08f
jmp 0x42a24e
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 [0x42a2df]
fnstsw ax
sahf
ja 0x42a110
xor edx, edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], 0x80000000
mov word [ebp - 0x2c], 0x3fff
jmp 0x42a11c
fld xword [ebp - 0x1c]
fld xword [ebp - 0x28]
fdivp st(1)
fstp xword [ebp - 0x34]
wait
fld xword [ebp - 0x34]
fld xword [0x42a2e3]
fcompp
fnstsw ax
sahf
jbe 0x42a140
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.00554a2c
mov edx, eax
mov dword [ebp - 0x78], edx
fild dword [ebp - 0x78]
fld xword [ebp - 0x1c]
fcompp
fnstsw ax
sahf
ja 0x42a190
fild dword [ebp - 0x38]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
jbe 0x42a1e7
jmp 0x42a190
fld xword [ebp - 0x34]
fld xword [ebp - 0x1c]
faddp st(1)
fstp xword [ebp - 0x1c]
wait
fld dword [0x42a2ef]
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 0x42a1ca
fild dword [ebp - 0x38]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
jb 0x42a175
jmp 0x42a1ca
fld xword [ebp - 0x34]
fld xword [ebp - 0x1c]
fsubrp st(1)
fstp xword [ebp - 0x1c]
wait
fld dword [0x42a2ef]
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 0x42a1af
fild dword [ebp - 0x38]
fld xword [ebp - 0x28]
fcompp
fnstsw ax
sahf
ja 0x42a1af
fld xword [ebp - 0x1c]
call fcn.00554a2c
mov dword [ebp - 0x54], eax
fld xword [ebp - 0x28]
call fcn.00554a2c
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 0x42a213
sub eax, edx
mov dword [ebp - 0x5c], eax
jmp 0x42a218
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.00429b8b
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 + 0x8f8]
test eax, eax
je 0x42a27a
push eax
call sub.GDI32.dll_DeleteObject
mov edx, dword [ebp - 4]
mov dword [ebx + 0x8f8], edx
mov eax, dword [ebx + 0x920]
test eax, eax
je 0x42a293
push eax
call sub.GDI32.dll_DeleteObject
xor edx, edx
mov dword [ebx + 0x920], edx
mov ecx, dword [ebp - 0x44]
mov dword [ebx + 0x900], ecx
mov eax, dword [ebp - 0x40]
mov dword [ebx + 0x904], eax
push dword [ebp - 0x10]
call sub.GDI32.dll_DeleteDC
push esi
call sub.GDI32.dll_DeleteDC
push edi
push dword [0x56cee8]
call sub.USER32.dll_ReleaseDC
xor edx, edx
mov dword [0x55e440], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8