Function at 0x41ffdc
Capabilities:
Capture screenshot

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0xb4
push ebx
mov ebx, dword [0x45d970]
push esi
push edi
mov al, 1
cmp al, byte [ecx + 1]
mov ecx, dword [0x45e2f0]
sbb edi, edi
and edi, dword [0x45d974]
push 1
xor esi, esi
push esi
push 0xffffffffffffffff
push 0x453e70
mov dword [ebp + 4], ebx
mov dword [ebp - 4], edi
call fcn.0040161c
cmp ebx, esi
je 0x42002b
push 1
push esi
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.0040161c
cmp edi, esi
je 0x42003c
push 1
push esi
push 0xffffffffffffffff
push esi
mov ecx, edi
call fcn.0040161c
xor eax, eax
mov dword [ebp - 0x1c], esi
lea edi, [ebp - 0x18]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [0x45b170]
test byte [eax + 0xc8], 1
jne 0x420080
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x420541
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
add dword [ebp + 0x6c], ecx
add dword [ebp + 0x70], eax
add dword [ebp + 0x74], ecx
add dword [ebp + 0x78], eax
or dword [ebp + 0x38], 0xffffffff
push 0x2e
push dword [ebp + 0x7c]
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x40], esi
call dword [sym.imp.MSVCR71.dll_strrchr]
mov edi, eax
cmp edi, esi
pop ecx
pop ecx
je 0x4200e8
mov ebx, dword [sym.imp.MSVCR71.dll__stricmp]
inc edi
push 0x457008
push edi
call ebx
test eax, eax
pop ecx
pop ecx
je 0x4200d4
push 0x457004
push edi
call ebx
test eax, eax
pop ecx
pop ecx
je 0x4200d4
push 0x457000
push edi
call ebx
test eax, eax
pop ecx
pop ecx
jne 0x4200e8
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x31
call edi
push 0x32
mov dword [ebp + 0x3c], eax
call edi
mov dword [ebp + 0x40], eax
mov ebx, dword [ebp + 0x7c]
mov al, byte [ebx]
cmp al, 0x20
je 0x4200f9
cmp al, 9
jne 0x420213
inc ebx
jmp 0x4200eb
inc ebx
movsx eax, byte [ebx]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x48
pop ecx
je 0x4201df
cmp eax, 0x57
je 0x4201d2
mov edi, dword [sym.imp.MSVCR71.dll__strnicmp]
push 4
push str.Icon
push ebx
call edi
add esp, 0xc
test eax, eax
jne 0x420143
add ebx, 4
mov esi, ebx
call fcn.0040113f
mov dword [ebp + 0x24], eax
jmp 0x4201ea
push 5
push str.Trans
push ebx
call edi
add esp, 0xc
test eax, eax
jne 0x4201ae
add ebx, 5
push ebx
push 0x20
pop eax
lea edi, [ebp - 0x50]
call fcn.00438a10
pop ecx
mov edi, 0x453ea4
lea eax, [ebp - 0x50]
call fcn.00438cc6
cmp eax, esi
je 0x420178
mov byte [eax], 0
lea edi, [ebp - 0x50]
call fcn.004378e5
cmp eax, 0xffffffff
jne 0x420199
push 0x10
mov eax, edi
push esi
push eax
call dword [sym.imp.MSVCR71.dll_strtol]
add esp, 0xc
mov dword [ebp + 0x38], eax
jmp 0x4201ea
movzx ecx, ah
mov ch, al
shr eax, 0x10
movzx eax, al
shl ecx, 8
or ecx, eax
mov dword [ebp + 0x38], ecx
jmp 0x4201ea
mov esi, ebx
call fcn.0040113f
test eax, eax
mov dword [ebp + 0x5c], eax
jge 0x4201c0
and dword [ebp + 0x5c], 0
cmp dword [ebp + 0x5c], 0xff
jle 0x4201ea
mov dword [ebp + 0x5c], 0xff
jmp 0x4201ea
lea esi, [ebx + 1]
call fcn.0040113f
mov dword [ebp + 0x3c], eax
jmp 0x4201ea
lea esi, [ebx + 1]
call fcn.0040113f
mov dword [ebp + 0x40], eax
mov edi, 0x453ea4
mov eax, ebx
call fcn.00438cc6
xor esi, esi
cmp eax, esi
je 0x420541
inc eax
mov dword [ebp + 0x7c], eax
mov ebx, eax
mov al, byte [ebx]
cmp al, 0x20
je 0x420210
cmp al, 9
jne 0x420213
inc ebx
jmp 0x420206
cmp byte [ebx], 0x2a
je 0x4200fc
push esi
push dword [ebp + 0x24]
lea eax, [ebp + 0x18]
push eax
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
push dword [ebp + 0x7c]
call fcn.00438152
mov ebx, eax
add esp, 0x18
cmp ebx, esi
mov dword [ebp], ebx
je 0x420541
push esi
call dword [sym.imp.USER32.dll_GetDC]
cmp eax, esi
mov dword [ebp + 0x28], eax
jne 0x42025c
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x420541
cmp dword [ebp + 0x18], 1
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x24], esi
mov byte [ebp + 0x7f], 0
jne 0x4202cb
lea eax, [ebp - 0x30]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x4202b4
push 1
lea eax, [ebp + 0x63]
push eax
lea eax, [ebp + 0x1c]
push eax
push dword [ebp + 0x28]
lea esi, [ebp + 0x2c]
push dword [ebp - 0x24]
call fcn.0042076d
add esp, 0x14
push dword [ebp - 0x20]
mov dword [ebp + 0x48], eax
call edi
push dword [ebp - 0x24]
call edi
xor esi, esi
push 1
push ebx
call fcn.00438046
mov ebx, eax
cmp ebx, esi
pop ecx
pop ecx
mov dword [ebp], ebx
je 0x420541
push 8
lea eax, [ebp + 0x63]
push eax
lea eax, [ebp + 0x1c]
push eax
push dword [ebp + 0x28]
lea esi, [ebp + 0x2c]
push ebx
call fcn.0042076d
mov edi, eax
add esp, 0x14
test edi, edi
mov dword [ebp + 0x40], edi
je 0x4204d3
mov eax, dword [ebp + 0x74]
sub eax, dword [ebp + 0x6c]
push dword [ebp + 0x28]
inc eax
mov esi, eax
mov eax, dword [ebp + 0x78]
sub eax, dword [ebp + 0x70]
inc eax
mov ebx, eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
test eax, eax
mov dword [ebp + 0x30], eax
je 0x4204d3
push ebx
push esi
push dword [ebp + 0x28]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
test eax, eax
mov dword [ebp + 0x20], eax
je 0x4204d3
push eax
push dword [ebp + 0x30]
call dword [sym.imp.GDI32.dll_SelectObject]
test eax, eax
mov dword [ebp + 0x24], eax
je 0x4204d3
push 0xcc0020
push dword [ebp + 0x70]
push dword [ebp + 0x6c]
push dword [ebp + 0x28]
push ebx
push esi
push 0
push 0
push dword [ebp + 0x30]
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x4204d3
push 8
lea eax, [ebp + 0x77]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp + 0x30]
lea esi, [ebp + 0x4c]
push dword [ebp + 0x20]
call fcn.0042076d
add esp, 0x14
test eax, eax
mov dword [ebp + 0x44], eax
je 0x4204d3
mov ebx, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x4c]
imul ebx, dword [ebp + 0x1c]
imul esi, dword [ebp + 8]
cmp byte [ebp + 0x63], 0
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x18], esi
jne 0x4203ad
cmp byte [ebp + 0x77], 0
je 0x4203dc
cmp dword [ebp + 0x38], 0xffffffff
mov eax, 0xf8f8f8
je 0x4203bb
and dword [ebp + 0x38], eax
xor ecx, ecx
test esi, esi
jle 0x4203ce
mov edx, dword [ebp + 0x44]
lea edx, [edx + ecx*4]
and dword [edx], eax
inc ecx
cmp ecx, esi
jl 0x4203c1
xor ecx, ecx
test ebx, ebx
jle 0x4203dc
and dword [edi + ecx*4], eax
inc ecx
cmp ecx, ebx
jl 0x4203d4
xor edx, edx
cmp ebx, edx
jle 0x4203f0
lea eax, [edi + 3]
mov ecx, ebx
mov byte [eax], 0
add eax, 4
dec ecx
jne 0x4203e7
cmp dword [ebp + 0x5c], 1
jge 0x42056b
cmp esi, edx
jle 0x42040f
mov eax, dword [ebp + 0x44]
add eax, 3
mov ecx, esi
mov byte [eax], 0
add eax, 4
dec ecx
jne 0x420406
cmp esi, edx
mov dword [ebp + 0x58], edx
jle 0x4206f3
mov dword [ebp + 0x74], edx
mov eax, dword [edi]
mov ecx, dword [ebp + 0x44]
mov edx, dword [ebp + 0x74]
cmp dword [edx + ecx], eax
je 0x42043f
mov ecx, dword [ebp + 0x48]
test ecx, ecx
je 0x420436
cmp dword [ecx], 0
jne 0x42043f
cmp eax, dword [ebp + 0x38]
jne 0x420556
mov eax, dword [ebp + 0x58]
cdq
idiv dword [ebp + 0x4c]
mov ecx, dword [ebp + 8]
sub ecx, eax
cmp dword [ebp + 0x1c], ecx
jg 0x420556
mov eax, dword [ebp + 0x4c]
sub eax, edx
cmp dword [ebp + 0x2c], eax
jg 0x420556
and dword [ebp + 0x50], 0
and dword [ebp + 0x34], 0
test ebx, ebx
mov byte [ebp + 0x7f], 1
jle 0x4204d3
mov edx, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x48]
shl edx, 2
mov byte [ebp + 0x7f], 1
mov eax, edi
mov dword [ebp + 0x78], esi
sub ebx, edi
mov ecx, dword [eax]
mov edi, dword [ebp + 0x44]
cmp dword [esi + edi], ecx
je 0x4204a8
cmp dword [ebp + 0x48], 0
je 0x42049f
cmp dword [ebx + eax], 0
jne 0x4204a8
cmp ecx, dword [ebp + 0x38]
jne 0x420549
inc dword [ebp + 0x50]
mov ecx, dword [ebp + 0x50]
cmp ecx, dword [ebp + 0x2c]
jge 0x4204b8
add esi, 4
jmp 0x4204c2
and dword [ebp + 0x50], 0
add dword [ebp + 0x78], edx
mov esi, dword [ebp + 0x78]
inc dword [ebp + 0x34]
mov ecx, dword [ebp + 0x34]
add eax, 4
cmp ecx, dword [ebp + 0x3c]
jl 0x420489
mov edi, dword [ebp + 0x40]
push dword [ebp + 0x28]
xor ebx, ebx
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
push dword [ebp]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
cmp dword [ebp + 0x30], ebx
je 0x420509
cmp dword [ebp + 0x24], ebx
je 0x420500
push dword [ebp + 0x24]
push dword [ebp + 0x30]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp + 0x30]
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp dword [ebp + 0x20], ebx
je 0x420513
push dword [ebp + 0x20]
call esi
cmp edi, ebx
mov esi, dword [sym.imp.MSVCR71.dll_free]
je 0x420521
push edi
call esi
pop ecx
cmp dword [ebp + 0x48], ebx
je 0x42052c
push dword [ebp + 0x48]
call esi
pop ecx
cmp dword [ebp + 0x44], ebx
je 0x420537
push dword [ebp + 0x44]
call esi
pop ecx
cmp byte [ebp + 0x7f], 0
jne 0x42070e
xor eax, eax
inc eax
jmp 0x420763
mov esi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x3c]
mov edi, dword [ebp + 0x40]
mov byte [ebp + 0x7f], 0
inc dword [ebp + 0x58]
add dword [ebp + 0x74], 4
cmp dword [ebp + 0x58], esi
jl 0x42041d
jmp 0x4206f3
cmp esi, edx
mov dword [ebp + 0x58], edx
jle 0x4206f3
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x58]
cdq
idiv dword [ebp + 0x4c]
mov ecx, dword [ebp + 8]
sub ecx, eax
cmp dword [ebp + 0x1c], ecx
jg 0x4206e3
mov eax, dword [ebp + 0x4c]
sub eax, edx
cmp dword [ebp + 0x2c], eax
jg 0x4206e3
and dword [ebp + 0x50], 0
and dword [ebp + 0x34], 0
test ebx, ebx
mov byte [ebp + 0x7f], 1
jle 0x4204d3
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x14], eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x48]
sub eax, edi
mov byte [ebp + 0x7f], 1
mov esi, edi
mov dword [ebp - 8], eax
mov eax, dword [esi]
mov dl, byte [esi + 1]
shr eax, 0x10
movzx eax, al
cmp dword [ebp + 0x5c], eax
jle 0x4205dd
mov byte [ebp + 0x77], 0
jmp 0x4205e5
mov cl, al
sub cl, byte [ebp + 0x5c]
mov byte [ebp + 0x77], cl
movzx edx, dl
cmp dword [ebp + 0x5c], edx
mov dword [ebp - 0xc], edx
jle 0x4205f6
mov byte [ebp + 0x7b], 0
jmp 0x4205fe
mov cl, dl
sub cl, byte [ebp + 0x5c]
mov byte [ebp + 0x7b], cl
movzx ecx, byte [esi]
cmp dword [ebp + 0x5c], ecx
jle 0x42060c
mov byte [ebp + 0x56], 0
jmp 0x420617
mov dl, cl
sub dl, byte [ebp + 0x5c]
mov byte [ebp + 0x56], dl
mov edx, dword [ebp - 0xc]
mov edi, 0xff
mov ebx, edi
sub ebx, eax
cmp dword [ebp + 0x5c], ebx
jle 0x420629
or al, 0xff
jmp 0x42062c
add al, byte [ebp + 0x5c]
sub edi, edx
cmp dword [ebp + 0x5c], edi
jle 0x420639
mov byte [ebp + 0x63], 0xff
jmp 0x42063f
add dl, byte [ebp + 0x5c]
mov byte [ebp + 0x63], dl
mov edx, 0xff
sub edx, ecx
cmp dword [ebp + 0x5c], edx
jle 0x420651
mov byte [ebp + 0x57], 0xff
jmp 0x420657
add cl, byte [ebp + 0x5c]
mov byte [ebp + 0x57], cl
mov ecx, dword [ebp + 0x44]
mov edx, dword [ebp + 0x14]
lea edi, [edx + ecx]
mov cl, byte [edi + 2]
cmp cl, byte [ebp + 0x77]
mov dl, byte [edi + 1]
mov bl, byte [edi]
jb 0x420685
cmp cl, al
ja 0x420685
cmp dl, byte [ebp + 0x7b]
jb 0x420685
cmp dl, byte [ebp + 0x63]
ja 0x420685
cmp bl, byte [ebp + 0x56]
jb 0x420685
cmp bl, byte [ebp + 0x57]
jbe 0x42069b
cmp dword [ebp + 0x48], 0
je 0x420694
mov eax, dword [ebp - 8]
cmp dword [esi + eax], 0
jne 0x42069b
mov eax, dword [esi]
cmp eax, dword [ebp + 0x38]
jne 0x4206d6
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x2c]
jge 0x4206ac
add dword [ebp + 0x14], 4
jmp 0x4206bf
mov eax, dword [ebp + 0x4c]
and dword [ebp + 0x50], 0
shl eax, 2
add dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x14], eax
inc dword [ebp + 0x34]
mov eax, dword [ebp + 0x34]
add esi, 4
cmp eax, dword [ebp + 0x3c]
jl 0x4205c7
jmp 0x4204d0
mov edi, dword [ebp + 0x40]
mov ebx, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x18]
mov byte [ebp + 0x7f], 0
inc dword [ebp + 0x58]
add dword [ebp + 0x10], 4
cmp dword [ebp + 0x58], esi
jl 0x420579
mov ecx, dword [0x45e2f0]
push 1
push 0
push 0xffffffffffffffff
push 0x454094
call fcn.0040161c
jmp 0x4204d3
cmp dword [ebp + 4], ebx
je 0x42072f
mov eax, dword [ebp + 0x58]
cdq
idiv dword [ebp + 0x4c]
push 0x18
mov eax, edx
sub eax, dword [ebp - 0x1c]
add eax, dword [ebp + 0x6c]
cdq
push edx
push eax
mov eax, dword [ebp + 4]
call fcn.004019da
cmp dword [ebp - 4], ebx
je 0x42074e
mov eax, dword [ebp + 0x58]
cdq
idiv dword [ebp + 0x4c]
push 0x18
sub eax, dword [ebp - 0x18]
add eax, dword [ebp + 0x70]
cdq
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004019da
mov ecx, dword [0x45e2f0]
push 1
push ebx
push 0xffffffffffffffff
push 0x452954
call fcn.0040161c
pop edi
pop esi
pop ebx
add ebp, 0x64
leave
ret 0x14