Function at 0x4907d0
Capabilities:
Capture screenshot
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4d4
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 8]
mov al, 9
cmp al, byte [ecx + 2]
push edi
sbb ecx, ecx
and ecx, dword [0x51ae2c]
mov dword [esp + 0x74], ecx
je 0x4907fc
call fcn.0041acb0
mov edx, dword [0x5165ec]
movzx edi, word [edx + 0xf0]
xor eax, eax
and edi, 3
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
cmp edi, 2
je 0x49087a
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ebx, eax
test ebx, ebx
je 0x49087a
push ebx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x49087a
test edi, edi
jne 0x490850
lea eax, [esp + 0x78]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x49087a
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
jmp 0x490872
xor eax, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x68]
push eax
push ebx
call dword [sym.imp.USER32.dll_ClientToScreen]
test eax, eax
je 0x49087a
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
add dword [esp + 0x44], ecx
add dword [esp + 0x48], edx
mov byte [esp + 0x17], 0
mov byte [esp + 0x1b], 0
mov byte [esp + 0x14], 0
mov byte [esp + 0x22], 0
mov byte [esp + 0x23], 0
mov byte [esp + 0x21], 0
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x30], 3
mov byte [esp + 0x1a], 0
mov byte [esp + 0x20], 1
mov dword [esp + 0x3c], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x2a], 0
mov edi, esi
movzx eax, word [edi]
cmp eax, 0x20
je 0x4908d3
cmp eax, 9
jne 0x4908d8
add edi, 2
jmp 0x4908c6
cmp word [edi], 0x2a
jne 0x490d0e
mov byte [esp + 0x17], 1
mov eax, dword [0x51e6d4]
push 2
push eax
add edi, 2
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x49092e
add edi, 4
cmp dword [ebp + 0x14], eax
jle 0x49090d
mov eax, dword [ebp + 0xc]
dec eax
jmp 0x49090f
xor eax, eax
add dword [ebp + 0x14], eax
cmp dword [ebp + 0x18], 0
jle 0x490924
mov eax, dword [ebp + 0x10]
dec eax
add dword [ebp + 0x18], eax
jmp 0x490cc4
xor eax, eax
add dword [ebp + 0x18], eax
jmp 0x490cc4
push 4
push 0x50d530
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490a5a
push 2
add edi, 8
push 0x50d4f0
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490973
mov dword [esp + 0x30], 1
jmp 0x490cc4
push 2
push 0x50d4f8
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490994
mov dword [esp + 0x30], 7
jmp 0x490cc4
push 2
push 0x50d528
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x4909b5
mov dword [esp + 0x30], 5
jmp 0x490cc4
push 2
push 0x50d510
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x4909d6
mov dword [esp + 0x30], 2
jmp 0x490cc4
push 2
push 0x50d518
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x4909f7
mov dword [esp + 0x30], 8
jmp 0x490cc4
push 2
push 0x50d500
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490a14
mov dword [esp + 0x30], eax
jmp 0x490cc4
push 2
push 0x50d508
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490a35
mov dword [esp + 0x30], 6
jmp 0x490cc4
push 2
push 0x50d520
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490c47
mov dword [esp + 0x30], 3
jmp 0x490cc4
push 0xa
push 0x50d700
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490a84
add edi, 0x14
mov byte [esp + 0x23], 1
jmp 0x490cc4
push 6
push 0x50d40c
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490aae
add edi, 0xc
mov byte [esp + 0x21], 1
jmp 0x490cc4
push 6
push 0x50d570
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
push 0xa
test eax, eax
jne 0x490c4e
push 0x50d3c4
add edi, 0xc
mov byte [esp + 0x22], 1
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490b02
add edi, 0x14
mov byte [esp + 0x18], 1
mov byte [esp + 0x20], al
jmp 0x490b53
push 4
push 0x50d3ec
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490b26
mov byte [esp + 0x18], 1
jmp 0x490b4b
push 4
push 0x4f1444
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490c47
mov byte [esp + 0x18], al
add edi, 8
mov byte [esp + 0x20], 1
cmp byte [esp + 0x14], 0
jne 0x490cc4
cmp dword [esp + 0x3c], 0
jne 0x490cc4
push 0x207
lea ecx, [esp + 0xd4]
push edi
push ecx
call fcn.004cb3f1
xor edx, edx
add esp, 0xc
mov ebx, 0x4ebd9c
lea eax, [esp + 0xd0]
mov word [esp + 0x4de], dx
call fcn.00409d30
test eax, eax
je 0x490ba3
xor ecx, ecx
mov word [eax], cx
cmp byte [esp + 0x18], 0
je 0x490bbf
lea esi, [esp + 0xd0]
call fcn.0041ac40
mov dword [esp + 0x3c], eax
jmp 0x490c40
push 0x207
lea edx, [esp + 0xd4]
push edi
push edx
call fcn.004cb3f1
xor eax, eax
add esp, 0xc
cmp word [esp + 0xd0], 0x3c
mov word [esp + 0x4de], ax
jne 0x490c47
mov ebx, 0x50d408
lea eax, [esp + 0xd2]
call fcn.00409d30
test eax, eax
je 0x490c47
xor ecx, ecx
push ecx
mov word [eax], cx
lea edx, [esp + 0xd4]
push ecx
sub eax, edx
sar eax, 1
push ecx
lea edi, [edi + eax*2 + 2]
lea eax, [esp + 0x6c]
push eax
push ecx
push ecx
lea ecx, [esp + 0xea]
push ecx
call fcn.004ad690
mov dword [esp + 0x58], eax
mov eax, 1
add esp, 0x1c
cmp dword [esp + 0x60], eax
jne 0x490c40
mov byte [esp + 0x14], al
cmp dword [esp + 0x3c], 0
jne 0x490cc4
mov byte [esp + 0x14], 1
jmp 0x490cc4
push 0x50d450
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490c73
add edi, 0x14
mov byte [esp + 0x2b], 1
jmp 0x490cc4
push 0xa
push 0x50d478
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490c9f
add edi, 0x14
mov byte [esp + 0x2b], 1
mov byte [esp + 0x2a], 1
jmp 0x490cc4
push 3
push 0x50d728
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x490cc4
add edi, 6
mov byte [esp + 0x1b], 1
test edi, edi
je 0x490d01
movzx eax, word [edi]
test ax, ax
je 0x490d01
movzx edx, ax
mov ecx, 0x4ebd9c
mov eax, 0x20
lea ecx, [ecx]
cmp dx, ax
je 0x490d91
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x490ce0
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x490cd0
xor esi, esi
cmp byte [esp + 0x14], 0
jne 0x490e93
test esi, esi
je 0x490d63
cmp byte [esp + 0x17], 0
jne 0x490d41
cmp byte [ebp + 0x24], 0
jne 0x490d3c
push 0x4f4a28
call fcn.004a4b10
add esp, 4
mov ecx, esi
call fcn.004ac420
mov byte [esp + 0x17], 0
test eax, eax
je 0x490d41
mov byte [esp + 0x17], 1
cmp byte [esp + 0x1b], 0
jne 0x490d6a
push 0x50d728
call fcn.004a4b10
add esp, 4
mov ecx, esi
call fcn.004ac420
test eax, eax
setne byte [esp + 0x1b]
cmp byte [esp + 0x1b], 0
je 0x490db7
mov eax, dword [ebp + 0x1c]
mov edx, eax
shr edx, 8
movzx ecx, dl
movzx edx, al
mov dword [esp + 0x2c], eax
shl edx, 8
shr eax, 0x10
or ecx, edx
movzx eax, al
shl ecx, 8
or ecx, eax
mov dword [ebp + 0x1c], ecx
jmp 0x490dd9
lea esi, [edi + 2]
mov edi, esi
movzx eax, word [edi]
cmp eax, 0x20
je 0x490da3
cmp eax, 9
jne 0x490da8
add edi, 2
jmp 0x490d96
cmp word [edi], 0x2a
je 0x4908e7
jmp 0x490d03
mov ecx, dword [ebp + 0x1c]
mov edx, ecx
shr edx, 8
movzx eax, dl
movzx edx, cl
shl edx, 8
shr ecx, 0x10
or eax, edx
movzx ecx, cl
shl eax, 8
or eax, ecx
mov dword [esp + 0x2c], eax
cmp byte [ebp + 0x24], 0
mov ecx, dword [0x51ae08]
mov dword [esp + 0x64], ecx
je 0x490ded
xor esi, esi
jmp 0x490dfd
mov eax, dword [ebp + 8]
mov dl, 1
cmp dl, byte [eax + 2]
sbb esi, esi
and esi, dword [0x51ae0c]
mov dword [esp + 0x70], esi
test ecx, ecx
je 0x490e0a
call fcn.0041acb0
test esi, esi
je 0x490e15
mov ecx, esi
call fcn.0041acb0
cmp byte [esp + 0x1a], 0
jne 0x490e30
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
add dword [ebp + 0xc], eax
add dword [ebp + 0x10], ecx
add dword [ebp + 0x14], eax
add dword [ebp + 0x18], ecx
mov ebx, dword [ebp + 0x20]
test ebx, ebx
jns 0x490e43
mov dword [ebp + 0x20], 0
mov ebx, dword [ebp + 0x20]
jmp 0x490e72
cmp ebx, 0xff
jle 0x490e57
mov dword [ebp + 0x20], 0xff
mov ebx, dword [ebp + 0x20]
jmp 0x490e5b
test ebx, ebx
jle 0x490e72
mov eax, dword [ebp + 0x1c]
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x16], al
shr eax, 0x10
mov byte [esp + 0x15], cl
mov byte [esp + 0x13], al
cmp byte [esp + 0x1a], 0
mov edi, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
je 0x490e85
call edi
jmp 0x490e8b
call dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x40], eax
test eax, eax
jne 0x490ef4
cmp byte [esp + 0x20], 0
je 0x490ea9
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x490ea9
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [0x5165ec]
test byte [edx + 0x100], 1
jne 0x490ed7
mov eax, dword [0x51b6d0]
push 1
push 0
push 0xffffffffffffffff
push 0x4ebe14
push eax
call fcn.004aefb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ecx, dword [ebp + 8]
push 0x4f5ac4
push 0
push 0x4ebe14
call fcn.0042dac0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp byte [esp + 0x17], 0
mov byte [esp + 0x19], 0
je 0x49197e
xor esi, esi
cmp byte [esp + 0x1a], 0
mov dword [esp + 0x54], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x60], esi
jne 0x490fd7
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov ecx, dword [esp + 0x40]
sub esi, dword [ebp + 0xc]
sub edi, dword [ebp + 0x10]
push ecx
inc esi
inc edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [esp + 0x58], eax
test eax, eax
je 0x4917d9
mov edx, dword [esp + 0x40]
push edi
push esi
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [esp + 0x54], eax
test eax, eax
je 0x4917d9
mov ecx, dword [esp + 0x58]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x68], eax
test eax, eax
je 0x4917d9
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x40]
push 0xcc0020
push edx
mov edx, dword [esp + 0x60]
push eax
push ecx
push edi
push esi
push 0
push 0
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x4917d9
push 8
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x30]
push edx
push eax
mov eax, dword [esp + 0x6c]
call fcn.00438da0
add esp, 0x14
mov dword [esp + 0x5c], eax
test eax, eax
je 0x4917d9
mov edi, eax
jmp 0x4910c3
push esi
call edi
mov edi, eax
mov dword [esp + 0x58], edi
cmp edi, esi
je 0x4917c1
cmp dword [ebp + 0xc], esi
jne 0x491019
cmp dword [ebp + 0x10], esi
jne 0x491019
cmp dword [ebp + 0x14], esi
mov esi, dword [ebp + 0x18]
jne 0x49101c
test esi, esi
jne 0x49101c
push 8
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x30]
push eax
push ecx
jmp 0x4910ab
mov esi, dword [ebp + 0x18]
cmp byte [ebp + 0x24], 0
je 0x49102b
mov ecx, 1
mov eax, ecx
jmp 0x491067
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x78]
push edx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x4917c1
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x49105d
test esi, esi
jne 0x49105d
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
dec eax
dec esi
sub eax, dword [ebp + 0xc]
inc eax
sub esi, dword [ebp + 0x10]
lea ecx, [esi + 1]
mov edx, dword [ebp + 0x10]
push 0xffffffffffffffff
push 0
push 0
push 0
push 0
push edx
mov edx, dword [ebp + 0xc]
push edx
push ecx
push eax
mov eax, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x7c]
push ecx
call fcn.0049b5e0
add esp, 0x2c
test al, al
je 0x4917c1
push 8
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x30]
push ecx
push edx
mov eax, edi
call fcn.00438da0
mov edi, eax
add esp, 0x14
mov dword [esp + 0x5c], edi
test edi, edi
je 0x4917c1
mov ecx, dword [esp + 0x24]
imul ecx, dword [esp + 0x34]
mov al, byte [esp + 0x14]
mov edx, edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x1c], ecx
test al, al
je 0x4910f2
xor esi, esi
test ecx, ecx
jle 0x4910f6
and dword [edi + esi*4], 0xf8f8f8f8
inc esi
cmp esi, ecx
jl 0x4910e4
jmp 0x4910f6
mov esi, dword [esp + 0x1c]
cmp byte [esp + 0x2b], 0
je 0x4911cb
xor esi, esi
test ecx, ecx
jle 0x491168
mov eax, dword [edi + esi*4]
mov ecx, eax
mov edx, eax
shr ecx, 8
shr edx, 0x10
movzx eax, al
movzx ecx, cl
movzx edx, dl
add ecx, edx
add ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp byte [esp + 0x2a], 0
je 0x491152
mov ecx, 0xff
sub ecx, ebx
cmp eax, ecx
sbb edx, edx
and edx, 0xff000001
add edx, 0xffffff
mov dword [edi + esi*4], edx
jmp 0x491161
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
mov dword [edi + esi*4], ecx
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x491107
mov eax, dword [esp + 0x2c]
mov edx, eax
shr edx, 8
movzx ecx, dl
mov edx, eax
shr edx, 0x10
movzx eax, al
movzx edx, dl
add ecx, edx
add ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp byte [esp + 0x2a], 0
je 0x4912df
mov ecx, 0xff
sub ecx, ebx
cmp eax, ecx
sbb eax, eax
and eax, 0xff000001
add eax, 0xffffff
mov dword [ebp + 0x20], 0
mov ebx, dword [ebp + 0x20]
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x14]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
cmp byte [ebp + 0x24], 0
jne 0x4912f4
cmp dword [esp + 0x30], 3
je 0x491242
mov edx, dword [esp + 0x1c]
lea eax, [edx*4]
push eax
call fcn.004c9c38
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
je 0x4917c5
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x78], edi
mov dword [esp + 0x84], edx
call fcn.0048e1c0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov al, byte [esp + 0x14]
cmp byte [esp + 0x23], 0
je 0x4914f8
cmp dword [esp + 0x30], 4
jle 0x491268
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x34], eax
mov al, byte [esp + 0x14]
mov dword [esp + 0x24], ecx
cmp ebx, 1
jge 0x491370
test al, al
je 0x49127d
and dword [esp + 0x2c], 0xf8f8f8f8
cmp dword [esp + 0x34], 0
mov dword [esp + 0x1c], 0
jle 0x4914a8
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
lea eax, [edx*4]
mov dword [esp + 0x4c], eax
xor eax, eax
mov byte [esp + 0x19], 1
test edx, edx
jle 0x4912cc
mov esi, dword [esp + 0x2c]
mov ecx, edi
mov ebx, dword [ecx]
and ebx, 0xffffff
cmp ebx, esi
je 0x49134b
inc eax
add ecx, 4
cmp eax, edx
jl 0x4912b4
mov ecx, dword [esp + 0x1c]
imul ecx, edx
mov edx, dword [esp + 0x38]
mov eax, dword [edx + ecx*4]
jmp 0x49149f
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x4911bf
mov edi, dword [edi]
and edi, 0xffffff
cmp byte [esp + 0x1b], 0
je 0x491307
mov eax, edi
jmp 0x49130e
mov ecx, edi
call fcn.0042f840
push eax
lea ecx, [esp + 0x94]
push str.0x_06X
push ecx
call fcn.004c9fb7
mov eax, dword [esp + 0x70]
add esp, 0xc
push 1
push 0
push 0xffffffffffffffff
lea edx, [esp + 0x9c]
push edx
push eax
call fcn.004aefb0
mov byte [esp + 0x19], 1
mov byte [esp + 0x22], 1
jmp 0x4917c5
mov eax, dword [esp + 0x1c]
add edi, dword [esp + 0x4c]
inc eax
mov byte [esp + 0x19], 0
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x34]
jge 0x4914a8
mov edx, dword [esp + 0x24]
jmp 0x4912a3
mov cl, byte [esp + 0x16]
mov dl, byte [esp + 0x15]
test al, al
je 0x491387
and cl, 0xf8
and dl, 0xf8
and byte [esp + 0x13], 0xf8
movzx edi, cl
cmp ebx, edi
jle 0x491395
mov byte [esp + 0x18], 0
jmp 0x49139d
mov al, cl
sub al, bl
mov byte [esp + 0x18], al
movzx eax, dl
cmp ebx, eax
jle 0x4913ab
mov byte [esp + 0x17], 0
jmp 0x4913b3
mov al, dl
sub al, bl
mov byte [esp + 0x17], al
mov al, byte [esp + 0x13]
movzx esi, al
cmp ebx, esi
jle 0x4913c5
mov byte [esp + 0x14], 0
jmp 0x4913cb
sub al, bl
mov byte [esp + 0x14], al
mov eax, 0xff
sub eax, edi
cmp ebx, eax
jle 0x4913dd
mov byte [esp + 0x16], 0xff
jmp 0x4913e4
lea eax, [ecx + ebx]
mov byte [esp + 0x16], al
movzx eax, dl
mov ecx, 0xff
sub ecx, eax
cmp ebx, ecx
jle 0x4913f9
mov byte [esp + 0x15], 0xff
jmp 0x491400
lea eax, [edx + ebx]
mov byte [esp + 0x15], al
mov edx, 0xff
sub edx, esi
cmp ebx, edx
jle 0x491412
mov byte [esp + 0x13], 0xff
jmp 0x49141a
add bl, byte [esp + 0x13]
mov byte [esp + 0x13], bl
cmp dword [esp + 0x34], 0
mov dword [esp + 0x1c], 0
jle 0x4914a8
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
lea ecx, [eax*4]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x2c], edx
xor edi, edi
mov byte [esp + 0x19], 1
cmp dword [esp + 0x24], edi
jle 0x49148f
mov esi, dword [esp + 0x2c]
mov eax, dword [esi]
mov ecx, eax
mov edx, eax
shr ecx, 0x10
shr edx, 8
cmp cl, byte [esp + 0x18]
jb 0x491485
cmp cl, byte [esp + 0x16]
ja 0x491485
cmp dl, byte [esp + 0x17]
jb 0x491485
cmp dl, byte [esp + 0x15]
ja 0x491485
cmp al, byte [esp + 0x14]
jb 0x491485
cmp al, byte [esp + 0x13]
jbe 0x4914d6
inc edi
add esi, 4
cmp edi, dword [esp + 0x24]
jl 0x491455
mov edx, dword [esp + 0x1c]
imul edx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + edx*4]
and eax, 0xffffff
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x1c]
imul esi, dword [esp + 0x24]
cmp dword [esp + 0x30], 4
jle 0x491341
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], eax
mov byte [esp + 0x22], 1
jmp 0x4917c5
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x2c], ecx
inc eax
mov byte [esp + 0x19], 0
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x34]
jl 0x491444
jmp 0x4914a8
cmp byte [esp + 0x21], 0
je 0x491677
cmp ebx, 1
jge 0x491540
test al, al
mov eax, dword [esp + 0x2c]
je 0x491515
and eax, 0xf8f8f8f8
xor esi, esi
test ecx, ecx
jle 0x491341
nop
mov edi, dword [edx + esi*4]
and edi, 0xffffff
cmp edi, eax
jne 0x49165c
inc esi
cmp esi, ecx
jl 0x491520
mov byte [esp + 0x22], 1
jmp 0x4917c5
test al, al
je 0x491552
mov al, 0xf8
and byte [esp + 0x16], al
and byte [esp + 0x15], al
and byte [esp + 0x13], al
mov dl, byte [esp + 0x16]
movzx edi, dl
cmp ebx, edi
jle 0x491561
xor dl, dl
jmp 0x491563
sub dl, bl
movzx eax, byte [esp + 0x15]
mov byte [esp + 0x18], dl
mov dword [esp + 0x4c], eax
cmp ebx, eax
jle 0x49157b
mov byte [esp + 0x17], 0
jmp 0x491585
mov al, byte [esp + 0x15]
sub al, bl
mov byte [esp + 0x17], al
movzx esi, byte [esp + 0x13]
cmp ebx, esi
jle 0x491595
mov byte [esp + 0x14], 0
jmp 0x49159f
mov al, byte [esp + 0x13]
sub al, bl
mov byte [esp + 0x14], al
mov eax, 0xff
sub eax, edi
cmp ebx, eax
jle 0x4915b1
mov byte [esp + 0x16], 0xff
jmp 0x4915bf
mov ecx, dword [esp + 0x1c]
mov al, bl
add al, byte [esp + 0x16]
mov byte [esp + 0x16], al
mov eax, 0xff
sub eax, dword [esp + 0x4c]
cmp ebx, eax
jle 0x4915d3
mov byte [esp + 0x15], 0xff
jmp 0x4915e1
mov ecx, dword [esp + 0x1c]
mov al, bl
add al, byte [esp + 0x15]
mov byte [esp + 0x15], al
mov eax, 0xff
sub eax, esi
cmp ebx, eax
jle 0x4915f3
mov byte [esp + 0x13], 0xff
jmp 0x4915fb
add bl, byte [esp + 0x13]
mov byte [esp + 0x13], bl
xor esi, esi
test ecx, ecx
jle 0x491341
jmp 0x491614
mov dl, byte [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + esi*4]
mov ecx, eax
mov ebx, eax
shr ecx, 0x10
shr ebx, 8
cmp cl, dl
jb 0x491658
cmp cl, byte [esp + 0x16]
ja 0x491658
cmp bl, byte [esp + 0x17]
jb 0x491658
cmp bl, byte [esp + 0x15]
ja 0x491658
cmp al, byte [esp + 0x14]
jb 0x491658
cmp al, byte [esp + 0x13]
ja 0x491658
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x491610
mov byte [esp + 0x22], 1
jmp 0x4917c5
mov edx, dword [esp + 0x38]
mov eax, dword [edx + esi*4]
and eax, 0xffffff
mov dword [esp + 0x50], eax
mov byte [esp + 0x19], 1
mov byte [esp + 0x22], 1
jmp 0x4917c5
cmp ebx, 1
jge 0x4916b3
test al, al
mov eax, dword [esp + 0x2c]
je 0x491689
and eax, 0xf8f8f8f8
xor esi, esi
test ecx, ecx
jle 0x491341
mov edi, dword [edx + esi*4]
and edi, 0xffffff
cmp edi, eax
je 0x49133c
inc esi
cmp esi, ecx
jl 0x491693
mov byte [esp + 0x22], 1
jmp 0x4917c5
test al, al
je 0x4916c5
mov al, 0xf8
and byte [esp + 0x16], al
and byte [esp + 0x15], al
and byte [esp + 0x13], al
mov dl, byte [esp + 0x16]
movzx edi, dl
cmp ebx, edi
jle 0x4916d4
xor dl, dl
jmp 0x4916d6
sub dl, bl
movzx eax, byte [esp + 0x15]
mov byte [esp + 0x18], dl
mov dword [esp + 0x4c], eax
cmp ebx, eax
jle 0x4916ee
mov byte [esp + 0x17], 0
jmp 0x4916f8
mov al, byte [esp + 0x15]
sub al, bl
mov byte [esp + 0x17], al
movzx esi, byte [esp + 0x13]
cmp ebx, esi
jle 0x491708
mov byte [esp + 0x14], 0
jmp 0x491712
mov al, byte [esp + 0x13]
sub al, bl
mov byte [esp + 0x14], al
mov eax, 0xff
sub eax, edi
cmp ebx, eax
jle 0x491724
mov byte [esp + 0x16], 0xff
jmp 0x491732
mov ecx, dword [esp + 0x1c]
mov al, bl
add al, byte [esp + 0x16]
mov byte [esp + 0x16], al
mov eax, 0xff
sub eax, dword [esp + 0x4c]
cmp ebx, eax
jle 0x491746
mov byte [esp + 0x15], 0xff
jmp 0x491754
mov ecx, dword [esp + 0x1c]
mov al, bl
add al, byte [esp + 0x15]
mov byte [esp + 0x15], al
mov eax, 0xff
sub eax, esi
cmp ebx, eax
jle 0x491766
mov byte [esp + 0x13], 0xff
jmp 0x49176e
add bl, byte [esp + 0x13]
mov byte [esp + 0x13], bl
xor esi, esi
test ecx, ecx
jle 0x491341
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + esi*4]
mov ecx, eax
mov ebx, eax
shr ecx, 0x10
shr ebx, 8
cmp cl, dl
jb 0x4917b3
cmp cl, byte [esp + 0x16]
ja 0x4917af
cmp bl, byte [esp + 0x17]
jb 0x4917af
cmp bl, byte [esp + 0x15]
ja 0x4917af
cmp al, byte [esp + 0x14]
jb 0x4917af
cmp al, byte [esp + 0x13]
jbe 0x49133c
mov dl, byte [esp + 0x18]
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x491778
mov byte [esp + 0x22], 1
jmp 0x4917c5
mov esi, dword [esp + 0x1c]
cmp byte [esp + 0x1a], 0
je 0x4917dd
mov edx, dword [esp + 0x40]
push edx
call dword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x4917ea
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edi, dword [esp + 0x58]
test edi, edi
je 0x491809
mov eax, dword [esp + 0x68]
test eax, eax
je 0x491802
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp byte [esp + 0x20], 0
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
je 0x491821
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x491821
push eax
call edi
mov eax, dword [esp + 0x54]
test eax, eax
je 0x49182c
push eax
call edi
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x49183d
push eax
call fcn.004ca991
add esp, 4
mov eax, dword [esp + 0x60]
test eax, eax
je 0x49184e
push eax
call fcn.004ca991
add esp, 4
cmp byte [esp + 0x22], 0
jne 0x491873
mov eax, dword [0x51b6d0]
push 0x18
push 0
push 2
call fcn.00401590
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp byte [ebp + 0x24], 0
jne 0x491951
cmp byte [esp + 0x19], 0
je 0x49195d
cmp dword [esp + 0x30], 3
mov edi, dword [esp + 0x24]
je 0x4918a4
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov eax, esi
call fcn.0048d8a0
mov esi, eax
mov ebx, dword [esp + 0x50]
mov eax, esi
cdq
idiv edi
cmp byte [esp + 0x1a], 0
je 0x4918bf
mov ecx, dword [ebp + 0x10]
add edx, dword [ebp + 0xc]
lea esi, [eax + ecx]
jmp 0x4918cf
sub edx, dword [esp + 0x44]
sub eax, dword [esp + 0x48]
add edx, dword [ebp + 0xc]
add eax, dword [ebp + 0x10]
mov esi, eax
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x4918e5
mov eax, edx
cdq
push 0x18
push edx
push eax
mov eax, ecx
call fcn.00401590
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x4918fb
mov eax, esi
cdq
push 0x18
push edx
push eax
mov eax, ecx
call fcn.00401590
mov esi, dword [esp + 0x74]
test esi, esi
je 0x491951
cmp ebx, 0xffffffff
je 0x491951
cmp byte [esp + 0x1b], 0
je 0x491913
mov eax, ebx
jmp 0x49191a
mov ecx, ebx
call fcn.0042f840
push eax
lea edx, [esp + 0x94]
push str.0x_06X
push edx
call fcn.004c9fb7
add esp, 0xc
push 1
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x9c]
push eax
push esi
call fcn.004aefb0
test eax, eax
jne 0x491951
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp byte [esp + 0x19], 0
mov eax, 0x4e6a28
jne 0x491962
mov eax, 0x4eb75c
mov ecx, dword [0x51b6d0]
push 1
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.004aefb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov edx, dword [ebp + 0xc]
cmp edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
setg byte [esp + 0x23]
cmp eax, dword [ebp + 0x18]
setg byte [esp + 0x21]
test ebx, ebx
jle 0x491a40
mov cl, byte [esp + 0x16]
movzx esi, cl
cmp ebx, esi
jle 0x4919ae
mov byte [esp + 0x18], 0
jmp 0x4919b6
mov al, cl
sub al, bl
mov byte [esp + 0x18], al
mov dl, byte [esp + 0x15]
movzx eax, dl
cmp ebx, eax
jle 0x4919c8
mov byte [esp + 0x17], 0
jmp 0x4919d0
mov al, dl
sub al, bl
mov byte [esp + 0x17], al
movzx edi, byte [esp + 0x13]
cmp ebx, edi
jle 0x4919e0
mov byte [esp + 0x14], 0
jmp 0x4919ea
mov al, byte [esp + 0x13]
sub al, bl
mov byte [esp + 0x14], al
mov eax, 0xff
sub eax, esi
cmp ebx, eax
jle 0x4919fc
mov byte [esp + 0x16], 0xff
jmp 0x491a03
lea eax, [ecx + ebx]
mov byte [esp + 0x16], al
movzx eax, dl
mov ecx, 0xff
sub ecx, eax
cmp ebx, ecx
jle 0x491a18
mov byte [esp + 0x15], 0xff
jmp 0x491a1f
lea eax, [edx + ebx]
mov byte [esp + 0x15], al
mov ecx, dword [ebp + 0x18]
mov edx, 0xff
sub edx, edi
cmp ebx, edx
jle 0x491a34
mov byte [esp + 0x13], 0xff
jmp 0x491a43
mov al, bl
add al, byte [esp + 0x13]
mov byte [esp + 0x13], al
jmp 0x491a43
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x74]
mov al, byte [esp + 0x23]
mov edi, edi
test al, al
je 0x491a5e
xor eax, eax
cmp esi, dword [ebp + 0x14]
setge al
jmp 0x491a66
xor eax, eax
cmp esi, dword [ebp + 0x14]
setle al
test eax, eax
je 0x491aac
mov edi, dword [ebp + 0x10]
lea ecx, [ecx]
xor eax, eax
cmp byte [esp + 0x21], al
je 0x491a7f
cmp edi, ecx
setge al
jmp 0x491a84
cmp edi, ecx
setle al
test eax, eax
je 0x491b2d
mov eax, dword [esp + 0x40]
push edi
push esi
push eax
call dword [sym.imp.GDI32.dll_GetPixel]
cmp ebx, 1
jge 0x491ae4
cmp eax, dword [ebp + 0x1c]
jne 0x491b18
mov byte [esp + 0x19], 1
mov eax, dword [esp + 0x40]
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp byte [esp + 0x19], 0
jne 0x491b41
mov ecx, dword [0x51b6d0]
push 1
push 0
push 0xffffffffffffffff
push 0x4eb75c
push ecx
call fcn.004aefb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ecx, eax
mov edx, eax
shr edx, 0x10
shr ecx, 8
mov byte [esp + 0x22], dl
cmp al, byte [esp + 0x18]
jb 0x491b18
cmp al, byte [esp + 0x16]
ja 0x491b18
cmp cl, byte [esp + 0x17]
jb 0x491b18
cmp cl, byte [esp + 0x15]
ja 0x491b18
mov al, dl
cmp al, byte [esp + 0x14]
jb 0x491b18
cmp al, byte [esp + 0x13]
jbe 0x491aa7
mov ecx, dword [ebp + 0x18]
xor eax, eax
cmp byte [esp + 0x21], al
sete al
lea edi, [edi + eax*2 - 1]
jmp 0x491a70
mov al, byte [esp + 0x23]
xor edx, edx
test al, al
sete dl
lea esi, [esi + edx*2 - 1]
jmp 0x491a50
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x491b5b
mov eax, esi
sub eax, dword [esp + 0x44]
push 0x18
cdq
push edx
push eax
mov eax, ecx
call fcn.00401590
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x491b75
mov eax, edi
sub eax, dword [esp + 0x48]
push 0x18
cdq
push edx
push eax
mov eax, ecx
call fcn.00401590
mov edx, dword [0x51b6d0]
push 1
push 0
push 0xffffffffffffffff
push 0x4e6a28
push edx
call fcn.004aefb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20