void place_finder(unsigned char grid[], int size, int x, int y) {
  int xp, yp;
  int finder[] = {1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1,
                  1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0,
                  1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1};
  for (xp = 0; xp < 7; xp++) {
    for (yp = 0; yp < 7; yp++) {
      if (finder[xp + (7 * yp)] == 1) {
        grid[((yp + y) * size) + (xp + x)] = 0x11;
      } else {
        grid[((yp + y) * size) + (xp + x)] = 0x10;
      }
    }
  }
}


x86 assembly (clang, -O0):
<place_finder>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
lea    -0xe0(%rbp),%rdi
lea    0xeca(%rip),%rsi
mov    $0xc4,%edx
call   1030 <memcpy@plt>
movl   $0x0,-0x18(%rbp)
cmpl   $0x7,-0x18(%rbp)
jge    11e0 <place_finder+0xd0>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x7,-0x1c(%rbp)
jge    11cd <place_finder+0xbd>
mov    -0x18(%rbp),%eax
imul   $0x7,-0x1c(%rbp),%ecx
add    %ecx,%eax
cltq
cmpl   $0x1,-0xe0(%rbp,%rax,4)
01
jne    119d <place_finder+0x8d>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    -0x14(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x18(%rbp),%edx
add    -0x10(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movb   $0x11,(%rax,%rcx,1)
jmp    11ba <place_finder+0xaa>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    -0x14(%rbp),%ecx
imul   -0xc(%rbp),%ecx
mov    -0x18(%rbp),%edx
add    -0x10(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movb   $0x10,(%rax,%rcx,1)
jmp    11bf <place_finder+0xaf>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1158 <place_finder+0x48>
jmp    11d2 <place_finder+0xc2>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1147 <place_finder+0x37>
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<place_finder>:
push   %r14
push   %rbx
movslq %ecx,%rax
movslq %esi,%rbx
movslq %edx,%rcx
mov    %rax,%r8
imul   %rbx,%r8
lea    (%r8,%rcx,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x1(%rax),%r9
imul   %rbx,%r9
lea    (%r9,%rcx,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x2(%rax),%r10
imul   %rbx,%r10
lea    (%r10,%rcx,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x3(%rax),%r11
imul   %rbx,%r11
lea    (%r11,%rcx,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x4(%rax),%r14
imul   %rbx,%r14
lea    (%r14,%rcx,1),%rsi
movb   $0x11,(%rdi,%rsi,1)
lea    0x5(%rax),%rsi
imul   %rbx,%rsi
lea    (%rsi,%rcx,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
add    $0x6,%rax
imul   %rbx,%rax
lea    (%rax,%rcx,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    (%rcx,%r8,1),%rdx
add    $0x1,%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x1(%rcx,%r9,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x1(%rcx,%r10,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x1(%rcx,%r11,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x1(%rcx,%r14,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x1(%rcx,%rsi,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x1(%rcx,%rax,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x2(%rcx,%r8,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x2(%rcx,%r9,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x2(%rcx,%r10,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x2(%rcx,%r11,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x2(%rcx,%r14,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x2(%rcx,%rsi,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x2(%rcx,%rax,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x3(%rcx,%r8,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x3(%rcx,%r9,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x3(%rcx,%r10,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x3(%rcx,%r11,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x3(%rcx,%r14,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x3(%rcx,%rsi,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x3(%rcx,%rax,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x4(%rcx,%r8,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x4(%rcx,%r9,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x4(%rcx,%r10,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x4(%rcx,%r11,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x4(%rcx,%r14,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x4(%rcx,%rsi,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x4(%rcx,%rax,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x5(%rcx,%r8,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x5(%rcx,%r9,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x5(%rcx,%r10,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x5(%rcx,%r11,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x5(%rcx,%r14,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x5(%rcx,%rsi,1),%rdx
movb   $0x10,(%rdi,%rdx,1)
lea    0x5(%rcx,%rax,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x6(%rcx,%r8,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x6(%rcx,%r9,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x6(%rcx,%r10,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x6(%rcx,%r11,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x6(%rcx,%r14,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x6(%rcx,%rsi,1),%rdx
movb   $0x11,(%rdi,%rdx,1)
lea    0x6(%rcx,%rax,1),%rax
movb   $0x11,(%rdi,%rax,1)
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
@__const.place_finder.finder = [49 x i32] [i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1]
define void @place_finder(i8* %0, i32 %1, i32 %2, i32 %3) {
%5 = alloca i8*
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca [49 x i32]
store i8* %0, i8** %5
store i32 %1, i32* %6
store i32 %2, i32* %7
store i32 %3, i32* %8
%12 = bitcast [49 x i32]* %11 to i8*
store i32 0, i32* %9
br label %13
13: ; preds = %60, %4
%14 = load i32, i32* %9
%15 = icmp slt i32 %14, 7
br i1 %15, label %16, label %63
16: ; preds = %13
store i32 0, i32* %10
br label %17
17: ; preds = %56, %16
%18 = load i32, i32* %10
%19 = icmp slt i32 %18, 7
br i1 %19, label %20, label %59
20: ; preds = %17
%21 = load i32, i32* %9
%22 = load i32, i32* %10
%23 = mul nsw i32 7, %22
%24 = add nsw i32 %21, %23
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds [49 x i32], [49 x i32]* %11, i64 0, i64 %25
%27 = load i32, i32* %26
%28 = icmp eq i32 %27, 1
br i1 %28, label %29, label %42
29: ; preds = %20
%30 = load i8*, i8** %5
%31 = load i32, i32* %10
%32 = load i32, i32* %8
%33 = add nsw i32 %31, %32
%34 = load i32, i32* %6
%35 = mul nsw i32 %33, %34
%36 = load i32, i32* %9
%37 = load i32, i32* %7
%38 = add nsw i32 %36, %37
%39 = add nsw i32 %35, %38
%40 = sext i32 %39 to i64
%41 = getelementptr inbounds i8, i8* %30, i64 %40
store i8 17, i8* %41
br label %55
42: ; preds = %20
%43 = load i8*, i8** %5
%44 = load i32, i32* %10
%45 = load i32, i32* %8
%46 = add nsw i32 %44, %45
%47 = load i32, i32* %6
%48 = mul nsw i32 %46, %47
%49 = load i32, i32* %9
%50 = load i32, i32* %7
%51 = add nsw i32 %49, %50
%52 = add nsw i32 %48, %51
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds i8, i8* %43, i64 %53
store i8 16, i8* %54
br label %55
55: ; preds = %42, %29
br label %56
56: ; preds = %55
%57 = load i32, i32* %10
%58 = add nsw i32 %57, 1
store i32 %58, i32* %10
br label %17
59: ; preds = %17
br label %60
60: ; preds = %59
%61 = load i32, i32* %9
%62 = add nsw i32 %61, 1
store i32 %62, i32* %9
br label %13
63: ; preds = %13
ret void
}

LLVM IR (-O2):
define void @place_finder(i8* nocapture writeonly %0, i32 %1, i32 %2, i32 %3) {
%5 = sext i32 %3 to i64
%6 = sext i32 %1 to i64
%7 = sext i32 %2 to i64
%8 = mul nsw i64 %5, %6
%9 = add nsw i64 %8, %7
%10 = getelementptr inbounds i8, i8* %0, i64 %9
store i8 17, i8* %10
%11 = add nsw i64 %5, 1
%12 = mul nsw i64 %11, %6
%13 = add nsw i64 %12, %7
%14 = getelementptr inbounds i8, i8* %0, i64 %13
store i8 17, i8* %14
%15 = add nsw i64 %5, 2
%16 = mul nsw i64 %15, %6
%17 = add nsw i64 %16, %7
%18 = getelementptr inbounds i8, i8* %0, i64 %17
store i8 17, i8* %18
%19 = add nsw i64 %5, 3
%20 = mul nsw i64 %19, %6
%21 = add nsw i64 %20, %7
%22 = getelementptr inbounds i8, i8* %0, i64 %21
store i8 17, i8* %22
%23 = add nsw i64 %5, 4
%24 = mul nsw i64 %23, %6
%25 = add nsw i64 %24, %7
%26 = getelementptr inbounds i8, i8* %0, i64 %25
store i8 17, i8* %26
%27 = add nsw i64 %5, 5
%28 = mul nsw i64 %27, %6
%29 = add nsw i64 %28, %7
%30 = getelementptr inbounds i8, i8* %0, i64 %29
store i8 17, i8* %30
%31 = add nsw i64 %5, 6
%32 = mul nsw i64 %31, %6
%33 = add nsw i64 %32, %7
%34 = getelementptr inbounds i8, i8* %0, i64 %33
store i8 17, i8* %34
%35 = add nsw i64 %7, 1
%36 = mul nsw i64 %5, %6
%37 = add nsw i64 %35, %36
%38 = getelementptr inbounds i8, i8* %0, i64 %37
store i8 17, i8* %38
%39 = add nsw i64 %5, 1
%40 = mul nsw i64 %39, %6
%41 = add nsw i64 %35, %40
%42 = getelementptr inbounds i8, i8* %0, i64 %41
store i8 16, i8* %42
%43 = add nsw i64 %5, 2
%44 = mul nsw i64 %43, %6
%45 = add nsw i64 %35, %44
%46 = getelementptr inbounds i8, i8* %0, i64 %45
store i8 16, i8* %46
%47 = add nsw i64 %5, 3
%48 = mul nsw i64 %47, %6
%49 = add nsw i64 %35, %48
%50 = getelementptr inbounds i8, i8* %0, i64 %49
store i8 16, i8* %50
%51 = add nsw i64 %5, 4
%52 = mul nsw i64 %51, %6
%53 = add nsw i64 %35, %52
%54 = getelementptr inbounds i8, i8* %0, i64 %53
store i8 16, i8* %54
%55 = add nsw i64 %5, 5
%56 = mul nsw i64 %55, %6
%57 = add nsw i64 %35, %56
%58 = getelementptr inbounds i8, i8* %0, i64 %57
store i8 16, i8* %58
%59 = add nsw i64 %5, 6
%60 = mul nsw i64 %59, %6
%61 = add nsw i64 %35, %60
%62 = getelementptr inbounds i8, i8* %0, i64 %61
store i8 17, i8* %62
%63 = add nsw i64 %7, 2
%64 = mul nsw i64 %5, %6
%65 = add nsw i64 %63, %64
%66 = getelementptr inbounds i8, i8* %0, i64 %65
store i8 17, i8* %66
%67 = add nsw i64 %5, 1
%68 = mul nsw i64 %67, %6
%69 = add nsw i64 %63, %68
%70 = getelementptr inbounds i8, i8* %0, i64 %69
store i8 16, i8* %70
%71 = add nsw i64 %5, 2
%72 = mul nsw i64 %71, %6
%73 = add nsw i64 %63, %72
%74 = getelementptr inbounds i8, i8* %0, i64 %73
store i8 17, i8* %74
%75 = add nsw i64 %5, 3
%76 = mul nsw i64 %75, %6
%77 = add nsw i64 %63, %76
%78 = getelementptr inbounds i8, i8* %0, i64 %77
store i8 17, i8* %78
%79 = add nsw i64 %5, 4
%80 = mul nsw i64 %79, %6
%81 = add nsw i64 %63, %80
%82 = getelementptr inbounds i8, i8* %0, i64 %81
store i8 17, i8* %82
%83 = add nsw i64 %5, 5
%84 = mul nsw i64 %83, %6
%85 = add nsw i64 %63, %84
%86 = getelementptr inbounds i8, i8* %0, i64 %85
store i8 16, i8* %86
%87 = add nsw i64 %5, 6
%88 = mul nsw i64 %87, %6
%89 = add nsw i64 %63, %88
%90 = getelementptr inbounds i8, i8* %0, i64 %89
store i8 17, i8* %90
%91 = add nsw i64 %7, 3
%92 = mul nsw i64 %5, %6
%93 = add nsw i64 %91, %92
%94 = getelementptr inbounds i8, i8* %0, i64 %93
store i8 17, i8* %94
%95 = add nsw i64 %5, 1
%96 = mul nsw i64 %95, %6
%97 = add nsw i64 %91, %96
%98 = getelementptr inbounds i8, i8* %0, i64 %97
store i8 16, i8* %98
%99 = add nsw i64 %5, 2
%100 = mul nsw i64 %99, %6
%101 = add nsw i64 %91, %100
%102 = getelementptr inbounds i8, i8* %0, i64 %101
store i8 17, i8* %102
%103 = add nsw i64 %5, 3
%104 = mul nsw i64 %103, %6
%105 = add nsw i64 %91, %104
%106 = getelementptr inbounds i8, i8* %0, i64 %105
store i8 17, i8* %106
%107 = add nsw i64 %5, 4
%108 = mul nsw i64 %107, %6
%109 = add nsw i64 %91, %108
%110 = getelementptr inbounds i8, i8* %0, i64 %109
store i8 17, i8* %110
%111 = add nsw i64 %5, 5
%112 = mul nsw i64 %111, %6
%113 = add nsw i64 %91, %112
%114 = getelementptr inbounds i8, i8* %0, i64 %113
store i8 16, i8* %114
%115 = add nsw i64 %5, 6
%116 = mul nsw i64 %115, %6
%117 = add nsw i64 %91, %116
%118 = getelementptr inbounds i8, i8* %0, i64 %117
store i8 17, i8* %118
%119 = add nsw i64 %7, 4
%120 = mul nsw i64 %5, %6
%121 = add nsw i64 %119, %120
%122 = getelementptr inbounds i8, i8* %0, i64 %121
store i8 17, i8* %122
%123 = add nsw i64 %5, 1
%124 = mul nsw i64 %123, %6
%125 = add nsw i64 %119, %124
%126 = getelementptr inbounds i8, i8* %0, i64 %125
store i8 16, i8* %126
%127 = add nsw i64 %5, 2
%128 = mul nsw i64 %127, %6
%129 = add nsw i64 %119, %128
%130 = getelementptr inbounds i8, i8* %0, i64 %129
store i8 17, i8* %130
%131 = add nsw i64 %5, 3
%132 = mul nsw i64 %131, %6
%133 = add nsw i64 %119, %132
%134 = getelementptr inbounds i8, i8* %0, i64 %133
store i8 17, i8* %134
%135 = add nsw i64 %5, 4
%136 = mul nsw i64 %135, %6
%137 = add nsw i64 %119, %136
%138 = getelementptr inbounds i8, i8* %0, i64 %137
store i8 17, i8* %138
%139 = add nsw i64 %5, 5
%140 = mul nsw i64 %139, %6
%141 = add nsw i64 %119, %140
%142 = getelementptr inbounds i8, i8* %0, i64 %141
store i8 16, i8* %142
%143 = add nsw i64 %5, 6
%144 = mul nsw i64 %143, %6
%145 = add nsw i64 %119, %144
%146 = getelementptr inbounds i8, i8* %0, i64 %145
store i8 17, i8* %146
%147 = add nsw i64 %7, 5
%148 = mul nsw i64 %5, %6
%149 = add nsw i64 %147, %148
%150 = getelementptr inbounds i8, i8* %0, i64 %149
store i8 17, i8* %150
%151 = add nsw i64 %5, 1
%152 = mul nsw i64 %151, %6
%153 = add nsw i64 %147, %152
%154 = getelementptr inbounds i8, i8* %0, i64 %153
store i8 16, i8* %154
%155 = add nsw i64 %5, 2
%156 = mul nsw i64 %155, %6
%157 = add nsw i64 %147, %156
%158 = getelementptr inbounds i8, i8* %0, i64 %157
store i8 16, i8* %158
%159 = add nsw i64 %5, 3
%160 = mul nsw i64 %159, %6
%161 = add nsw i64 %147, %160
%162 = getelementptr inbounds i8, i8* %0, i64 %161
store i8 16, i8* %162
%163 = add nsw i64 %5, 4
%164 = mul nsw i64 %163, %6
%165 = add nsw i64 %147, %164
%166 = getelementptr inbounds i8, i8* %0, i64 %165
store i8 16, i8* %166
%167 = add nsw i64 %5, 5
%168 = mul nsw i64 %167, %6
%169 = add nsw i64 %147, %168
%170 = getelementptr inbounds i8, i8* %0, i64 %169
store i8 16, i8* %170
%171 = add nsw i64 %5, 6
%172 = mul nsw i64 %171, %6
%173 = add nsw i64 %147, %172
%174 = getelementptr inbounds i8, i8* %0, i64 %173
store i8 17, i8* %174
%175 = add nsw i64 %7, 6
%176 = mul nsw i64 %5, %6
%177 = add nsw i64 %175, %176
%178 = getelementptr inbounds i8, i8* %0, i64 %177
store i8 17, i8* %178
%179 = add nsw i64 %5, 1
%180 = mul nsw i64 %179, %6
%181 = add nsw i64 %175, %180
%182 = getelementptr inbounds i8, i8* %0, i64 %181
store i8 17, i8* %182
%183 = add nsw i64 %5, 2
%184 = mul nsw i64 %183, %6
%185 = add nsw i64 %175, %184
%186 = getelementptr inbounds i8, i8* %0, i64 %185
store i8 17, i8* %186
%187 = add nsw i64 %5, 3
%188 = mul nsw i64 %187, %6
%189 = add nsw i64 %175, %188
%190 = getelementptr inbounds i8, i8* %0, i64 %189
store i8 17, i8* %190
%191 = add nsw i64 %5, 4
%192 = mul nsw i64 %191, %6
%193 = add nsw i64 %175, %192
%194 = getelementptr inbounds i8, i8* %0, i64 %193
store i8 17, i8* %194
%195 = add nsw i64 %5, 5
%196 = mul nsw i64 %195, %6
%197 = add nsw i64 %175, %196
%198 = getelementptr inbounds i8, i8* %0, i64 %197
store i8 17, i8* %198
%199 = add nsw i64 %5, 6
%200 = mul nsw i64 %199, %6
%201 = add nsw i64 %175, %200
%202 = getelementptr inbounds i8, i8* %0, i64 %201
store i8 17, i8* %202
ret void
}