Function at 0x43db34
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffb68
push ebx
push esi
push edi
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x43df54
push 0
push 0
push 0
push 0x43df5c
call sub.GDI32.dll_CreateDCA
mov dword [ebp - 0xc], eax
push ebp
push 0x43df4d
push dword fs:[0]
mov dword fs:[0], esp
mov eax, dword [ebp - 0xc]
push eax
call sub.GDI32.dll_CreateCompatibleDC
mov dword [ebp - 0x10], eax
push ebp
push 0x43df2f
push dword fs:[0]
mov dword fs:[0], esp
push 8
mov eax, dword [ebp - 0xc]
push eax
call sub.GDI32.dll_GetDeviceCaps
mov edi, eax
push 0xa
mov eax, dword [ebp - 0xc]
push eax
call sub.GDI32.dll_GetDeviceCaps
mov esi, eax
push esi
push edi
mov eax, dword [ebp - 0xc]
push eax
call sub.GDI32.dll_CreateCompatibleBitmap
mov dword [ebp - 0x14], eax
push ebp
push 0x43df11
push dword fs:[0]
mov dword fs:[0], esp
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.GDI32.dll_SelectObject
mov byte [ebp - 0x21], 0
xor eax, eax
mov dword [ebp - 0x20], eax
push 0x26
mov eax, dword [ebp - 0xc]
push eax
call sub.GDI32.dll_GetDeviceCaps
test ah, 1
je 0x43dc59
mov eax, 0x404
call fcn.00402828
mov ebx, eax
mov eax, ebx
xor ecx, ecx
mov edx, 0x404
call fcn.00403314
mov word [ebx], 0x300
lea eax, [ebx + 4]
push eax
push pe_nt_image_headers32
push 0
mov eax, dword [ebp - 0xc]
push eax
call sub.GDI32.dll_GetSystemPaletteEntries
mov word [ebx + 2], ax
cmp word [ebx + 2], 0
je 0x43dc52
push ebx
call sub.GDI32.dll_CreatePalette
mov dword [ebp - 0x20], eax
push 0
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.GDI32.dll_SelectPalette
mov byte [ebp - 0x21], 1
jmp 0x43dc59
mov eax, ebx
call fcn.00402848
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0xc]
push eax
push esi
push edi
push 0
push 0
mov eax, dword [ebp - 0x10]
push eax
call sub.GDI32.dll_BitBlt
lea eax, [ebp - 0x1c]
push eax
call fcn.00407b6c
push 3
push 0
push 0
push 0x20
push 0x20
call fcn.00407b64
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x10]
push eax
call fcn.00407abc
lea eax, [ebp - 0x497]
xor ecx, ecx
mov edx, 0x436
call fcn.00403314
mov dword [ebp - 0x489], 0x28
mov dword [ebp - 0x485], edi
mov dword [ebp - 0x481], esi
mov word [ebp - 0x47d], 1
mov word [ebp - 0x47b], 8
xor eax, eax
mov dword [ebp - 0x479], eax
mov ebx, edi
imul ebx, esi
mov dword [ebp - 0x475], ebx
push ebx
push 0
call sub.kernel32.dll_GlobalAlloc
mov dword [0x4d5ca4], eax
push ebp
push 0x43dee4
push dword fs:[0]
mov dword fs:[0], esp
push 0
lea eax, [ebp - 0x489]
push eax
mov eax, dword [0x4d5ca4]
push eax
push esi
push 0
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.GDI32.dll_GetDIBits
mov eax, 0x301
call fcn.00402828
mov dword [0x4d5ca8], eax
mov dword [0x4d5cac], edi
mov dword [0x4d5cb0], esi
mov byte [0x4d5cb4], 8
mov byte [0x4d5cb5], 3
mov eax, dword [0x4d5cac]
mov dword [0x4d5c9c], eax
mov dword [0x4d5c98], 0x100
push 0xffff
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x41c2f0]
call fcn.004217c0
mov dword [ebp - 4], eax
mov ecx, 8
mov edx, 0x43df6c
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov dword [0x4d5ca0], 0xd
mov eax, dword [0x4d5ca8]
mov edi, eax
mov esi, 0x4d5cac
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ebx, eax
mov eax, dword [ebx]
call fcn.0043d7a8
mov dword [ebx], eax
mov eax, dword [ebx + 4]
call fcn.0043d7a8
mov dword [ebx + 4], eax
mov byte [ebx + 0xc], 0
push ebp
mov eax, 0x43df80
call fcn.0043da78
pop ecx
mov eax, dword [0x4d5c98]
lea eax, [eax + eax*2]
mov dword [0x4d5ca0], eax
mov edx, dword [0x4d5ca8]
mov ecx, dword [0x4d5c98]
dec ecx
test ecx, ecx
jb 0x43de0e
inc ecx
lea eax, [ebp - 0x45f]
mov bl, byte [eax]
mov byte [edx], bl
inc edx
mov bl, byte [eax - 1]
mov byte [edx], bl
inc edx
mov bl, byte [eax - 2]
mov byte [edx], bl
inc edx
add eax, 4
dec ecx
jne 0x43ddf7
push ebp
mov eax, 0x43df90
call fcn.0043da78
pop ecx
mov eax, dword [0x4d5c9c]
call fcn.00402828
mov dword [0x4d5cc0], eax
mov edx, dword [0x4d5c9c]
mov eax, dword [0x4d5cc0]
call fcn.00407f78
mov eax, dword [0x4d5c9c]
call fcn.00402828
mov dword [0x4d5cbc], eax
mov edx, dword [0x4d5c9c]
mov eax, dword [0x4d5cbc]
call fcn.00407f78
lea eax, [ebp - 0x61]
push eax
mov ecx, 0x3ffff
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.0043d85c
lea edx, [ebp - 0x61]
mov eax, dword [ebp - 4]
call fcn.0043d9a0
lea eax, [ebp - 0x61]
call fcn.0042ecec
xor eax, eax
mov dword [0x4d5ca0], eax
push ebp
mov eax, 0x43dfa0
call fcn.0043da78
pop ecx
mov eax, dword [ebp - 0x29]
call fcn.00402848
mov edx, dword [0x4d5c9c]
mov eax, dword [0x4d5cc0]
call fcn.00402848
mov edx, dword [0x4d5c9c]
mov eax, dword [0x4d5cbc]
call fcn.00402848
mov eax, dword [ebp - 4]
call fcn.00403ba8
mov eax, dword [0x4d5ca8]
call fcn.00402848
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x43deeb
mov eax, dword [0x4d5ca4]
push eax
call sub.kernel32.dll_GlobalFree
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret