Function at 0x41b824
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov byte [ebp - 1], dl
mov ebx, eax
mov eax, dword [ebp + 0x18]
call fcn.00403838
xor eax, eax
push ebp
push 0x41bfa0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 8]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edi, eax
dec edi
test edi, edi
jl 0x41b885
inc edi
xor esi, esi
mov edx, esi
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x3c], eax
mov edx, esi
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x40]
call fcn.0041b028
inc esi
dec edi
jne 0x41b85d
mov byte [ebx + 5], 0
cmp byte [ebp - 1], 0
jne 0x41b8b2
mov eax, dword [ebp - 8]
mov dword [ebx + 0x30], eax
lea eax, [ebx + 0x34]
mov edx, dword [ebp + 0x18]
call fcn.0040345c
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x40], eax
mov esi, dword [ebx + 0x4c]
mov edx, dword [ebx + 0x20]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov edx, dword [ebx + 0x24]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [0x423890]
cmp byte [eax], 0
je 0x41b8e8
cmp dword [ebx + 0x34], 0
je 0x41b8df
cmp dword [ebx + 0x30], 1
jne 0x41b8e8
mov edx, esi
mov eax, ebx
call fcn.0041b698
mov eax, dword [ebx + 0x30]
dec eax
je 0x41b8fa
dec eax
je 0x41b97e
jmp 0x41bf75
push 0
call sub.user32.dll_GetDC
mov edi, eax
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x14], eax
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x60]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x1c], eax
push 0xcc0020
push 0
push 0
push edi
mov eax, dword [ebx + 0x24]
push eax
mov eax, dword [ebx + 0x20]
push eax
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_BitBlt
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_ReleaseDC
push edi
push 0
call sub.user32.dll_ReleaseDC
jmp 0x41bf75
mov eax, dword [0x423890]
cmp byte [eax], 0
je 0x41b9ee
mov eax, esi
call fcn.00414e18
mov eax, dword [eax + 0x14]
mov edx, dword [ebx + 0x38]
call fcn.004107b0
mov eax, esi
call fcn.00414e18
mov eax, dword [eax + 0x10]
mov edx, dword [ebx + 0x38]
call fcn.004104fc
mov eax, esi
call fcn.00414e18
mov eax, dword [eax + 0x10]
xor edx, edx
call fcn.004105d8
mov eax, esi
call fcn.00414e18
mov eax, dword [eax + 0x10]
mov edx, 1
call fcn.00410608
mov eax, dword [ebx + 0x20]
push eax
mov eax, dword [ebx + 0x24]
push eax
mov eax, esi
call fcn.00414e18
xor ecx, ecx
xor edx, edx
call fcn.00410b9c
jmp 0x41bab3
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x14], eax
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x60]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x38]
push eax
call sub.gdi32.dll_CreateSolidBrush
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x38]
push eax
push 1
push 0
call sub.gdi32.dll_CreatePen
mov edi, eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x38], eax
push edi
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x24]
push eax
mov eax, dword [ebx + 0x20]
push eax
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_Rectangle
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
push edi
call sub.gdi32.dll_DeleteObject
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x34]
push eax
call sub.gdi32.dll_DeleteObject
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_ReleaseDC
cmp dword [ebx + 0x34], 0
jne 0x41bac3
cmp dword [ebp + 8], 0
je 0x41bf75
mov eax, dword [0x423890]
cmp byte [eax], 0
je 0x41baf9
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
je 0x41baf9
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x24]
call fcn.00414680
mov edx, eax
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 0x40]
dec eax
je 0x41bb12
dec eax
je 0x41bc7c
dec eax
je 0x41be5e
jmp 0x41bf75
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edi, dword [ebx + 0x20]
cmp eax, edi
jl 0x41bb2d
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x41bb4d
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x2c]
sar eax, 1
jns 0x41bb41
adc eax, 0
sar edi, 1
jns 0x41bb48
adc edi, 0
sub edi, eax
mov dword [ebp - 0x28], edi
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x20]
mov edi, dword [ebx + 0x24]
cmp eax, edi
jl 0x41bb68
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x41bb88
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x20]
sar eax, 1
jns 0x41bb7c
adc eax, 0
sar edi, 1
jns 0x41bb83
adc edi, 0
sub edi, eax
mov dword [ebp - 0x2c], edi
mov eax, dword [0x423890]
cmp byte [eax], 0
je 0x41bbb2
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
push eax
mov eax, esi
call fcn.00414e18
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
call fcn.00410a9c
jmp 0x41bf75
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x18], eax
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x60]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x60]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0xc], eax
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_BitBlt
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_ReleaseDC
jmp 0x41bf75
xor eax, eax
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [0x423890]
cmp byte [eax], 0
je 0x41bd22
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebx + 0x20]
pop edx
mov ecx, edx
cdq
idiv ecx
mov edi, eax
test edi, edi
jl 0x41bf75
inc edi
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebx + 0x24]
pop edx
mov ecx, edx
cdq
idiv ecx
test eax, eax
jl 0x41bd05
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
push eax
mov eax, esi
call fcn.00414e18
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
call fcn.00410a9c
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x20]
add dword [ebp - 0x2c], eax
dec dword [ebp - 0x40]
jne 0x41bcd5
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x2c]
add dword [ebp - 0x28], eax
dec edi
jne 0x41bcb6
jmp 0x41bf75
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x18], eax
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x60]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x60]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebx + 0x20]
pop edx
mov ecx, edx
cdq
idiv ecx
mov edi, eax
test edi, edi
jl 0x41be20
inc edi
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebx + 0x24]
pop edx
mov ecx, edx
cdq
idiv ecx
test eax, eax
jl 0x41be04
inc eax
mov dword [ebp - 0x40], eax
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_BitBlt
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x20]
add dword [ebp - 0x2c], eax
dec dword [ebp - 0x40]
jne 0x41bdb5
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x2c]
add dword [ebp - 0x28], eax
dec edi
jne 0x41bd96
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_ReleaseDC
jmp 0x41bf75
xor eax, eax
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [0x423890]
cmp byte [eax], 0
je 0x41bea8
mov eax, dword [ebx + 0x24]
push eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebx + 0x20]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
call fcn.00409650
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
push eax
mov eax, esi
call fcn.00414e18
pop ecx
pop edx
call fcn.00410be4
jmp 0x41bf75
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x18], eax
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x60]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x60]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0xc], eax
push 0xcc0020
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebx + 0x44]
call fcn.00412ba4
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
push 0
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebx + 0x24]
push eax
mov eax, dword [ebx + 0x20]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_StretchBlt
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x18]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebx + 0xc]
push eax
call sub.user32.dll_ReleaseDC
mov eax, dword [0x423890]
cmp byte [eax], 0
je 0x41bf8a
mov byte [esi + 0x16], 1
mov eax, dword [ebx + 0x50]
mov byte [eax + 0x16], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41bfa7
lea eax, [ebp + 0x18]
call fcn.00403408
ret