// File: /workspace/github_c_makefile_star2_O2/Leeheng86[P]word2vec/word2vec.c
// Function: InitNet()
void InitNet() {
  long long a, b;
  unsigned long long next_random = 1;
  a = posix_memalign((void **)&syn0, 128, (long long)vocab_size * layer1_size * sizeof(real));
  if (syn0 == NULL) {printf("Memory allocation failed\n"); exit(1);}
  if (hs) {
    a = posix_memalign((void **)&syn1, 128, (long long)vocab_size * layer1_size * sizeof(real));
    if (syn1 == NULL) {printf("Memory allocation failed\n"); exit(1);}
    for (a = 0; a < vocab_size; a++) for (b = 0; b < layer1_size; b++)
     syn1[a * layer1_size + b] = 0;
  }
  if (negative>0) {
    a = posix_memalign((void **)&syn1neg, 128, (long long)vocab_size * layer1_size * sizeof(real));
    if (syn1neg == NULL) {printf("Memory allocation failed\n"); exit(1);}
    for (a = 0; a < vocab_size; a++) for (b = 0; b < layer1_size; b++)
     syn1neg[a * layer1_size + b] = 0;
  }
  for (a = 0; a < vocab_size; a++) for (b = 0; b < layer1_size; b++) {
    next_random = next_random * (unsigned long long)25214903917 + 11;
    syn0[a * layer1_size + b] = (((next_random & 0xFFFF) / (real)65536) - 0.5) / layer1_size;
  }
  CreateBinaryTree();
}

// Assembly:
pushq %rbx
movq 0x834d(%rip), %rdx      # 0xb490
imulq 0x8135(%rip), %rdx      # 0xb280
shlq $0x2, %rdx
leaq 0x836a(%rip), %rdi      # 0xb4c0
movl $0x80, %esi
callq 0x2120
cmpq $0x0, 0x8358(%rip)      # 0xb4c0
je 0x3315
cmpl $0x0, 0x8373(%rip)      # 0xb4e8
movq 0x8314(%rip), %rdx      # 0xb490
movq 0x80fd(%rip), %rcx      # 0xb280
je 0x3201
imulq %rcx, %rdx
shlq $0x2, %rdx
leaq 0x8334(%rip), %rdi      # 0xb4c8
movl $0x80, %esi
callq 0x2120
movq 0x8323(%rip), %rax      # 0xb4c8
testq %rax, %rax
je 0x3315
movq 0x82db(%rip), %rdx      # 0xb490
movq 0x80c4(%rip), %rcx      # 0xb280
xorl %esi, %esi
testq %rcx, %rcx
movl $0x0, %edi
cmovgq %rcx, %rdi
testq %rdx, %rdx
movl $0x0, %r8d
cmovgq %rdx, %r8
shlq $0x2, %rcx
cmpq %r8, %rsi
je 0x31fa
xorl %r9d, %r9d
cmpq %r9, %rdi
je 0x31f2
andl $0x0, (%rax,%r9,4)
incq %r9
jmp 0x31e3
incq %rsi
addq %rcx, %rax
jmp 0x31db
movq 0x807f(%rip), %rcx      # 0xb280
cmpl $0x0, 0x8090(%rip)      # 0xb298
jle 0x3282
imulq %rcx, %rdx
shlq $0x2, %rdx
leaq 0x82b7(%rip), %rdi      # 0xb4d0
movl $0x80, %esi
callq 0x2120
movq 0x82a6(%rip), %rcx      # 0xb4d0
testq %rcx, %rcx
je 0x3315
movq 0x8256(%rip), %rax      # 0xb490
movq 0x803f(%rip), %rdx      # 0xb280
xorl %esi, %esi
testq %rdx, %rdx
movl $0x0, %edi
cmovgq %rdx, %rdi
testq %rax, %rax
cmovleq %rsi, %rax
shlq $0x2, %rdx
cmpq %rax, %rsi
je 0x3279
xorl %r8d, %r8d
cmpq %r8, %rdi
je 0x3271
andl $0x0, (%rcx,%r8,4)
incq %r8
jmp 0x3262
incq %rsi
addq %rdx, %rcx
jmp 0x325a
movq 0x8000(%rip), %rcx      # 0xb280
jmp 0x328b
xorl %eax, %eax
testq %rdx, %rdx
cmovgq %rdx, %rax
cvtsi2sd %rcx, %xmm0
xorl %edx, %edx
testq %rcx, %rcx
movl $0x0, %esi
cmovgq %rcx, %rsi
shlq $0x2, %rcx
pushq $0x1
popq %rdi
movabsq $0x5deece66d, %r8       # imm = 0x5DEECE66D
movss 0x3d71(%rip), %xmm1     # 0x7028
movsd 0x3d59(%rip), %xmm2     # 0x7018
xorl %r9d, %r9d
cmpq %rax, %r9
je 0x330f
movq 0x81f2(%rip), %r10      # 0xb4c0
addq %rdx, %r10
xorl %r11d, %r11d
cmpq %r11, %rsi
je 0x3307
imulq %r8, %rdi
addq $0xb, %rdi
movzwl %di, %ebx
cvtsi2ss %ebx, %xmm3
mulss %xmm1, %xmm3
cvtss2sd %xmm3, %xmm3
addsd %xmm2, %xmm3
divsd %xmm0, %xmm3
cvtsd2ss %xmm3, %xmm3
movss %xmm3, (%r10,%r11,4)
incq %r11
jmp 0x32d4
incq %r9
addq %rcx, %rdx
jmp 0x32c2
popq %rbx
jmp 0x2be0
leaq 0x403f(%rip), %rdi      # 0x735b
callq 0x2360
pushq $0x1
popq %rdi
callq 0x22a0