Function at 0x437c98
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffb64
push ebx
push esi
push edi
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4380b1
push 0
push 0
push 0
push 0x4380b8
call sub.gdi32.dll_CreateDCA
mov dword [ebp - 0x10], eax
xor ecx, ecx
push ebp
push 0x4380aa
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x14], eax
xor ecx, ecx
push ebp
push 0x43808c
push dword fs:[ecx]
mov dword fs:[ecx], esp
push 8
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_GetDeviceCaps
mov edi, eax
push 0xa
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_GetDeviceCaps
mov esi, eax
push esi
push edi
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleBitmap
mov dword [ebp - 0x18], eax
xor ecx, ecx
push ebp
push 0x43806e
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectObject
mov byte [ebp - 0x25], 0
xor eax, eax
mov dword [ebp - 0x24], eax
push 0x26
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_GetDeviceCaps
test ah, 1
je 0x437dab
mov eax, 0x404
call fcn.00402858
mov ebx, eax
mov eax, ebx
xor ecx, ecx
mov edx, 0x404
call fcn.00403340
mov word [ebx], 0x300
lea eax, [ebx + 4]
push eax
push pe_nt_image_headers32
push 0
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_GetSystemPaletteEntries
mov word [ebx + 2], ax
cmp word [ebx + 2], 0
je 0x437da4
push ebx
call sub.gdi32.dll_CreatePalette
mov dword [ebp - 0x24], eax
push 0
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_SelectPalette
mov byte [ebp - 0x25], 1
jmp 0x437dab
mov eax, ebx
call fcn.00402878
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x10]
push eax
push esi
push edi
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_BitBlt
lea eax, [ebp - 0x20]
push eax
call sub.user32.dll_GetCursorPos
push 3
push 0
push 0
push 0x20
push 0x20
call sub.user32.dll_GetCursor
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.user32.dll_DrawIconEx
lea eax, [ebp - 0x49b]
xor ecx, ecx
mov edx, 0x436
call fcn.00403340
mov dword [ebp - 0x48d], 0x28
mov dword [ebp - 0x489], edi
mov dword [ebp - 0x485], esi
mov word [ebp - 0x481], 1
mov word [ebp - 0x47f], 8
xor eax, eax
mov dword [ebp - 0x47d], eax
mov ebx, edi
imul ebx, esi
mov dword [ebp - 0x479], ebx
push ebx
push 0
call sub.kernel32.dll_GlobalAlloc
mov dword [0x4f1ca4], eax
xor ecx, ecx
push ebp
push 0x438041
push dword fs:[ecx]
mov dword fs:[ecx], esp
push 0
lea eax, [ebp - 0x48d]
push eax
mov eax, dword [0x4f1ca4]
push eax
push esi
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.gdi32.dll_GetDIBits
mov eax, 0x301
call fcn.00402858
mov dword [0x4f1ca8], eax
mov dword [0x4f1cac], edi
mov dword [0x4f1cb0], esi
mov byte [0x4f1cb4], 8
mov byte [0x4f1cb5], 3
mov eax, dword [0x4f1cac]
mov dword [0x4f1c9c], eax
mov dword [0x4f1c98], 0x100
push 0xffff
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x418a28]
call fcn.0041dbb8
mov dword [ebp - 4], eax
mov ecx, 8
mov edx, 0x4380c8
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov dword [0x4f1ca0], 0xd
mov eax, dword [0x4f1ca8]
mov edi, eax
mov esi, 0x4f1cac
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.0043790c
mov dword [ebx], eax
mov eax, dword [ebx + 4]
call fcn.0043790c
mov dword [ebx + 4], eax
mov byte [ebx + 0xc], 0
push ebp
mov eax, 0x4380dc
call fcn.00437bdc
pop ecx
mov eax, dword [0x4f1c98]
lea eax, [eax + eax*2]
mov dword [0x4f1ca0], eax
mov eax, dword [0x4f1ca8]
mov dword [ebp - 0xc], eax
mov edx, dword [0x4f1c98]
dec edx
test edx, edx
jb 0x437f6b
inc edx
lea eax, [ebp - 0x463]
mov cl, byte [eax]
mov ebx, dword [ebp - 0xc]
mov byte [ebx], cl
inc dword [ebp - 0xc]
mov cl, byte [eax - 1]
mov ebx, dword [ebp - 0xc]
mov byte [ebx], cl
inc dword [ebp - 0xc]
mov cl, byte [eax - 2]
mov ebx, dword [ebp - 0xc]
mov byte [ebx], cl
inc dword [ebp - 0xc]
add eax, 4
dec edx
jne 0x437f45
push ebp
mov eax, 0x4380ec
call fcn.00437bdc
pop ecx
mov eax, dword [0x4f1c9c]
call fcn.00402858
mov dword [0x4f1cc0], eax
mov edx, dword [0x4f1c9c]
mov eax, dword [0x4f1cc0]
call fcn.00407c54
mov eax, dword [0x4f1c9c]
call fcn.00402858
mov dword [0x4f1cbc], eax
mov edx, dword [0x4f1c9c]
mov eax, dword [0x4f1cbc]
call fcn.00407c54
lea eax, [ebp - 0x65]
push eax
mov ecx, 0x3ffff
mov dl, 9
mov eax, dword [ebp - 4]
call fcn.004379c0
lea edx, [ebp - 0x65]
mov eax, dword [ebp - 4]
call fcn.00437b04
lea eax, [ebp - 0x65]
call fcn.00428984
xor eax, eax
mov dword [0x4f1ca0], eax
push ebp
mov eax, 0x4380fc
call fcn.00437bdc
pop ecx
mov eax, dword [ebp - 0x2d]
call fcn.00402878
mov edx, dword [0x4f1c9c]
mov eax, dword [0x4f1cc0]
call fcn.00402878
mov edx, dword [0x4f1c9c]
mov eax, dword [0x4f1cbc]
call fcn.00402878
mov eax, dword [ebp - 4]
call fcn.00403ad4
mov eax, dword [0x4f1ca8]
call fcn.00402878
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x438048
mov eax, dword [0x4f1ca4]
push eax
call sub.kernel32.dll_GlobalFree
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret