Function at 0x412484
Capabilities:
Capture screenshot

Disassembly:
push ebp
lea ebp, [esp - 0x48]
sub esp, 0x10c
mov eax, dword [0x4705d0]
xor eax, ebp
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x54]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0x64]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 0x68]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x6c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp - 0x4c], eax
xor eax, eax
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x48], ebx
lea edi, [ebp - 0x44]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0xc4], ebx
lea edi, [ebp - 0xc0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov esi, dword [ebp + 0x50]
xor eax, eax
mov dword [ebp - 0x68], ebx
lea edi, [ebp - 0x64]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0xa8], ebx
lea edi, [ebp - 0xa4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x3f
stosd dword es:[edi], eax
lea eax, [ebp + 5]
push ebx
push eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 8], ebx
mov dword [ebp], ebx
mov dword [ebp - 0x78], 0x20
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp + 4], bl
call fcn.004464f0
mov eax, dword [ebp + 0x58]
add esp, 0xc
cmp dword [ebp + 0x7c], 1
mov dword [ebp - 0x14], eax
jne 0x41256a
mov dword [0x47600c], ebx
cmp esi, ebx
je 0x4130cf
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x50
call edi
cmp eax, 1
jle 0x4125b4
push 2
push 0x10
call fcn.0043e627
push 2
push 0x11
mov dword [ebp - 0x28], eax
call fcn.0043e627
push 1
push 0x11
mov edi, eax
call fcn.0043e627
cmp eax, edi
jle 0x4125b0
push 1
push 0x11
call fcn.0043e627
jmp 0x4125be
push 2
jmp 0x4125a7
push ebx
call edi
push 1
mov dword [ebp - 0x28], eax
call edi
push str..BMP
push esi
mov dword [ebp - 0x2c], eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x412620
push 0x2050
push ebx
push ebx
push ebx
push esi
push ebx
call dword [sym.imp.USER32.dll_LoadImageA]
mov edi, eax
mov dword [ebp - 0x20], edi
cmp edi, ebx
je 0x4130cf
lea eax, [ebp - 0x48]
push eax
push 0x18
push edi
call dword [sym.imp.GDI32.dll_GetObjectA]
push ebx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push edi
push eax
mov dword [ebp], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x1c], eax
push esi
jmp 0x412a26
cmp byte [esi], bl
je 0x41298d
cmp byte [esi + 3], 0x2c
je 0x412640
push 0x2a
push esi
call fcn.00445cc0
pop ecx
pop ecx
test eax, eax
je 0x41298d
push 0x2e
push esi
call fcn.00445cc0
pop ecx
pop ecx
test eax, eax
jne 0x41298d
push 0x5c
push esi
call fcn.00445cc0
pop ecx
pop ecx
test eax, eax
jne 0x41298d
push 1
push 0x20000
call fcn.004462a8
pop ecx
pop ecx
push esi
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov edi, 0xffff
cmp eax, edi
jle 0x41268a
mov eax, edi
jmp 0x412692
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push esi
push dword [ebp - 4]
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push 0x2a
push dword [ebp - 4]
call fcn.00445cc0
pop ecx
pop ecx
test eax, eax
je 0x412703
mov esi, dword [ebp - 4]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [eax + esi - 1], 0x2c
je 0x4126d1
cmp esi, ebx
je 0x4126d1
push 0x45b890
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, edi
jle 0x4126e2
mov dword [ebp - 0x18], edi
jmp 0x4126ed
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp - 0x18], eax
push 1
push 0x2a
push 4
lea eax, [ebp - 0x18]
push eax
push esi
call fcn.00445b30
add esp, 0x14
mov dword [ebp - 4], eax
push 1
push 0x40000
call fcn.004462a8
push 0x45b890
push dword [ebp - 4]
mov dword [ebp - 8], eax
call fcn.00406b01
inc eax
push eax
call fcn.0040fe98
add esp, 0x14
cmp eax, 0x40
jle 0x412731
push 0x40
pop eax
cmp eax, ebx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
jle 0x412966
xor edi, edi
cmp dword [ebp - 0x44], ebx
jle 0x412957
push ebx
push 1
push 0x1f
lea eax, [ebp + 4]
push eax
push dword [ebp - 0x10]
push 0x45b890
push dword [ebp - 4]
call fcn.004432d3
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov al, byte [ebp + 4]
cmp al, bl
je 0x4127a3
cmp al, 0x20
je 0x412789
cmp al, 9
je 0x412789
cmp al, 0xd
je 0x412789
cmp al, 0xa
jne 0x4127a3
lea eax, [ebp + 5]
push eax
call esi
inc eax
push eax
lea eax, [ebp + 5]
push eax
lea eax, [ebp + 4]
push eax
call fcn.00446570
add esp, 0xc
jmp 0x412772
lea eax, [ebp + 4]
push eax
call esi
jmp 0x4127c7
lea esi, [ebp + eax + 4]
mov cl, byte [esi]
cmp cl, 0x20
je 0x4127c5
cmp cl, 9
je 0x4127c5
cmp cl, 0xd
je 0x4127c5
cmp cl, 0xa
jne 0x4127cc
mov byte [esi], bl
dec eax
cmp eax, ebx
jg 0x4127ab
mov al, byte [ebp + 4]
mov cl, al
sub cl, 0x61
cmp cl, 5
ja 0x4127e1
movsx edx, al
sub edx, 0x57
jmp 0x412807
mov cl, al
sub cl, 0x41
cmp cl, 5
ja 0x4127f3
movsx edx, al
sub edx, 0x37
jmp 0x412807
mov cl, al
sub cl, 0x30
cmp cl, 9
ja 0x412805
movsx edx, al
sub edx, 0x30
jmp 0x412807
xor edx, edx
mov cl, byte [ebp + 5]
cmp cl, bl
je 0x412810
mov al, cl
cmp al, 0x61
jl 0x412833
mov al, cl
cmp cl, bl
jne 0x41281d
mov al, byte [ebp + 4]
cmp al, 0x66
jg 0x412833
cmp cl, bl
mov cl, byte [ebp + 5]
jne 0x41282b
mov cl, byte [ebp + 4]
movsx ecx, cl
sub ecx, 0x57
jmp 0x41288d
mov al, cl
cmp cl, bl
jne 0x41283c
mov al, byte [ebp + 4]
cmp al, 0x41
jl 0x41285f
mov al, cl
cmp cl, bl
jne 0x412849
mov al, byte [ebp + 4]
cmp al, 0x46
jg 0x41285f
cmp cl, bl
mov cl, byte [ebp + 5]
jne 0x412857
mov cl, byte [ebp + 4]
movsx ecx, cl
sub ecx, 0x37
jmp 0x41288d
mov al, cl
cmp cl, bl
jne 0x412868
mov al, byte [ebp + 4]
cmp al, 0x30
jl 0x41288b
mov al, cl
cmp cl, bl
jne 0x412875
mov al, byte [ebp + 4]
cmp al, 0x39
jg 0x41288b
cmp cl, bl
mov cl, byte [ebp + 5]
jne 0x412883
mov cl, byte [ebp + 4]
movsx ecx, cl
sub ecx, 0x30
jmp 0x41288d
xor ecx, ecx
mov al, byte [ebp + 6]
cmp byte [ebp + 5], bl
jne 0x412898
mov al, byte [ebp + 4]
cmp al, 0x61
jl 0x4128be
mov al, byte [ebp + 6]
cmp byte [ebp + 5], bl
jne 0x4128a7
mov al, byte [ebp + 4]
cmp al, 0x66
jg 0x4128be
mov al, byte [ebp + 6]
cmp byte [ebp + 5], bl
jne 0x4128b6
mov al, byte [ebp + 4]
movsx eax, al
sub eax, 0x57
jmp 0x412922
mov al, byte [ebp + 6]
cmp byte [ebp + 5], bl
jne 0x4128c9
mov al, byte [ebp + 4]
cmp al, 0x41
jl 0x4128ef
mov al, byte [ebp + 6]
cmp byte [ebp + 5], bl
jne 0x4128d8
mov al, byte [ebp + 4]
cmp al, 0x46
jg 0x4128ef
mov al, byte [ebp + 6]
cmp byte [ebp + 5], bl
jne 0x4128e7
mov al, byte [ebp + 4]
movsx eax, al
sub eax, 0x37
jmp 0x412922
mov al, byte [ebp + 6]
cmp byte [ebp + 5], bl
jne 0x4128fa
mov al, byte [ebp + 4]
cmp al, 0x30
jl 0x412920
mov al, byte [ebp + 6]
cmp byte [ebp + 5], bl
jne 0x412909
mov al, byte [ebp + 4]
cmp al, 0x39
jg 0x412920
mov al, byte [ebp + 6]
cmp byte [ebp + 5], bl
jne 0x412918
mov al, byte [ebp + 4]
movsx eax, al
sub eax, 0x30
jmp 0x412922
xor eax, eax
shl al, 4
shl cl, 4
movzx eax, al
shl eax, 8
movzx ecx, cl
or eax, ecx
shl dl, 4
shl eax, 8
movzx ecx, dl
mov edx, dword [ebp - 0xc]
or eax, ecx
inc dword [ebp - 0xc]
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
inc edi
cmp edi, dword [ebp - 0x44]
mov dword [ecx + edx*4], eax
jl 0x412753
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x40]
jl 0x412748
mov eax, dword [ebp + 0x58]
push 0xf
pop ecx
cmp eax, ecx
mov dword [ebp - 0x14], ecx
jl 0x412976
mov dword [ebp - 0x14], eax
cmp dword [ebp - 4], ebx
je 0x412a2d
push dword [ebp - 4]
call fcn.00445e06
pop ecx
jmp 0x412a2d
lea eax, [ebp - 0xc4]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push esi
push ebx
push ebx
push ebx
push 8
push ebx
call fcn.00410123
mov eax, dword [ebp - 0xbc]
sub eax, dword [ebp - 0xc4]
push ebx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xc0]
mov dword [ebp - 0x40], eax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [ebp - 0x40]
mov dword [ebp], eax
push dword [ebp - 0x44]
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push dword [ebp]
mov dword [ebp - 0x20], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xcc0020
push ebx
push ebx
push edi
push dword [ebp - 0x40]
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x44]
push ebx
push ebx
push dword [ebp]
call dword [sym.imp.GDI32.dll_BitBlt]
push ebx
push ebx
push ebx
push ebx
push 0x64
push ebx
push ebx
push ebx
push esi
push ebx
push ebx
push ebx
push 8
push dword [ebp]
call fcn.00410123
push edi
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebp - 0x44]
cmp eax, ebx
je 0x4130cf
cmp dword [ebp - 0x40], ebx
je 0x4130cf
cmp dword [ebp - 0x30], ebx
je 0x412a60
mov dword [ebp - 0xac], eax
push 4
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0x30]
call fcn.00445ea0
add esp, 0xc
cmp dword [ebp - 0x4c], ebx
je 0x412a82
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xb0], eax
push 4
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 0x4c]
call fcn.00445ea0
add esp, 0xc
mov eax, dword [ebp - 0x90]
cmp eax, ebx
je 0x412a8e
mov dword [eax], ebx
mov eax, dword [ebp - 0x74]
cmp eax, ebx
je 0x412a97
mov dword [eax], ebx
lea eax, [ebp - 0x68]
cmp dword [ebp - 0x70], ebx
je 0x412ab8
push 0x10
push dword [ebp - 0x70]
push eax
call fcn.00445ea0
add esp, 0xc
lea eax, [ebp - 0x68]
push eax
call fcn.0043df74
jmp 0x412ac7
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
push ebx
push ebx
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [ebp - 0x60]
cmp ecx, dword [ebp - 0x68]
jne 0x412ad5
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x64]
jne 0x412ae3
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x5c], eax
sub ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x44]
cmp ecx, edx
jl 0x4130ac
sub eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x40]
cmp eax, ecx
jl 0x4130ac
cmp dword [ebp - 8], ebx
jne 0x412b61
inc ecx
lea eax, [edx + 1]
imul eax, ecx
mov ecx, eax
shl ecx, 2
mov eax, 0x1000
cmp ecx, eax
jbe 0x412b1b
mov eax, ecx
push 1
push eax
call fcn.004462a8
pop ecx
xor edi, edi
cmp dword [ebp - 0x40], ebx
pop ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], ebx
jle 0x412b61
xor esi, esi
cmp dword [ebp - 0x44], ebx
jle 0x412b5b
push edi
push esi
push dword [ebp]
call dword [sym.imp.GDI32.dll_GetPixel]
mov edx, dword [ebp - 8]
mov ecx, edi
imul ecx, dword [ebp - 0x44]
add ecx, esi
inc dword [ebp - 0xc]
inc esi
cmp esi, dword [ebp - 0x44]
mov dword [edx + ecx*4], eax
jl 0x412b39
inc edi
cmp edi, dword [ebp - 0x40]
jl 0x412b32
push dword [ebp - 0x1c]
push dword [ebp]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x20]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp]
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp dword [ebp + 0x5c], ebx
mov dword [ebp - 0x30], ebx
jle 0x412baf
cmp dword [ebp + 0x5c], 0x64
je 0x412baf
push dword [ebp + 0x5c]
call fcn.004468d5
imul eax, dword [ebp - 0xc]
pop ecx
add eax, 0x32
push 0x64
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x44]
imul ecx, dword [ebp - 0x40]
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov edi, dword [ebp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
cmp edi, 0x80
je 0x412bca
cmp edi, 0x20
je 0x412bca
cmp edi, 0x40
jne 0x412be0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetPriorityClass]
push edi
mov dword [ebp - 0x78], eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebx
call esi
mov edi, eax
inc edi
push 1
imul edi, edi, 0x14
call esi
inc eax
imul eax, edi
mov ecx, 0x1000
cmp eax, ecx
mov dword [ebp - 0xb4], eax
jg 0x412c08
mov eax, ecx
xor esi, esi
inc esi
push esi
push eax
call fcn.004462a8
mov edi, eax
pop ecx
pop ecx
mov dword [ebp - 0x20], edi
cmp edi, ebx
je 0x4130cf
mov eax, dword [ebp + 0x78]
lea ecx, [ebp - 0x68]
push ecx
push eax
push edi
mov dword [ebp - 0x7c], eax
call fcn.00411069
test eax, eax
jne 0x412c67
cmp dword [ebp + 0x78], ebx
jne 0x412c4d
lea eax, [ebp - 0x68]
push eax
push esi
push edi
call fcn.00411069
cmp eax, esi
mov dword [ebp - 0x7c], esi
jge 0x412c67
cmp dword [ebp - 8], ebx
je 0x412c5b
push dword [ebp - 8]
call fcn.00445e06
pop ecx
push edi
call fcn.00445e06
pop ecx
jmp 0x4130cf
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 4], ebx
mov dword [ebp], ebx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp + 0x60]
je 0x412ca8
push ebx
push dword [ebp - 0x20]
lea eax, [ebp - 4]
push eax
lea eax, [ebp]
push eax
push dword [ebp - 4]
push dword [ebp]
push dword [ebp - 0x14]
push dword [ebp - 0x70]
push dword [ebp - 0x18]
call fcn.00411c69
test eax, eax
je 0x412eba
mov eax, dword [ebp]
mov ecx, dword [ebp - 0x44]
add ecx, eax
cmp ecx, dword [ebp - 0x60]
jle 0x412cc3
mov eax, dword [ebp - 0x68]
inc dword [ebp - 4]
mov dword [ebp], eax
jmp 0x412eb1
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 4]
add eax, ecx
cmp eax, dword [ebp - 0x5c]
jg 0x412eba
mov dword [ebp - 0x24], ebx
xor esi, esi
cmp esi, dword [ebp - 0x40]
jge 0x412eb1
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
xor edi, edi
add eax, ecx
mov dword [ebp - 0x10], eax
cmp edi, dword [ebp - 0x44]
jge 0x412eaa
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xb4]
add eax, esi
imul eax, dword [ebp - 0x28]
add eax, dword [ebp]
shr ecx, 2
add eax, edi
cmp ecx, eax
jge 0x412d15
mov eax, ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x60]
cmp eax, 0x100
je 0x412d3c
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 8]
imul ecx, esi
add ecx, edi
cmp dword [edx + ecx*4], eax
je 0x412e38
cmp dword [ebp - 0x14], ebx
jg 0x412da8
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x1c]
imul eax, esi
mov edx, dword [ebp - 8]
add eax, edi
cmp ecx, dword [edx + eax*4]
je 0x412e38
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x50]
jle 0x412d92
push esi
push edi
push dword [ebp - 4]
lea eax, [ebp - 0xa8]
push dword [ebp]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x44]
imul eax, esi
add eax, edi
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0x54], ecx
inc eax
cmp dword [ebp - 0x10], eax
jl 0x412e9c
inc edi
jns 0x412cef
jmp 0x412eaa
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
call fcn.00410016
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 8]
imul eax, esi
add eax, edi
lea edx, [ecx + eax*4]
movzx ecx, byte [edx]
cmp ecx, dword [ebp - 0x88]
jl 0x412d58
cmp ecx, dword [ebp - 0x8c]
jg 0x412d58
movzx ecx, byte [edx + 1]
cmp ecx, dword [ebp - 0x94]
jl 0x412d58
cmp ecx, dword [ebp - 0x98]
jg 0x412d58
movzx ecx, byte [edx + 2]
cmp ecx, dword [ebp - 0x84]
jl 0x412d58
cmp ecx, dword [ebp - 0x80]
jg 0x412d58
inc dword [ebp - 0x24]
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jl 0x412d9c
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x4c], 1
cmp eax, ebx
je 0x412e60
mov ecx, dword [ebp]
mov dword [eax], ecx
mov eax, dword [ebp - 0x74]
cmp eax, ebx
je 0x412e6c
mov ecx, dword [ebp - 4]
mov dword [eax], ecx
mov eax, dword [ebp - 0x24]
push esi
push edi
push dword [ebp - 4]
mov dword [ebp - 0x50], eax
push dword [ebp]
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x28], eax
jg 0x412ea7
mov esi, eax
jmp 0x412eaa
mov esi, dword [ebp - 0x2c]
inc dword [ebp]
cmp dword [ebp - 0x28], esi
jle 0x412eaa
mov esi, dword [ebp - 0x28]
inc esi
jns 0x412cd9
cmp dword [ebp - 0x4c], ebx
je 0x412c78
cmp dword [ebp + 0x74], 0x80
je 0x412ecf
cmp dword [ebp + 0x74], 0x20
je 0x412ecf
cmp dword [ebp + 0x74], 0x40
jne 0x412edf
push dword [ebp - 0x78]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
push dword [ebp - 0x20]
call fcn.00445e06
push dword [ebp - 8]
call fcn.00445e06
mov eax, dword [ebp - 0x30]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x24]
add eax, ecx
xor ecx, ecx
cmp eax, dword [ebp - 0xc]
setge cl
cmp byte [0x476258], 2
mov dword [ebp - 0x10], ecx
jb 0x4130a7
cmp dword [ebp + 0x7c], 1
je 0x412f2f
mov eax, dword [ebp - 0x50]
cmp eax, dword [0x47600c]
jle 0x4130a7
cmp eax, 1
jle 0x4130a7
push dword [ebp - 0x6c]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
call esi
mov ecx, eax
push 0x3f
inc ecx
pop eax
cmp ecx, eax
jg 0x412f4a
push dword [ebp - 0x6c]
call esi
inc eax
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpynA]
push eax
push dword [ebp - 0x6c]
lea eax, [ebp + 4]
push eax
call edi
push dword [ebp - 0x6c]
call esi
cmp eax, 0x3b
jle 0x412f71
push 4
push 0x45c8a4
lea eax, [ebp + 0x3f]
push eax
call edi
mov eax, 0x4597fe
cmp dword [ebp - 0x10], ebx
jne 0x412f80
mov eax, str.not
push dword [ebp - 0xc]
mov esi, dword [ebp - 0x50]
push esi
push eax
lea eax, [ebp + 4]
push eax
push str.______s___smatched___d_of__d_pixels_matched_
call fcn.0042036e
add esp, 0x14
cmp word [ebp - 0x36], 0x18
jae 0x412fa6
movzx eax, word [ebp - 0x36]
jmp 0x412fa9
push 0x20
pop eax
mov ecx, dword [ebp - 0x18]
shr ecx, 0x10
movzx ecx, cl
push ecx
mov ecx, dword [ebp - 0x18]
shr ecx, 8
movzx ecx, cl
push ecx
movzx ecx, byte [ebp - 0x18]
push ecx
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x40]
push str.____Image_parameters:__d_x__d___d_bit__first_pixel__02X_02X_02X
call fcn.0042036e
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push str.____Scanned___d___d_______d___d_
call fcn.0042036e
mov ecx, dword [ebp + 0x5c]
add esp, 0x30
cmp ecx, ebx
jne 0x412ff6
push 0x64
pop ecx
cmp dword [ebp - 0x7c], 1
mov eax, str.Slow_Scan__Pixel_by_Pixel_
je 0x413006
mov eax, str.Fast_Scan__Video_Memory_
push ecx
push dword [ebp - 0x14]
push eax
push str.____Match_Method:__s__RGB_Tolerance:__d__Required_Percentage:__d__
call fcn.0042036e
add esp, 0x10
cmp esi, 2
jl 0x41309c
push dword [ebp - 0xc]
push esi
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
push str.____Closest_match_at___d___d__which_was_good_thru_pixel__d_of__d___all_coordinates_are_0_based_
call fcn.0042036e
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xa0]
shr eax, 0x10
movzx eax, al
push eax
mov eax, dword [ebp - 0x54]
shr eax, 8
movzx eax, al
push eax
movzx eax, byte [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x9c]
push eax
shr edx, 0x10
movzx edx, dl
push ecx
push edx
mov edx, dword [ebp - 0x58]
shr edx, 8
movzx edx, dl
push edx
movzx edx, byte [ebp - 0x58]
push edx
mov edx, dword [ebp - 0xa4]
add eax, edx
push eax
mov eax, dword [ebp - 0xa8]
add ecx, eax
push ecx
push str.____Last_matching_pixel:_Screen___d___d__RGB__d___d___d__vs._Image___d___d__RGB__d___d___d_
call fcn.0042036e
add esp, 0x40
mov dword [0x47600c], esi
push str.__r_n
call fcn.0042036e
pop ecx
mov eax, dword [ebp - 0x10]
jmp 0x4130d1
cmp dword [ebp], ebx
je 0x4130cf
push dword [ebp - 0x1c]
push dword [ebp]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x20]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp]
call dword [sym.imp.GDI32.dll_DeleteDC]
xor eax, eax
mov ecx, dword [ebp + 0x44]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004464bf
add ebp, 0x48
leave
ret 0x30