// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq $0x1, -0x18(%rbp)
movq 0xfcd9(%rip), %rdx      # 0x14510
imulq 0xfac1(%rip), %rdx      # 0x14300
shlq $0x2, %rdx
leaq 0xfcf6(%rip), %rdi      # 0x14540
movl $0x80, %esi
callq 0x3150
cltq
movq %rax, -0x8(%rbp)
cmpq $0x0, 0xfcde(%rip)      # 0x14540
jne 0x487c
leaq 0x9882(%rip), %rdi      # 0xe0ed
movb $0x0, %al
callq 0x3060
movl $0x1, %edi
callq 0x3350
cmpl $0x0, 0xfce5(%rip)      # 0x14568
je 0x493e
movq 0xfc80(%rip), %rdx      # 0x14510
imulq 0xfa68(%rip), %rdx      # 0x14300
shlq $0x2, %rdx
leaq 0xfca5(%rip), %rdi      # 0x14548
movl $0x80, %esi
callq 0x3150
cltq
movq %rax, -0x8(%rbp)
cmpq $0x0, 0xfc8d(%rip)      # 0x14548
jne 0x48d5
leaq 0x9829(%rip), %rdi      # 0xe0ed
movb $0x0, %al
callq 0x3060
movl $0x1, %edi
callq 0x3350
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq 0xfc28(%rip), %rax      # 0x14510
jge 0x493c
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq 0xfa03(%rip), %rax      # 0x14300
jge 0x492c
movq 0xfc42(%rip), %rax      # 0x14548
movq -0x8(%rbp), %rcx
imulq 0xf9ee(%rip), %rcx      # 0x14300
addq -0x10(%rbp), %rcx
xorps %xmm0, %xmm0
movss %xmm0, (%rax,%rcx,4)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x48f2
jmp 0x492e
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x48dd
jmp 0x493e
cmpl $0x0, 0xf9d3(%rip)      # 0x14318
jle 0x4a00
movq 0xfbbe(%rip), %rdx      # 0x14510
imulq 0xf9a6(%rip), %rdx      # 0x14300
shlq $0x2, %rdx
leaq 0xfbeb(%rip), %rdi      # 0x14550
movl $0x80, %esi
callq 0x3150
cltq
movq %rax, -0x8(%rbp)
cmpq $0x0, 0xfbd3(%rip)      # 0x14550
jne 0x4997
leaq 0x9767(%rip), %rdi      # 0xe0ed
movb $0x0, %al
callq 0x3060
movl $0x1, %edi
callq 0x3350
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq 0xfb66(%rip), %rax      # 0x14510
jge 0x49fe
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq 0xf941(%rip), %rax      # 0x14300
jge 0x49ee
movq 0xfb88(%rip), %rax      # 0x14550
movq -0x8(%rbp), %rcx
imulq 0xf92c(%rip), %rcx      # 0x14300
addq -0x10(%rbp), %rcx
xorps %xmm0, %xmm0
movss %xmm0, (%rax,%rcx,4)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x49b4
jmp 0x49f0
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x499f
jmp 0x4a00
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq 0xfafd(%rip), %rax      # 0x14510
jge 0x4abd
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq 0xf8d4(%rip), %rax      # 0x14300
jge 0x4aaa
movq -0x18(%rbp), %rax
movabsq $0x5deece66d, %rcx      # imm = 0x5DEECE66D
imulq %rcx, %rax
addq $0xb, %rax
movq %rax, -0x18(%rbp)
movzwl -0x18(%rbp), %eax
cvtsi2ss %eax, %xmm0
movss 0x95d8(%rip), %xmm1     # 0xe030
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x95b8(%rip), %xmm1     # 0xe020
subsd %xmm1, %xmm0
cvtsi2sdq 0xf88b(%rip), %xmm1 # 0x14300
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0xfabc(%rip), %rax      # 0x14540
movq -0x8(%rbp), %rcx
imulq 0xf870(%rip), %rcx      # 0x14300
addq -0x10(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x4a21
jmp 0x4aac
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x4a08
callq 0x3fe0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)