Function at 0x43ac37
Capabilities:
Capture screenshot

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [0x46a010]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0xb4], eax
xor ecx, ecx
mov eax, ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x88], ecx
mov esi, ecx
mov edx, dword [edi + 0x1c]
mov ebx, ecx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xa0], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0xa8], ecx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0x8c], eax
mov eax, dword [0x46a020]
cmp eax, 0x46a020
je 0x43acf3
test byte [eax + 0x1c], 1
je 0x43acf3
cmp byte [eax + 0x19], 4
jb 0x43acf3
push dword [ebp - 0x8c]
push edx
push ecx
push ecx
call fcn.00411040
pop ecx
push eax
mov eax, dword [0x46a020]
mov edx, 0x406f44
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xa
pop ecx
call fcn.00416718
mov ecx, dword [ebp - 0x9c]
test ecx, ecx
je 0x43ad54
push 0x2000
xor eax, eax
push eax
push eax
push eax
movzx eax, cx
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [ebp - 0x90], eax
test eax, eax
je 0x43ad54
and dword [ebp - 0x74], ebx
lea eax, [ebp - 0x70]
push 0x50
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x74]
push eax
mov eax, dword [ebp - 0x90]
push 0x54
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x43ad54
mov ebx, dword [ebp - 0x6c]
test ebx, ebx
jns 0x43ad4b
neg ebx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x43adc7
push 0x2000
xor ecx, ecx
movzx eax, ax
push ecx
push ecx
push ecx
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x43adc7
and dword [ebp - 0x74], esi
lea eax, [ebp - 0x70]
push 0x50
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x74]
push eax
mov eax, dword [ebp - 0xa8]
push 0x54
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x43adc7
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xa0], eax
test eax, eax
jns 0x43adbe
neg eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x43ae2f
push 0x2000
xor ecx, ecx
movzx eax, ax
push ecx
push ecx
push ecx
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [ebp - 0x94], eax
test eax, eax
je 0x43ae2f
and dword [ebp - 0x74], esi
lea eax, [ebp - 0x70]
push 0x50
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x74]
push eax
push 0x54
push dword [ebp - 0x94]
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x43ae2f
mov esi, dword [ebp - 0x6c]
test esi, esi
jns 0x43ae24
neg esi
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x88], edx
jmp 0x43ae35
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0xa0]
mov ecx, eax
cmp eax, esi
jg 0x43ae43
mov ecx, esi
cmp ebx, ecx
jg 0x43ae4f
mov ebx, eax
cmp eax, esi
jg 0x43ae4f
mov ebx, esi
mov ecx, dword [ebp - 0xac]
add ecx, dword [ebp - 0x98]
add ecx, edx
mov dword [edi + 0x2c], ecx
mov eax, dword [0x46a020]
cmp eax, 0x46a020
je 0x43ae99
test byte [eax + 0x1c], 1
je 0x43ae99
cmp byte [eax + 0x19], 4
jb 0x43ae99
push ecx
push ecx
call fcn.00411040
pop ecx
push eax
mov eax, dword [0x46a020]
mov edx, 0x406f44
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xb
pop ecx
call fcn.00412c68
lea eax, [ebp - 0x18]
push eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetClientRect]
mov esi, dword [ebp - 0x10]
sub esi, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x8c], esi
jne 0x43aef1
mov eax, dword [0x46a020]
cmp eax, 0x46a020
je 0x43b269
test byte [eax + 0x1c], 1
je 0x43b269
cmp byte [eax + 0x19], 2
jb 0x43b269
call fcn.00411040
push eax
mov eax, dword [0x46a020]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xc
jmp 0x43b25e
test ebx, ebx
je 0x43b233
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetWindowDC]
mov dword [ebp - 0x84], eax
test eax, eax
je 0x43b168
push ebx
push esi
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push dword [ebp - 0x84]
mov esi, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0xb0], eax
call esi
push dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
call esi
cmp dword [ebp - 0x78], 0
mov dword [ebp - 0x7c], eax
je 0x43b151
test eax, eax
je 0x43b151
xor eax, eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x90]
mov edx, eax
test eax, eax
jne 0x43af6d
mov edx, dword [ebp - 0x94]
mov esi, dword [ebp - 0x84]
mov ecx, esi
call fcn.0044bc40
mov dword [edi + 0xc], eax
test eax, eax
je 0x43afac
push 0
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectPalette]
push 0
push dword [edi + 0xc]
mov dword [ebp - 0xa4], eax
push dword [ebp - 0x7c]
call dword [sym.imp.GDI32.dll_SelectPalette]
push esi
mov dword [ebp - 0x9c], eax
call dword [sym.imp.GDI32.dll_RealizePalette]
mov eax, dword [ebp - 0xb0]
push eax
push dword [ebp - 0x7c]
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x43b00a
mov esi, dword [ebp - 0x78]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xcc0020
mov dword [ebp - 0x80], eax
xor eax, eax
push eax
push eax
push esi
mov esi, dword [ebp - 0x8c]
push ebx
push esi
push eax
push eax
push dword [ebp - 0x7c]
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x43b010
push eax
push dword [ebp - 0x78]
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x43b010
mov esi, dword [ebp - 0x8c]
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x43b06e
push eax
push dword [ebp - 0x78]
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xcc0020
mov dword [ebp - 0x80], eax
xor edx, edx
mov eax, dword [ebp - 0xa0]
mov ecx, esi
push eax
push dword [ebp - 0xac]
push edx
push edx
push dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x98]
sub ecx, eax
sub ecx, dword [ebp - 0x88]
push ecx
push edx
push eax
push dword [ebp - 0x7c]
call dword [sym.imp.GDI32.dll_StretchBlt]
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x43b06e
push eax
push dword [ebp - 0x78]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x43b0b8
push eax
push dword [ebp - 0x78]
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xcc0020
mov dword [ebp - 0x80], eax
xor eax, eax
push eax
push eax
push dword [ebp - 0x78]
push ebx
push esi
sub esi, dword [ebp - 0x88]
push eax
push esi
mov esi, dword [ebp - 0x7c]
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x43b0bb
push eax
push dword [ebp - 0x78]
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x43b0bb
mov esi, dword [ebp - 0x7c]
cmp dword [edi + 0x30], 0
je 0x43b101
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xc
call esi
cdq
sub eax, edx
sar eax, 1
push 0xc
mov dword [ebp - 0x80], eax
call esi
mov ecx, ebx
sub ecx, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
jns 0x43b0e6
xor eax, eax
mov esi, dword [ebp - 0x7c]
push 0xb
push 0
push 0
push 0
push 0
push dword [edi + 0x30]
push eax
push dword [ebp - 0x80]
push esi
call dword [sym.imp.USER32.dll_DrawIconEx]
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x43b113
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x84]
test eax, eax
je 0x43b12d
push 1
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectPalette]
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x43b141
push 1
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectPalette]
push dword [ebp - 0x78]
mov esi, dword [sym.imp.GDI32.dll_DeleteDC]
call esi
push dword [ebp - 0x7c]
call esi
push dword [ebp - 0x84]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov esi, dword [ebp - 0x8c]
jmp 0x43b1ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x46a020]
cmp ecx, 0x46a020
je 0x43b1ac
test byte [ecx + 0x1c], 8
je 0x43b1ac
cmp byte [ecx + 0x19], 2
jb 0x43b1ac
push eax
push 0x406f1c
call fcn.00411040
push eax
mov eax, dword [0x46a020]
mov edx, 0x406f44
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xd
pop ecx
call fcn.00410eec
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
mov eax, dword [0x46a020]
cmp eax, 0x46a020
je 0x43b1ef
test byte [eax + 0x1c], 1
je 0x43b1ef
cmp byte [eax + 0x19], 4
jb 0x43b1ef
push ebx
push esi
call fcn.00411040
push eax
mov eax, dword [0x46a020]
mov edx, 0x406f44
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xe
pop ecx
call fcn.004166e3
mov eax, dword [0x46a020]
mov ebx, dword [ebp - 0xb0]
test ebx, ebx
je 0x43b238
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x43b218
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x43b20f
mov dword [ecx], eax
push ecx
push ebx
mov ecx, edi
call fcn.0043b2b8
cmp dword [edi + 0x28], 0
je 0x43b22b
push dword [edi + 0x28]
call dword [sym.imp.GDI32.dll_DeleteObject]
and dword [edi + 0x28], 0
mov dword [edi + 0x28], ebx
xor ebx, ebx
inc ebx
jmp 0x43b26b
mov eax, dword [0x46a020]
cmp eax, 0x46a020
je 0x43b269
test byte [eax + 0x1c], 1
je 0x43b269
cmp byte [eax + 0x19], 2
jb 0x43b269
call fcn.00411040
push eax
mov eax, dword [0x46a020]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xf
mov edx, 0x406f44
pop ecx
call fcn.004110b1
xor ebx, ebx
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x43b27c
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x43b28d
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x43b29e
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [ebp - 8]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00468719
mov esp, ebp
pop ebp
ret 4