// File: /workspace/github_c_makefile_star2_O0/Leeheng86[P]word2vec/distance.c
// Function: main
int main(int argc, char **argv) {
  FILE *f;
  char st1[max_size];
  char *bestw[N];
  char file_name[max_size], st[100][max_size];
  float dist, len, bestd[N], vec[max_size];
  long long words, size, a, b, c, d, cn, bi[100];
  char ch;
  float *M;
  char *vocab;
  if (argc < 2) {
    printf("Usage: ./distance <FILE>\nwhere FILE contains word projections in the BINARY FORMAT\n");
    return 0;
  }
  strcpy(file_name, argv[1]);
  f = fopen(file_name, "rb");
  if (f == NULL) {
    printf("Input file not found\n");
    return -1;
  }
  fscanf(f, "%lld", &words);
  fscanf(f, "%lld", &size);
  vocab = (char *)malloc((long long)words * max_w * sizeof(char));
  for (a = 0; a < N; a++) bestw[a] = (char *)malloc(max_size * sizeof(char));
  M = (float *)malloc((long long)words * (long long)size * sizeof(float));
  if (M == NULL) {
    printf("Cannot allocate memory: %lld MB    %lld  %lld\n", (long long)words * size * sizeof(float) / 1048576, words, size);
    return -1;
  }
  for (b = 0; b < words; b++) {
    a = 0;
    while (1) {
      vocab[b * max_w + a] = fgetc(f);
      if (feof(f) || (vocab[b * max_w + a] == ' ')) break;
      if ((a < max_w) && (vocab[b * max_w + a] != '\n')) a++;
    }
    vocab[b * max_w + a] = 0;
    for (a = 0; a < size; a++) fread(&M[a + b * size], sizeof(float), 1, f);
    len = 0;
    for (a = 0; a < size; a++) len += M[a + b * size] * M[a + b * size];
    len = sqrt(len);
    for (a = 0; a < size; a++) M[a + b * size] /= len;
  }
  fclose(f);
  while (1) {
    for (a = 0; a < N; a++) bestd[a] = 0;
    for (a = 0; a < N; a++) bestw[a][0] = 0;
    printf("Enter word or sentence (EXIT to break): ");
    a = 0;
    while (1) {
      st1[a] = fgetc(stdin);
      if ((st1[a] == '\n') || (a >= max_size - 1)) {
        st1[a] = 0;
        break;
      }
      a++;
    }
    if (!strcmp(st1, "EXIT")) break;
    cn = 0;
    b = 0;
    c = 0;
    while (1) {
      st[cn][b] = st1[c];
      b++;
      c++;
      st[cn][b] = 0;
      if (st1[c] == 0) break;
      if (st1[c] == ' ') {
        cn++;
        b = 0;
        c++;
      }
    }
    cn++;
    for (a = 0; a < cn; a++) {
      for (b = 0; b < words; b++) if (!strcmp(&vocab[b * max_w], st[a])) break;
      if (b == words) b = -1;
      bi[a] = b;
      printf("\nWord: %s  Position in vocabulary: %lld\n", st[a], bi[a]);
      if (b == -1) {
        printf("Out of dictionary word!\n");
        break;
      }
    }
    if (b == -1) continue;
    printf("\n                                              Word       Cosine distance\n------------------------------------------------------------------------\n");
    for (a = 0; a < size; a++) vec[a] = 0;
    for (b = 0; b < cn; b++) {
      if (bi[b] == -1) continue;
      for (a = 0; a < size; a++) vec[a] += M[a + bi[b] * size];
    }
    len = 0;
    for (a = 0; a < size; a++) len += vec[a] * vec[a];
    len = sqrt(len);
    for (a = 0; a < size; a++) vec[a] /= len;
    for (a = 0; a < N; a++) bestd[a] = -1;
    for (a = 0; a < N; a++) bestw[a][0] = 0;
    for (c = 0; c < words; c++) {
      a = 0;
      for (b = 0; b < cn; b++) if (bi[b] == c) a = 1;
      if (a == 1) continue;
      dist = 0;
      for (a = 0; a < size; a++) dist += vec[a] * M[a + c * size];
      for (a = 0; a < N; a++) {
        if (dist > bestd[a]) {
          for (d = N - 1; d > a; d--) {
            bestd[d] = bestd[d - 1];
            strcpy(bestw[d], bestw[d - 1]);
          }
          bestd[a] = dist;
          strcpy(bestw[a], &vocab[c * max_w]);
          break;
        }
      }
    }
    for (a = 0; a < N; a++) printf("%50s\t\t%f\n", bestw[a], bestd[a]);
  }
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x341b0, %rsp          # imm = 0x341B0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x2, -0x8(%rbp)
jge 0x1219
leaq 0xe02(%rip), %rdi       # 0x2008
movb $0x0, %al
callq 0x1030
movl $0x0, -0x4(%rbp)
jmp 0x1e17
leaq -0x1100(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x1040
leaq -0x1100(%rbp), %rdi
leaq 0xe21(%rip), %rsi       # 0x205c
callq 0x1060
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x1265
leaq 0xe0d(%rip), %rdi       # 0x205f
movb $0x0, %al
callq 0x1030
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1e17
movq -0x18(%rbp), %rdi
leaq 0xe05(%rip), %rsi       # 0x2075
leaq -0x33e38(%rbp), %rdx
movb $0x0, %al
callq 0x10d0
movq -0x18(%rbp), %rdi
leaq 0xdec(%rip), %rsi       # 0x2075
leaq -0x33e40(%rbp), %rdx
movb $0x0, %al
callq 0x10d0
imulq $0x32, -0x33e38(%rbp), %rdi
shlq $0x0, %rdi
callq 0x1070
movq %rax, -0x341a8(%rbp)
movq $0x0, -0x33e48(%rbp)
cmpq $0x28, -0x33e48(%rbp)
jge 0x12f4
movl $0x7d0, %edi            # imm = 0x7D0
callq 0x1070
movq %rax, %rcx
movq -0x33e48(%rbp), %rax
movq %rcx, -0x930(%rbp,%rax,8)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x12ba
movq -0x33e38(%rbp), %rdi
imulq -0x33e40(%rbp), %rdi
shlq $0x2, %rdi
callq 0x1070
movq %rax, -0x341a0(%rbp)
cmpq $0x0, -0x341a0(%rbp)
jne 0x135c
movq -0x33e38(%rbp), %rsi
imulq -0x33e40(%rbp), %rsi
shlq $0x2, %rsi
shrq $0x14, %rsi
movq -0x33e38(%rbp), %rdx
movq -0x33e40(%rbp), %rcx
leaq 0xd31(%rip), %rdi       # 0x207a
movb $0x0, %al
callq 0x1030
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1e17
movq $0x0, -0x33e50(%rbp)
movq -0x33e50(%rbp), %rax
cmpq -0x33e38(%rbp), %rax
jge 0x15ce
movq $0x0, -0x33e48(%rbp)
movq -0x18(%rbp), %rdi
callq 0x10b0
movb %al, %dl
movq -0x341a8(%rbp), %rax
imulq $0x32, -0x33e50(%rbp), %rcx
addq -0x33e48(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rdi
callq 0x10a0
cmpl $0x0, %eax
jne 0x13d7
movq -0x341a8(%rbp), %rax
imulq $0x32, -0x33e50(%rbp), %rcx
addq -0x33e48(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x20, %eax
jne 0x13d9
jmp 0x1419
cmpq $0x32, -0x33e48(%rbp)
jge 0x1414
movq -0x341a8(%rbp), %rax
imulq $0x32, -0x33e50(%rbp), %rcx
addq -0x33e48(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
je 0x1414
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x1386
movq -0x341a8(%rbp), %rax
imulq $0x32, -0x33e50(%rbp), %rcx
addq -0x33e48(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq $0x0, -0x33e48(%rbp)
movq -0x33e48(%rbp), %rax
cmpq -0x33e40(%rbp), %rax
jge 0x149c
movq -0x341a0(%rbp), %rdi
movq -0x33e48(%rbp), %rax
movq -0x33e50(%rbp), %rcx
imulq -0x33e40(%rbp), %rcx
addq %rcx, %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x18(%rbp), %rcx
movl $0x4, %esi
movl $0x1, %edx
callq 0x1090
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x143e
xorps %xmm0, %xmm0
movss %xmm0, -0x31e48(%rbp)
movq $0x0, -0x33e48(%rbp)
movq -0x33e48(%rbp), %rax
cmpq -0x33e40(%rbp), %rax
jge 0x153b
movq -0x341a0(%rbp), %rax
movq -0x33e48(%rbp), %rcx
movq -0x33e50(%rbp), %rdx
imulq -0x33e40(%rbp), %rdx
addq %rdx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x341a0(%rbp), %rax
movq -0x33e48(%rbp), %rcx
movq -0x33e50(%rbp), %rdx
imulq -0x33e40(%rbp), %rdx
addq %rdx, %rcx
movss (%rax,%rcx,4), %xmm2
movss -0x31e48(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x31e48(%rbp)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x14b2
movss -0x31e48(%rbp), %xmm0
callq 0x1e30
movss %xmm0, -0x31e48(%rbp)
movq $0x0, -0x33e48(%rbp)
movq -0x33e48(%rbp), %rax
cmpq -0x33e40(%rbp), %rax
jge 0x15b5
movss -0x31e48(%rbp), %xmm1
movq -0x341a0(%rbp), %rax
movq -0x33e48(%rbp), %rcx
movq -0x33e50(%rbp), %rdx
imulq -0x33e40(%rbp), %rdx
addq %rdx, %rcx
movss (%rax,%rcx,4), %xmm0
divss %xmm1, %xmm0
movss %xmm0, (%rax,%rcx,4)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x155b
jmp 0x15b7
movq -0x33e50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e50(%rbp)
jmp 0x1367
movq -0x18(%rbp), %rdi
callq 0x1050
movq $0x0, -0x33e48(%rbp)
cmpq $0x28, -0x33e48(%rbp)
jge 0x1613
movq -0x33e48(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, -0x31ef0(%rbp,%rax,4)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x15e2
movq $0x0, -0x33e48(%rbp)
cmpq $0x28, -0x33e48(%rbp)
jge 0x164e
movq -0x33e48(%rbp), %rax
movq -0x930(%rbp,%rax,8), %rax
movb $0x0, (%rax)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x161e
leaq 0xa54(%rip), %rdi       # 0x20a9
movb $0x0, %al
callq 0x1030
movq $0x0, -0x33e48(%rbp)
movq 0x2972(%rip), %rax      # 0x3fe0
movq (%rax), %rdi
callq 0x10b0
movb %al, %cl
movq -0x33e48(%rbp), %rax
movb %cl, -0x7f0(%rbp,%rax)
movq -0x33e48(%rbp), %rax
movsbl -0x7f0(%rbp,%rax), %eax
cmpl $0xa, %eax
je 0x16a7
cmpq $0x7cf, -0x33e48(%rbp) # imm = 0x7CF
jl 0x16b8
movq -0x33e48(%rbp), %rax
movb $0x0, -0x7f0(%rbp,%rax)
jmp 0x16cc
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x1667
leaq -0x7f0(%rbp), %rdi
leaq 0x9f8(%rip), %rsi       # 0x20d2
callq 0x1080
cmpl $0x0, %eax
jne 0x16e9
jmp 0x1e10
movq $0x0, -0x33e68(%rbp)
movq $0x0, -0x33e50(%rbp)
movq $0x0, -0x33e58(%rbp)
movq -0x33e58(%rbp), %rax
movb -0x7f0(%rbp,%rax), %dl
leaq -0x31e40(%rbp), %rax
imulq $0x7d0, -0x33e68(%rbp), %rcx # imm = 0x7D0
addq %rcx, %rax
movq -0x33e50(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x33e50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e50(%rbp)
movq -0x33e58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e58(%rbp)
leaq -0x31e40(%rbp), %rax
imulq $0x7d0, -0x33e68(%rbp), %rcx # imm = 0x7D0
addq %rcx, %rax
movq -0x33e50(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq -0x33e58(%rbp), %rax
movsbl -0x7f0(%rbp,%rax), %eax
cmpl $0x0, %eax
jne 0x1791
jmp 0x17d9
movq -0x33e58(%rbp), %rax
movsbl -0x7f0(%rbp,%rax), %eax
cmpl $0x20, %eax
jne 0x17d4
movq -0x33e68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e68(%rbp)
movq $0x0, -0x33e50(%rbp)
movq -0x33e58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e58(%rbp)
jmp 0x170a
movq -0x33e68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e68(%rbp)
movq $0x0, -0x33e48(%rbp)
movq -0x33e48(%rbp), %rax
cmpq -0x33e68(%rbp), %rax
jge 0x1904
movq $0x0, -0x33e50(%rbp)
movq -0x33e50(%rbp), %rax
cmpq -0x33e38(%rbp), %rax
jge 0x186e
movq -0x341a8(%rbp), %rdi
imulq $0x32, -0x33e50(%rbp), %rax
addq %rax, %rdi
leaq -0x31e40(%rbp), %rsi
imulq $0x7d0, -0x33e48(%rbp), %rax # imm = 0x7D0
addq %rax, %rsi
callq 0x1080
cmpl $0x0, %eax
jne 0x1858
jmp 0x186e
jmp 0x185a
movq -0x33e50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e50(%rbp)
jmp 0x1815
movq -0x33e50(%rbp), %rax
cmpq -0x33e38(%rbp), %rax
jne 0x1889
movq $-0x1, -0x33e50(%rbp)
movq -0x33e50(%rbp), %rcx
movq -0x33e48(%rbp), %rax
movq %rcx, -0x34190(%rbp,%rax,8)
leaq -0x31e40(%rbp), %rsi
imulq $0x7d0, -0x33e48(%rbp), %rax # imm = 0x7D0
addq %rax, %rsi
movq -0x33e48(%rbp), %rax
movq -0x34190(%rbp,%rax,8), %rdx
leaq 0x80d(%rip), %rdi       # 0x20d7
movb $0x0, %al
callq 0x1030
cmpq $-0x1, -0x33e50(%rbp)
jne 0x18eb
leaq 0x81e(%rip), %rdi       # 0x2100
movb $0x0, %al
callq 0x1030
jmp 0x1904
jmp 0x18ed
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x17f6
cmpq $-0x1, -0x33e50(%rbp)
jne 0x1913
jmp 0x15d7
leaq 0x7ff(%rip), %rdi       # 0x2119
movb $0x0, %al
callq 0x1030
movq $0x0, -0x33e48(%rbp)
movq -0x33e48(%rbp), %rax
cmpq -0x33e40(%rbp), %rax
jge 0x1963
movq -0x33e48(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, -0x33e30(%rbp,%rax,4)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x192c
movq $0x0, -0x33e50(%rbp)
movq -0x33e50(%rbp), %rax
cmpq -0x33e68(%rbp), %rax
jge 0x1a24
movq -0x33e50(%rbp), %rax
cmpq $-0x1, -0x34190(%rbp,%rax,8)
jne 0x1996
jmp 0x1a0d
movq $0x0, -0x33e48(%rbp)
movq -0x33e48(%rbp), %rax
cmpq -0x33e40(%rbp), %rax
jge 0x1a0b
movq -0x341a0(%rbp), %rax
movq -0x33e48(%rbp), %rcx
movq -0x33e50(%rbp), %rdx
movq -0x34190(%rbp,%rdx,8), %rdx
imulq -0x33e40(%rbp), %rdx
addq %rdx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x33e48(%rbp), %rax
addss -0x33e30(%rbp,%rax,4), %xmm0
movss %xmm0, -0x33e30(%rbp,%rax,4)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x19a1
jmp 0x1a0d
movq -0x33e50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e50(%rbp)
jmp 0x196e
xorps %xmm0, %xmm0
movss %xmm0, -0x31e48(%rbp)
movq $0x0, -0x33e48(%rbp)
movq -0x33e48(%rbp), %rax
cmpq -0x33e40(%rbp), %rax
jge 0x1a96
movq -0x33e48(%rbp), %rax
movss -0x33e30(%rbp,%rax,4), %xmm0
movq -0x33e48(%rbp), %rax
movss -0x33e30(%rbp,%rax,4), %xmm2
movss -0x31e48(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x31e48(%rbp)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x1a3a
movss -0x31e48(%rbp), %xmm0
callq 0x1e30
movss %xmm0, -0x31e48(%rbp)
movq $0x0, -0x33e48(%rbp)
movq -0x33e48(%rbp), %rax
cmpq -0x33e40(%rbp), %rax
jge 0x1aff
movss -0x31e48(%rbp), %xmm1
movq -0x33e48(%rbp), %rax
movss -0x33e30(%rbp,%rax,4), %xmm0
divss %xmm1, %xmm0
movss %xmm0, -0x33e30(%rbp,%rax,4)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x1ab6
movq $0x0, -0x33e48(%rbp)
cmpq $0x28, -0x33e48(%rbp)
jge 0x1b40
movq -0x33e48(%rbp), %rax
movss 0x4e1(%rip), %xmm0      # 0x2004
movss %xmm0, -0x31ef0(%rbp,%rax,4)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x1b0a
movq $0x0, -0x33e48(%rbp)
cmpq $0x28, -0x33e48(%rbp)
jge 0x1b7b
movq -0x33e48(%rbp), %rax
movq -0x930(%rbp,%rax,8), %rax
movb $0x0, (%rax)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x1b4b
movq $0x0, -0x33e58(%rbp)
movq -0x33e58(%rbp), %rax
cmpq -0x33e38(%rbp), %rax
jge 0x1db1
movq $0x0, -0x33e48(%rbp)
movq $0x0, -0x33e50(%rbp)
movq -0x33e50(%rbp), %rax
cmpq -0x33e68(%rbp), %rax
jge 0x1bf9
movq -0x33e50(%rbp), %rax
movq -0x34190(%rbp,%rax,8), %rax
cmpq -0x33e58(%rbp), %rax
jne 0x1be3
movq $0x1, -0x33e48(%rbp)
jmp 0x1be5
movq -0x33e50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e50(%rbp)
jmp 0x1bb0
cmpq $0x1, -0x33e48(%rbp)
jne 0x1c08
jmp 0x1d9a
xorps %xmm0, %xmm0
movss %xmm0, -0x31e44(%rbp)
movq $0x0, -0x33e48(%rbp)
movq -0x33e48(%rbp), %rax
cmpq -0x33e40(%rbp), %rax
jge 0x1c8f
movq -0x33e48(%rbp), %rax
movss -0x33e30(%rbp,%rax,4), %xmm0
movq -0x341a0(%rbp), %rax
movq -0x33e48(%rbp), %rcx
movq -0x33e58(%rbp), %rdx
imulq -0x33e40(%rbp), %rdx
addq %rdx, %rcx
movss (%rax,%rcx,4), %xmm2
movss -0x31e44(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x31e44(%rbp)
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x1c1e
movq $0x0, -0x33e48(%rbp)
cmpq $0x28, -0x33e48(%rbp)
jge 0x1d98
movss -0x31e44(%rbp), %xmm0
movq -0x33e48(%rbp), %rax
ucomiss -0x31ef0(%rbp,%rax,4), %xmm0
jbe 0x1d7f
movq $0x27, -0x33e60(%rbp)
movq -0x33e60(%rbp), %rax
cmpq -0x33e48(%rbp), %rax
jle 0x1d3f
movq -0x33e60(%rbp), %rax
subq $0x1, %rax
movss -0x31ef0(%rbp,%rax,4), %xmm0
movq -0x33e60(%rbp), %rax
movss %xmm0, -0x31ef0(%rbp,%rax,4)
movq -0x33e60(%rbp), %rax
movq -0x930(%rbp,%rax,8), %rdi
movq -0x33e60(%rbp), %rax
subq $0x1, %rax
movq -0x930(%rbp,%rax,8), %rsi
callq 0x1040
movq -0x33e60(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x33e60(%rbp)
jmp 0x1cd0
movss -0x31e44(%rbp), %xmm0
movq -0x33e48(%rbp), %rax
movss %xmm0, -0x31ef0(%rbp,%rax,4)
movq -0x33e48(%rbp), %rax
movq -0x930(%rbp,%rax,8), %rdi
movq -0x341a8(%rbp), %rsi
imulq $0x32, -0x33e58(%rbp), %rax
addq %rax, %rsi
callq 0x1040
jmp 0x1d98
jmp 0x1d81
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x1c9a
jmp 0x1d9a
movq -0x33e58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e58(%rbp)
jmp 0x1b86
movq $0x0, -0x33e48(%rbp)
cmpq $0x28, -0x33e48(%rbp)
jge 0x1e0b
movq -0x33e48(%rbp), %rax
movq -0x930(%rbp,%rax,8), %rsi
movq -0x33e48(%rbp), %rax
movss -0x31ef0(%rbp,%rax,4), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x3bd(%rip), %rdi       # 0x21ad
movb $0x1, %al
callq 0x1030
movq -0x33e48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x33e48(%rbp)
jmp 0x1dbc
jmp 0x15d7
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x341b0, %rsp          # imm = 0x341B0
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)