Function at 0x5010e4
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, 0x5899b8
mov esi, 0x589938
cmp dword [0x55a428], 0
jne 0x501a17
mov dword [0x55a428], 1
xor eax, eax
mov dword [0x589958], eax
xor edx, edx
mov dword [0x58995c], edx
xor ecx, ecx
mov dword [0x589950], ecx
xor eax, eax
mov dword [0x589948], eax
cmp dword [0x55a3c0], 0
je 0x501986
cmp dword [0x55a3ec], 0
je 0x501986
push dword [0x55a3ec]
call sub.USER32.dll_GetDC
mov dword [0x589958], eax
cmp dword [0x589958], 0
je 0x501986
cmp dword [0x55a400], 0
je 0x501181
xor edx, edx
mov dword [0x55a400], edx
push 0x7e
push dword [0x55a3ec]
call sub.USER32.dll_KillTimer
push 0x589968
push dword [0x55a3ec]
call sub.USER32.dll_GetClientRect
mov ecx, dword [0x55a424]
cmp ecx, dword [0x589970]
je 0x5011ae
call fcn.00500c40
mov eax, dword [0x589970]
mov dword [0x55a424], eax
push 1
push dword [0x589958]
call sub.GDI32.dll_SetMapMode
mov dword [0x589944], eax
push 0
call sub.GDI32.dll_CreateCompatibleDC
mov dword [0x58995c], eax
cmp dword [0x58995c], 0
je 0x501986
test edi, edi
je 0x50121c
cmp dword [edi + 0x85c], 0
jne 0x5011eb
call fcn.00500c40
mov edx, dword [edi + 0x854]
sub edx, dword [edi + 0x84c]
inc edx
mov dword [0x589970], edx
cmp dword [0x55a3e0], 2
jl 0x50121c
mov ecx, dword [edi + 0x858]
sub ecx, dword [edi + 0x850]
add ecx, 2
mov dword [0x589974], ecx
push dword [0x589974]
push dword [0x589970]
push dword [0x589958]
call sub.GDI32.dll_CreateCompatibleBitmap
mov dword [0x589948], eax
cmp dword [0x589948], 0
je 0x501986
push dword [0x589948]
push dword [0x58995c]
call sub.GDI32.dll_SelectObject
mov dword [0x58994c], eax
push dword [0x54d2d0]
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x589964], eax
cmp dword [0x589964], 0
je 0x501986
push dword [0x589964]
push 0x589968
push dword [0x58995c]
call sub.USER32.dll_FillRect
push dword [0x589964]
call sub.GDI32.dll_DeleteObject
push 0x55a4d9
push 0
push 0
push 0
push 0
push 1
push 0
push 0
push 0
push 0x190
push 0
push 0
push 0
push 0x48
push 0x5a
push dword [0x589958]
call sub.GDI32.dll_GetDeviceCaps
push eax
push 8
call sub.KERNEL32.dll_MulDiv
neg eax
push eax
call sub.GDI32.dll_CreateFontA
mov dword [0x589950], eax
cmp dword [0x589950], 0
je 0x501986
push dword [0x589950]
push dword [0x58995c]
call sub.GDI32.dll_SelectObject
mov dword [0x589954], eax
cmp dword [0x55b3d8], 0
je 0x501451
push 0x589988
call sub.USER32.dll_GetCursorPos
push 0x589988
push dword [0x55a3ec]
call sub.USER32.dll_ScreenToClient
test edi, edi
je 0x5013c8
cmp byte [edi + 0x664], 0
je 0x501986
push edi
call fcn.00500b2d
mov dword [0x589960], eax
cmp dword [0x589960], 0
je 0x501986
push esi
push edi
lea esi, [edi + 0x84c]
mov edi, 0x589978
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [edi + 0x84c]
sub dword [edi + 0x854], eax
xor edx, edx
mov dword [edi + 0x84c], edx
cmp dword [0x55a3e0], 2
jl 0x50139b
mov ecx, dword [edi + 0x850]
sub dword [edi + 0x858], ecx
xor eax, eax
mov dword [edi + 0x850], eax
push dword [0x589960]
push dword [0x58995c]
push edi
call fcn.00500249
push esi
push edi
add edi, 0x84c
mov esi, 0x589978
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x501451
xor eax, eax
mov dword [0x589940], eax
mov dword [0x58993c], 1
mov edx, dword [0x55b3c0]
mov dword [esi], edx
jmp 0x50144c
mov ecx, dword [esi]
cmp byte [ecx + 0x664], 0
je 0x501442
push dword [esi]
call fcn.00500b2d
mov dword [0x589960], eax
cmp dword [0x589960], 0
je 0x501442
mov eax, dword [esi]
mov edx, dword [eax + 0x85c]
cmp edx, dword [0x58993c]
je 0x501429
call fcn.00500c40
inc dword [0x589940]
cmp dword [0x589940], 2
jg 0x501451
jmp 0x5013cf
push dword [0x589960]
push dword [0x58995c]
push dword [esi]
call fcn.00500249
inc dword [0x58993c]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x9d8]
mov dword [esi], eax
cmp dword [esi], 0
jne 0x5013e3
cmp dword [0x55b3c0], 0
je 0x501692
cmp dword [0x55a2a8], 0
je 0x501692
test edi, edi
jne 0x501692
push 0x589968
push dword [0x55a3ec]
call sub.USER32.dll_GetClientRect
push dword [0x589974]
push dword [0x589970]
push dword [0x58996c]
push dword [0x589968]
call sub.GDI32.dll_CreateRectRgn
mov dword [0x589990], eax
cmp dword [0x589990], 0
je 0x501692
mov edx, dword [0x55b3c0]
mov dword [esi], edx
jmp 0x5015a7
mov ecx, dword [esi]
cmp byte [ecx + 0x664], 0
je 0x50159d
push dword [esi]
call fcn.00500b2d
mov dword [0x589960], eax
cmp dword [0x589960], 0
je 0x50159d
mov eax, dword [esi]
mov edx, dword [eax + 0x850]
mov dword [ebx + 4], edx
mov ecx, dword [eax + 0x858]
mov dword [ebx + 0xc], ecx
mov edx, dword [eax + 0x84c]
mov dword [ebx], edx
mov eax, dword [eax + 0x854]
mov dword [ebx + 8], eax
test edi, edi
je 0x501538
mov eax, dword [0x55a3e0]
cmp eax, 3
jne 0x501523
sub dword [ebx], 4
sub dword [ebx + 4], 2
jmp 0x501560
cmp eax, 2
jne 0x501530
dec dword [ebx]
sub dword [ebx + 4], 2
jmp 0x501560
dec dword [ebx]
add dword [ebx + 0xc], 2
jmp 0x501560
mov eax, dword [0x55a3e0]
cmp eax, 3
jne 0x50154b
add dword [ebx + 0xc], 2
inc dword [ebx + 8]
jmp 0x501560
cmp eax, 2
jne 0x501559
add dword [ebx + 0xc], 2
inc dword [ebx + 8]
jmp 0x501560
add dword [ebx + 0xc], 2
inc dword [ebx + 8]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call sub.GDI32.dll_CreateRectRgn
mov dword [0x589994], eax
cmp dword [0x589994], 0
je 0x5015b0
push 4
push dword [0x589994]
mov eax, dword [0x589990]
push eax
push eax
call sub.GDI32.dll_CombineRgn
push dword [0x589994]
call sub.GDI32.dll_DeleteObject
mov edx, dword [esi]
mov ecx, dword [edx + 0x9d8]
mov dword [esi], ecx
cmp dword [esi], 0
jne 0x5014bf
cmp dword [esi], 0
jne 0x501687
push 0
call sub.GDI32.dll_CreateCompatibleDC
mov esi, eax
mov dword [0x5899b4], esi
test esi, esi
je 0x501687
push dword [0x55a2a8]
push esi
call sub.GDI32.dll_SelectObject
mov dword [0x589998], eax
push dword [0x589990]
push dword [0x58995c]
call sub.GDI32.dll_SelectClipRgn
push 0x58999c
push 0x18
push dword [0x55a2a8]
call sub.GDI32.dll_GetObjectA
xor eax, eax
mov dword [ebx + 4], eax
xor edx, edx
mov dword [ebx], edx
push 0xcc0020
push 0
push 0
push dword [0x5899b4]
push dword [0x5899a4]
push dword [0x5899a0]
push dword [ebx + 4]
push dword [ebx]
push dword [0x58995c]
call sub.GDI32.dll_BitBlt
mov ecx, dword [0x5899a0]
add dword [ebx], ecx
mov eax, dword [ebx]
cmp eax, dword [0x589970]
jl 0x50160d
mov edx, dword [0x5899a4]
add dword [ebx + 4], edx
mov ecx, dword [ebx + 4]
cmp ecx, dword [0x589974]
jl 0x501609
push 0
push dword [0x58995c]
call sub.GDI32.dll_SelectClipRgn
push dword [0x589998]
push dword [0x5899b4]
call sub.GDI32.dll_SelectObject
push dword [0x5899b4]
call sub.GDI32.dll_DeleteDC
push dword [0x589990]
call sub.GDI32.dll_DeleteObject
push 0x589968
push dword [0x55a3ec]
call sub.USER32.dll_GetClientRect
cmp dword [0x55a3e0], 3
jne 0x501732
test edi, edi
jne 0x5018ec
mov dword [0x589970], 2
push dword [0x54d2d8]
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x589964], eax
push dword [0x589964]
push 0x589968
push dword [0x58995c]
call sub.USER32.dll_FillRect
push dword [0x589964]
call sub.GDI32.dll_DeleteObject
mov dword [0x589970], 1
push dword [0x54d2e8]
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x589964], eax
push dword [0x589964]
push 0x589968
push dword [0x58995c]
call sub.USER32.dll_FillRect
push dword [0x589964]
call sub.GDI32.dll_DeleteObject
jmp 0x5018ec
cmp dword [0x55a3e0], 2
jne 0x5017ce
test edi, edi
jne 0x5018ec
mov eax, dword [0x589970]
dec eax
mov dword [0x589968], eax
push dword [0x54d2d4]
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x589964], eax
push dword [0x589964]
push 0x589968
push dword [0x58995c]
call sub.USER32.dll_FillRect
push dword [0x589964]
call sub.GDI32.dll_DeleteObject
mov edx, dword [0x589970]
add edx, 0xfffffffe
mov dword [0x589968], edx
dec dword [0x589970]
push dword [0x54d2e8]
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x589964], eax
push dword [0x589964]
push 0x589968
push dword [0x58995c]
call sub.USER32.dll_FillRect
push dword [0x589964]
call sub.GDI32.dll_DeleteObject
jmp 0x5018ec
cmp dword [0x55a3e0], 1
jne 0x501868
mov ecx, dword [0x589974]
add ecx, 0xfffffffe
mov dword [0x58996c], ecx
mov eax, dword [0x58996c]
inc eax
mov dword [0x589974], eax
push dword [0x54d2e8]
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x589964], eax
push dword [0x589964]
push 0x589968
push dword [0x58995c]
call sub.USER32.dll_FillRect
push dword [0x589964]
call sub.GDI32.dll_DeleteObject
inc dword [0x58996c]
inc dword [0x589974]
push dword [0x54d2d4]
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x589964], eax
push dword [0x589964]
push 0x589968
push dword [0x58995c]
call sub.USER32.dll_FillRect
push dword [0x589964]
call sub.GDI32.dll_DeleteObject
jmp 0x5018ec
xor edx, edx
mov dword [0x58996c], edx
mov dword [0x589974], 1
push dword [0x54d2e8]
call sub.GDI32.dll_CreateSolidBrush
mov ebx, eax
mov dword [0x589964], ebx
push ebx
push 0x589968
push dword [0x58995c]
call sub.USER32.dll_FillRect
push dword [0x589964]
call sub.GDI32.dll_DeleteObject
mov dword [0x58996c], 1
mov dword [0x589974], 2
push dword [0x54d2d8]
call sub.GDI32.dll_CreateSolidBrush
mov ebx, eax
mov dword [0x589964], ebx
push ebx
push 0x589968
push dword [0x58995c]
call sub.USER32.dll_FillRect
push dword [0x589964]
call sub.GDI32.dll_DeleteObject
push 0x589968
push dword [0x55a3ec]
call sub.USER32.dll_GetClientRect
xor eax, eax
mov dword [0x58997c], eax
test edi, edi
je 0x501950
mov edx, dword [edi + 0x84c]
mov dword [0x589968], edx
mov ecx, dword [edi + 0x854]
sub ecx, dword [0x589968]
inc ecx
mov dword [0x589970], ecx
mov eax, dword [edi + 0x850]
mov dword [0x58996c], eax
cmp dword [0x55a3e0], 1
jg 0x50193f
mov dword [0x58997c], eax
mov edx, dword [edi + 0x858]
sub edx, eax
add edx, 2
mov dword [0x589974], edx
push 0xcc0020
push dword [0x58997c]
push 0
push dword [0x58995c]
push dword [0x589974]
push dword [0x589970]
push dword [0x58996c]
push dword [0x589968]
push dword [0x589958]
call sub.GDI32.dll_BitBlt
cmp dword [0x589950], 0
je 0x5019ab
push dword [0x589954]
push dword [0x58995c]
call sub.GDI32.dll_SelectObject
push dword [0x589950]
call sub.GDI32.dll_DeleteObject
cmp dword [0x58995c], 0
je 0x5019e4
cmp dword [0x589948], 0
je 0x5019d9
push dword [0x58994c]
push dword [0x58995c]
call sub.GDI32.dll_SelectObject
push dword [0x589948]
call sub.GDI32.dll_DeleteObject
push dword [0x58995c]
call sub.GDI32.dll_DeleteDC
cmp dword [0x589958], 0
je 0x501a0f
push dword [0x589944]
push dword [0x589958]
call sub.GDI32.dll_SetMapMode
push dword [0x589958]
push dword [0x55a3ec]
call sub.USER32.dll_ReleaseDC
xor ecx, ecx
mov dword [0x55a428], ecx
pop edi
pop esi
pop ebx
pop ebp
ret 4