Function at 0x4207ac
Capabilities:
Capture screenshot

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0xb8
push ebx
push esi
push edi
mov edi, dword [0x4694f8]
mov al, 1
cmp al, byte [ecx + 1]
mov ecx, dword [0x466b78]
sbb esi, esi
and esi, dword [0x4694fc]
push 1
xor ebx, ebx
push ebx
push 0xffffffffffffffff
push 0x45abb4
mov dword [ebp - 0xc], edi
mov dword [ebp - 4], esi
call fcn.0040187e
cmp edi, ebx
je 0x4207fb
push 1
push ebx
push 0xffffffffffffffff
push ebx
mov ecx, edi
call fcn.0040187e
cmp esi, ebx
je 0x42080c
push 1
push ebx
push 0xffffffffffffffff
push ebx
mov ecx, esi
call fcn.0040187e
xor eax, eax
mov dword [ebp - 0x20], ebx
lea edi, [ebp - 0x1c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [0x464108]
test byte [eax + 0xc4], 1
jne 0x420850
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x420ec9
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
add dword [ebp + 0x6c], ecx
add dword [ebp + 0x70], eax
add dword [ebp + 0x74], ecx
add dword [ebp + 0x78], eax
mov edi, dword [ebp + 0x7c]
or dword [ebp + 0x38], 0xffffffff
push 0x2e
push edi
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x44], ebx
call fcn.00457cb0
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x4208bb
inc esi
push 0x45e13c
push esi
call fcn.00441ec1
test eax, eax
pop ecx
pop ecx
je 0x4208a7
push 0x45e138
push esi
call fcn.00441ec1
test eax, eax
pop ecx
pop ecx
je 0x4208a7
push 0x45e134
push esi
call fcn.00441ec1
test eax, eax
pop ecx
pop ecx
jne 0x4208bb
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x31
call esi
push 0x32
mov dword [ebp + 0x3c], eax
call esi
mov dword [ebp + 0x44], eax
push edi
call fcn.00401ed8
mov esi, eax
cmp byte [esi], 0x2a
pop ecx
jne 0x4209e8
mov ebx, 0x45ac08
inc esi
movsx eax, byte [esi]
push eax
call fcn.0044234f
cmp eax, 0x48
pop ecx
je 0x4209b3
cmp eax, 0x57
je 0x4209a5
push 4
push str.Icon
push esi
call fcn.00441f04
add esp, 0xc
test eax, eax
jne 0x420914
add esi, 4
push esi
call fcn.0040137d
mov dword [ebp + 0x20], eax
jmp 0x4209bf
push 5
push str.Trans
push esi
call fcn.00441f04
add esp, 0xc
test eax, eax
jne 0x420984
push 0x20
add esi, 5
lea eax, [ebp - 0x54]
push esi
push eax
call fcn.004392af
lea eax, [ebp - 0x54]
push ebx
push eax
call fcn.0043956b
add esp, 0x14
test eax, eax
je 0x42094b
mov byte [eax], 0
lea eax, [ebp - 0x54]
push eax
call fcn.004380f5
cmp eax, 0xffffffff
pop ecx
jne 0x42096f
push 0x10
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.004010ae
add esp, 0xc
mov dword [ebp + 0x38], eax
jmp 0x4209c0
movzx ecx, ah
mov ch, al
shr eax, 0x10
movzx eax, al
shl ecx, 8
or ecx, eax
mov dword [ebp + 0x38], ecx
jmp 0x4209c0
push esi
call fcn.0040137d
test eax, eax
pop ecx
mov dword [ebp + 0x5c], eax
jge 0x420996
and dword [ebp + 0x5c], 0
mov eax, 0xff
cmp dword [ebp + 0x5c], eax
jle 0x4209c0
mov dword [ebp + 0x5c], eax
jmp 0x4209c0
lea eax, [esi + 1]
push eax
call fcn.0040137d
mov dword [ebp + 0x3c], eax
jmp 0x4209bf
lea eax, [esi + 1]
push eax
call fcn.0040137d
mov dword [ebp + 0x44], eax
pop ecx
push ebx
push esi
call fcn.0043956b
test eax, eax
pop ecx
pop ecx
je 0x420ec9
inc eax
push eax
mov edi, eax
call fcn.00401ed8
mov esi, eax
cmp byte [esi], 0x2a
pop ecx
je 0x4208d2
xor ebx, ebx
push ebx
push dword [ebp + 0x20]
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x44]
push dword [ebp + 0x3c]
push edi
call fcn.004389e1
mov edi, eax
add esp, 0x18
cmp edi, ebx
mov dword [ebp + 4], edi
je 0x420ec9
push ebx
call dword [sym.imp.USER32.dll_GetDC]
cmp eax, ebx
mov dword [ebp + 0x24], eax
jne 0x420a26
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x420ec9
cmp dword [ebp - 8], 1
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x20], ebx
mov byte [ebp + 0x7f], 0
jne 0x420a94
lea eax, [ebp - 0x34]
push eax
push edi
call dword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x420a7d
push 1
lea eax, [ebp + 0x63]
push eax
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x28]
push eax
push dword [ebp + 0x24]
push dword [ebp - 0x28]
call fcn.00420f2b
add esp, 0x18
push dword [ebp - 0x24]
mov dword [ebp + 0x40], eax
call esi
push dword [ebp - 0x28]
call esi
push 1
push edi
call fcn.004388d5
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
mov dword [ebp + 4], edi
je 0x420ec9
push 8
lea eax, [ebp + 0x63]
push eax
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x28]
push eax
push dword [ebp + 0x24]
push edi
call fcn.00420f2b
add esp, 0x18
cmp eax, ebx
mov dword [ebp + 0x34], eax
je 0x420e59
mov esi, dword [ebp + 0x74]
sub esi, dword [ebp + 0x6c]
mov ebx, dword [ebp + 0x78]
sub ebx, dword [ebp + 0x70]
push dword [ebp + 0x24]
inc esi
inc ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
xor edi, edi
cmp eax, edi
mov dword [ebp + 0x2c], eax
je 0x420e59
push ebx
push esi
push dword [ebp + 0x24]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
cmp eax, edi
mov dword [ebp + 0x1c], eax
je 0x420e59
push eax
push dword [ebp + 0x2c]
call dword [sym.imp.GDI32.dll_SelectObject]
cmp eax, edi
mov dword [ebp + 0x20], eax
je 0x420e59
push 0xcc0020
push dword [ebp + 0x70]
push dword [ebp + 0x6c]
push dword [ebp + 0x24]
push ebx
push esi
push edi
push edi
push dword [ebp + 0x2c]
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x420e59
push 8
lea eax, [ebp + 0x77]
push eax
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x4c]
push eax
push dword [ebp + 0x2c]
push dword [ebp + 0x1c]
call fcn.00420f2b
add esp, 0x18
cmp eax, edi
mov dword [ebp + 0x48], eax
je 0x420e59
mov ebx, dword [ebp + 0x28]
mov esi, dword [ebp + 0x4c]
imul ebx, dword [ebp + 0x18]
imul esi, dword [ebp + 0x14]
cmp byte [ebp + 0x63], 0
mov dword [ebp + 0x44], ebx
mov dword [ebp + 8], esi
jne 0x420b72
cmp byte [ebp + 0x77], 0
je 0x420ba6
cmp dword [ebp + 0x38], 0xffffffff
mov eax, 0xf8f8f8
je 0x420b80
and dword [ebp + 0x38], eax
xor ecx, ecx
cmp esi, edi
jle 0x420b93
mov edx, dword [ebp + 0x48]
lea edx, [edx + ecx*4]
and dword [edx], eax
inc ecx
cmp ecx, esi
jl 0x420b86
xor ecx, ecx
cmp ebx, edi
jle 0x420bbb
mov edx, dword [ebp + 0x34]
lea edx, [edx + ecx*4]
and dword [edx], eax
inc ecx
cmp ecx, ebx
jl 0x420b99
cmp ebx, edi
jle 0x420bbb
mov eax, dword [ebp + 0x34]
add eax, 3
mov ecx, ebx
mov byte [eax], 0
add eax, 4
dec ecx
jne 0x420bb2
cmp dword [ebp + 0x5c], 1
jge 0x420cbe
cmp esi, edi
jle 0x420bda
mov eax, dword [ebp + 0x48]
add eax, 3
mov ecx, esi
mov byte [eax], 0
add eax, 4
dec ecx
jne 0x420bd1
cmp esi, edi
mov dword [ebp + 0x58], edi
jle 0x420e44
mov dword [ebp + 0x74], edi
mov eax, dword [ebp + 0x34]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x48]
mov edx, dword [ebp + 0x74]
cmp dword [edx + ecx], eax
je 0x420c0c
mov ecx, dword [ebp + 0x40]
cmp ecx, edi
je 0x420c03
cmp dword [ecx], edi
jne 0x420c0c
cmp eax, dword [ebp + 0x38]
jne 0x420ca9
mov eax, dword [ebp + 0x58]
cdq
idiv dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x14]
sub ecx, eax
cmp dword [ebp + 0x18], ecx
jg 0x420ca9
mov eax, dword [ebp + 0x4c]
sub eax, edx
cmp dword [ebp + 0x28], eax
jg 0x420ca9
cmp ebx, edi
mov byte [ebp + 0x7f], 1
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x30], edi
jle 0x420e59
mov edx, dword [ebp + 0x4c]
mov eax, dword [ebp + 0x34]
mov esi, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x40]
shl edx, 2
mov byte [ebp + 0x7f], 1
mov dword [ebp + 0x78], esi
sub ebx, eax
mov ecx, dword [eax]
mov edi, dword [ebp + 0x48]
cmp dword [esi + edi], ecx
je 0x420c70
cmp dword [ebp + 0x40], 0
je 0x420c6b
cmp dword [ebx + eax], 0
jne 0x420c70
cmp ecx, dword [ebp + 0x38]
jne 0x420c9d
inc dword [ebp + 0x50]
mov ecx, dword [ebp + 0x50]
cmp ecx, dword [ebp + 0x28]
jge 0x420c80
add esi, 4
jmp 0x420c8a
and dword [ebp + 0x50], 0
add dword [ebp + 0x78], edx
mov esi, dword [ebp + 0x78]
inc dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
add eax, 4
cmp ecx, dword [ebp + 0x44]
jl 0x420c55
jmp 0x420e59
mov ebx, dword [ebp + 0x44]
mov esi, dword [ebp + 8]
mov byte [ebp + 0x7f], 0
xor edi, edi
inc dword [ebp + 0x58]
add dword [ebp + 0x74], 4
cmp dword [ebp + 0x58], esi
jl 0x420be8
jmp 0x420e44
cmp esi, edi
mov dword [ebp + 0x58], edi
jle 0x420e44
mov dword [ebp + 0xc], edi
mov eax, dword [ebp + 0x58]
cdq
idiv dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x14]
sub ecx, eax
cmp dword [ebp + 0x18], ecx
jg 0x420e34
mov eax, dword [ebp + 0x4c]
sub eax, edx
cmp dword [ebp + 0x28], eax
jg 0x420e34
cmp ebx, edi
mov byte [ebp + 0x7f], 1
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x30], edi
jle 0x420e59
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x34]
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x40]
sub eax, esi
mov byte [ebp + 0x7f], 1
mov dword [ebp - 0x10], eax
mov eax, dword [esi]
mov dl, byte [esi + 1]
shr eax, 0x10
movzx eax, al
cmp dword [ebp + 0x5c], eax
jle 0x420d2f
mov byte [ebp + 0x77], 0
jmp 0x420d37
mov cl, al
sub cl, byte [ebp + 0x5c]
mov byte [ebp + 0x77], cl
movzx edx, dl
cmp dword [ebp + 0x5c], edx
mov dword [ebp], edx
jle 0x420d48
mov byte [ebp + 0x7b], 0
jmp 0x420d50
mov cl, dl
sub cl, byte [ebp + 0x5c]
mov byte [ebp + 0x7b], cl
movzx ecx, byte [esi]
cmp dword [ebp + 0x5c], ecx
jle 0x420d5e
mov byte [ebp + 0x56], 0
jmp 0x420d69
mov dl, cl
sub dl, byte [ebp + 0x5c]
mov byte [ebp + 0x56], dl
mov edx, dword [ebp]
mov edi, 0xff
sub edi, eax
cmp dword [ebp + 0x5c], edi
jle 0x420d79
or al, 0xff
jmp 0x420d7c
add al, byte [ebp + 0x5c]
mov edi, 0xff
sub edi, edx
cmp dword [ebp + 0x5c], edi
jle 0x420d8e
mov byte [ebp + 0x63], 0xff
jmp 0x420d94
add dl, byte [ebp + 0x5c]
mov byte [ebp + 0x63], dl
mov edx, 0xff
sub edx, ecx
cmp dword [ebp + 0x5c], edx
jle 0x420da6
mov byte [ebp + 0x57], 0xff
jmp 0x420dac
add cl, byte [ebp + 0x5c]
mov byte [ebp + 0x57], cl
mov ecx, dword [ebp + 0x48]
mov edx, dword [ebp + 0x3c]
lea edi, [edx + ecx]
mov cl, byte [edi + 2]
cmp cl, byte [ebp + 0x77]
mov dl, byte [edi + 1]
mov bl, byte [edi]
jb 0x420dda
cmp cl, al
ja 0x420dda
cmp dl, byte [ebp + 0x7b]
jb 0x420dda
cmp dl, byte [ebp + 0x63]
ja 0x420dda
cmp bl, byte [ebp + 0x56]
jb 0x420dda
cmp bl, byte [ebp + 0x57]
jbe 0x420df0
cmp dword [ebp + 0x40], 0
je 0x420de9
mov eax, dword [ebp - 0x10]
cmp dword [esi + eax], 0
jne 0x420df0
mov eax, dword [esi]
cmp eax, dword [ebp + 0x38]
jne 0x420e28
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x28]
jge 0x420e01
add dword [ebp + 0x3c], 4
jmp 0x420e14
mov eax, dword [ebp + 0x4c]
and dword [ebp + 0x50], 0
shl eax, 2
add dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x3c], eax
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
add esi, 4
cmp eax, dword [ebp + 0x44]
jl 0x420d19
jmp 0x420e59
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x44]
mov byte [ebp + 0x7f], 0
xor edi, edi
inc dword [ebp + 0x58]
add dword [ebp + 0xc], 4
cmp dword [ebp + 0x58], esi
jl 0x420ccc
mov ecx, dword [0x466b78]
push 1
push edi
push 0xffffffffffffffff
push 0x45af3c
call fcn.0040187e
push dword [ebp + 0x24]
xor edi, edi
push edi
call dword [sym.imp.USER32.dll_ReleaseDC]
push dword [ebp + 4]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
cmp dword [ebp + 0x2c], edi
je 0x420e8f
cmp dword [ebp + 0x20], edi
je 0x420e86
push dword [ebp + 0x20]
push dword [ebp + 0x2c]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp + 0x2c]
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp dword [ebp + 0x1c], edi
je 0x420e99
push dword [ebp + 0x1c]
call esi
cmp dword [ebp + 0x34], edi
je 0x420ea7
push dword [ebp + 0x34]
call fcn.0043e6a5
pop ecx
cmp dword [ebp + 0x40], edi
je 0x420eb5
push dword [ebp + 0x40]
call fcn.0043e6a5
pop ecx
cmp dword [ebp + 0x48], edi
je 0x420ec3
push dword [ebp + 0x48]
call fcn.0043e6a5
pop ecx
cmp byte [ebp + 0x7f], 0
jne 0x420ece
xor eax, eax
inc eax
jmp 0x420f21
mov ecx, dword [ebp - 0xc]
cmp ecx, edi
je 0x420eee
mov eax, dword [ebp + 0x58]
cdq
idiv dword [ebp + 0x4c]
push 0x18
mov eax, edx
sub eax, dword [ebp - 0x20]
add eax, dword [ebp + 0x6c]
cdq
push edx
push eax
call fcn.00401c4f
mov ecx, dword [ebp - 4]
cmp ecx, edi
je 0x420f0c
mov eax, dword [ebp + 0x58]
cdq
idiv dword [ebp + 0x4c]
push 0x18
sub eax, dword [ebp - 0x1c]
add eax, dword [ebp + 0x70]
cdq
push edx
push eax
call fcn.00401c4f
mov ecx, dword [0x466b78]
push 1
push edi
push 0xffffffffffffffff
push 0x459724
call fcn.0040187e
pop edi
pop esi
pop ebx
add ebp, 0x64
leave
ret 0x14