Function at 0x140004790
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x878]
sub rsp, 0x950
mov qword [rbp + 0x190], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [0x140021020]
xor rax, rsp
mov qword [rbp + 0x800], rax
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r13d, eax
mov dword [rbp - 0x10], eax
xor r14d, r14d
mov qword [rbp - 8], r14
mov qword [rbp], r14
mov qword [rbp + 8], r14
lea rcx, [0x140021d28]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rdx, rbx
lea rcx, [rbp - 8]
call fcn.14000d460
lea rcx, [0x140021d28]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ebx, [r14 + 0xa]
mov dword [rbp + 0x30], r14d
lea rcx, [rbp + 0x1a8]
call qword [sym.imp.KERNEL32.dll_GetSystemPowerStatus]
test eax, eax
je 0x140004851
mov edi, r14d
cmp byte [rbp + 0x1a8], dil
sete dil
jmp 0x140004854
or edi, 0xffffffff
mov qword [rsp + 0x50], r14
cmp edi, 0xffffffff
je 0x140004896
lea rdx, [rsp + 0x50]
xor ecx, ecx
call qword [sym.imp.POWRPROF.dll_PowerGetActiveScheme]
test eax, eax
jne 0x140004896
mov rax, qword [rsp + 0x50]
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0x10], xmm0
lea r9, [rbp + 0x28]
lea r8, [rbp + 0x10]
mov edx, edi
mov ecx, 4
call fcn.1400113c0
cmp eax, 4
cmove ebx, dword [rbp + 0x30]
movss xmm8, dword [0x14001a5d8]
movaps xmm9, xmm8
cmp dword [0x140021cd4], 0
jne 0x140004981
mov qword [rsp + 0x58], r14
mov qword [rbp - 0x68], r14
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x60], r14d
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x200], xmm0
mov qword [rbp + 0x210], r14
mov qword [rbp + 0x220], r14
mov qword [rbp + 0x238], r14
movdqa xmmword [rbp + 0x240], xmm0
mov qword [rbp + 0x250], r14
lea rcx, [rbp + 0x200]
call fcn.14000db60
nop
imul ebx, ebx, 0x3c
mov r8d, ebx
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x200]
call fcn.14000ede0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
lea r8, [rbp - 0x68]
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x200]
call fcn.14000f120
mov ecx, dword [rsp + 0x50]
movd xmm9, ecx
cvtdq2ps xmm9, xmm9
add ecx, dword [rsp + 0x60]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm9, xmm0
mov rcx, qword [rbp - 0x68]
xorps xmm8, xmm8
cvtsi2ss xmm8, rcx
add rcx, qword [rsp + 0x58]
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
divss xmm8, xmm0
lea rcx, [rbp + 0x200]
call fcn.14000dc60
call fcn.140003f00
mov r12, rax
mov qword [rbp + 0x48], rax
lea rdx, [0x140018bb4]
lea rcx, [rbp - 0x48]
call fcn.140003d30
nop
mov qword [rsp + 0x68], r14
mov r8, r14
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x80], r14
mov r9, r14
mov qword [rbp - 0x78], r14
mov r10, r14
mov qword [rbp - 0x70], r14
mov rdi, r14
mov qword [rbp - 0x60], r14
mov r11, r14
mov qword [rbp - 0x58], r14
mov rsi, r14
mov qword [rbp - 0x50], r14
mov r15d, r14d
mov rdx, qword [rbp - 0x40]
mov rax, rdx
sub rax, qword [rbp - 0x48]
sar rax, 2
test rax, rax
je 0x140004ef3
mov dword [rsp + 0x60], r14d
movabs rdx, 0x7878787878787879
lea rcx, vtable.NativeSimulatorConfigurations.0
mov qword [rbp + 0x2d0], rcx
mov qword [rbp + 0x2f0], 7
xor ebx, ebx
mov qword [rbp + 0x2e8], rbx
mov word [rbp + 0x2d8], bx
mov qword [rbp + 0x318], 0xf
mov qword [rbp + 0x310], rbx
mov byte [rbp + 0x300], bl
mov qword [rbp + 0x338], 0xf
mov qword [rbp + 0x330], rbx
mov byte [rbp + 0x320], bl
mov qword [rbp + 0x358], 0xf
mov qword [rbp + 0x350], rbx
mov byte [rbp + 0x340], bl
mov qword [rbp + 0x378], 0xf
mov qword [rbp + 0x370], rbx
mov byte [rbp + 0x360], bl
mov qword [rbp + 0x398], 0xf
mov qword [rbp + 0x390], rbx
mov byte [rbp + 0x380], bl
mov qword [rbp + 0x3b8], 0xf
mov qword [rbp + 0x3b0], rbx
mov byte [rbp + 0x3a0], bl
mov qword [rbp + 0x3d8], 0xf
mov qword [rbp + 0x3d0], rbx
mov byte [rbp + 0x3c0], bl
lea rax, [rbp + 0x2d0]
cmp rax, r11
jae 0x140004b75
lea rax, [rbp + 0x2d0]
cmp rdi, rax
ja 0x140004b75
lea rcx, [rbp + 0x2d0]
sub rcx, rdi
mov rax, rdx
imul rcx
mov rbx, rdx
sar rbx, 7
mov rax, rbx
shr rax, 0x3f
add rbx, rax
cmp r11, rsi
jne 0x140004b36
lea rcx, [rbp - 0x60]
call fcn.140007cc0
mov r8, qword [rsp + 0x70]
mov r10, qword [rbp - 0x70]
mov r9, qword [rbp - 0x78]
mov r11, qword [rbp - 0x58]
mov rdi, qword [rbp - 0x60]
imul rbx, rbx, 0x110
add rbx, rdi
mov qword [rsp + 0x58], r11
mov qword [rbp - 0x68], r11
test r11, r11
je 0x140004b6a
mov rdx, rbx
mov rcx, r11
call fcn.140008170
mov r8, qword [rsp + 0x70]
mov r10, qword [rbp - 0x70]
mov r9, qword [rbp - 0x78]
mov r11, qword [rbp - 0x58]
add r11, 0x110
xor ebx, ebx
jmp 0x140004bc9
cmp r11, rsi
jne 0x140004b94
lea rcx, [rbp - 0x60]
call fcn.140007cc0
mov r8, qword [rsp + 0x70]
mov r10, qword [rbp - 0x70]
mov r9, qword [rbp - 0x78]
mov r11, qword [rbp - 0x58]
mov qword [rsp + 0x58], r11
mov qword [rbp - 0x68], r11
test r11, r11
je 0x140004bc2
lea rdx, [rbp + 0x2d0]
mov rcx, r11
call fcn.140008170
mov r8, qword [rsp + 0x70]
mov r10, qword [rbp - 0x70]
mov r9, qword [rbp - 0x78]
mov r11, qword [rbp - 0x58]
add r11, 0x110
mov qword [rbp - 0x58], r11
lea rax, [rsp + 0x60]
cmp rax, r9
jae 0x140004c86
lea rax, [rsp + 0x60]
mov rcx, qword [rbp - 0x80]
cmp rcx, rax
ja 0x140004c86
lea rbx, [rsp + 0x60]
sub rbx, rcx
sar rbx, 2
cmp r9, r10
jne 0x140004c6e
mov rax, r10
sub rax, r9
sar rax, 2
cmp rax, 1
jae 0x140004c6e
sub r9, rcx
sar r9, 2
movabs rdx, 0x3fffffffffffffff
mov rax, rdx
sub rax, r9
cmp rax, 1
jb 0x140004eb8
inc r9
sub r10, rcx
sar r10, 2
mov rcx, r10
shr rcx, 1
mov rax, rdx
sub rax, rcx
cmp rax, r10
jae 0x140004c4f
xor r10d, r10d
jmp 0x140004c52
add r10, rcx
cmp r10, r9
cmovb r10, r9
mov rdx, r10
lea rcx, [rbp - 0x80]
call fcn.140007e40
mov r8, qword [rsp + 0x70]
mov r9, qword [rbp - 0x78]
mov rax, qword [rbp - 0x80]
test r9, r9
je 0x140004d10
mov eax, dword [rax + rbx*4]
mov dword [r9], eax
jmp 0x140004d07
cmp r9, r10
jne 0x140004cff
mov rax, r10
sub rax, r9
sar rax, 2
cmp rax, 1
jae 0x140004cff
mov rcx, qword [rbp - 0x80]
sub r9, rcx
sar r9, 2
movabs rdx, 0x3fffffffffffffff
mov rax, rdx
sub rax, r9
cmp rax, 1
jb 0x140004ec6
inc r9
sub r10, rcx
sar r10, 2
mov rcx, r10
shr rcx, 1
mov rax, rdx
sub rax, rcx
cmp rax, r10
jae 0x140004ce0
mov r10, rbx
jmp 0x140004ce3
add r10, rcx
cmp r10, r9
cmovb r10, r9
mov rdx, r10
lea rcx, [rbp - 0x80]
call fcn.140007e40
mov r8, qword [rsp + 0x70]
mov r9, qword [rbp - 0x78]
test r9, r9
je 0x140004d10
mov dword [r9], ebx
mov r8, qword [rsp + 0x70]
mov r9, qword [rbp - 0x78]
add r9, 4
mov qword [rbp - 0x78], r9
mov ebx, 0x64
mov rax, qword [rbp - 0x48]
sub ebx, dword [r14 + rax]
mov dword [rsp + 0x50], ebx
lea rax, [rsp + 0x50]
cmp rax, r8
jae 0x140004de2
lea rax, [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
cmp rcx, rax
ja 0x140004de2
lea rbx, [rsp + 0x50]
sub rbx, rcx
sar rbx, 2
mov rdx, qword [rsp + 0x78]
cmp r8, rdx
jne 0x140004dc9
mov rax, rdx
sub rax, r8
sar rax, 2
cmp rax, 1
jae 0x140004dc9
sub r8, rcx
sar r8, 2
movabs r9, 0x3fffffffffffffff
mov rax, r9
sub rax, r8
cmp rax, 1
jb 0x140004ed4
inc r8
sub rdx, rcx
sar rdx, 2
mov rcx, rdx
shr rcx, 1
mov rax, r9
sub rax, rcx
cmp rax, rdx
jae 0x140004db0
xor edx, edx
jmp 0x140004db3
add rdx, rcx
cmp rdx, r8
cmovb rdx, r8
lea rcx, [rsp + 0x68]
call fcn.140007e40
mov r8, qword [rsp + 0x70]
mov rax, qword [rsp + 0x68]
test r8, r8
je 0x140004e67
mov eax, dword [rax + rbx*4]
mov dword [r8], eax
jmp 0x140004e62
mov rdx, qword [rsp + 0x78]
cmp r8, rdx
jne 0x140004e5a
mov rax, rdx
sub rax, r8
sar rax, 2
cmp rax, 1
jae 0x140004e5a
mov rcx, qword [rsp + 0x68]
sub r8, rcx
sar r8, 2
movabs r9, 0x3fffffffffffffff
mov rax, r9
sub rax, r8
cmp rax, 1
jb 0x140004ee2
inc r8
sub rdx, rcx
sar rdx, 2
mov rcx, rdx
shr rcx, 1
mov rax, r9
sub rax, rcx
cmp rax, rdx
jae 0x140004e41
xor edx, edx
jmp 0x140004e44
add rdx, rcx
cmp rdx, r8
cmovb rdx, r8
lea rcx, [rsp + 0x68]
call fcn.140007e40
mov r8, qword [rsp + 0x70]
test r8, r8
je 0x140004e67
mov dword [r8], ebx
mov r8, qword [rsp + 0x70]
add r8, 4
mov qword [rsp + 0x70], r8
lea rcx, [rbp + 0x2d0]
call fcn.14000d2e0
inc r15d
add r14, 4
mov rdx, qword [rbp - 0x40]
mov rcx, rdx
sub rcx, qword [rbp - 0x48]
sar rcx, 2
movsxd rax, r15d
cmp rax, rcx
jae 0x140004ef0
mov r8, qword [rsp + 0x70]
mov r10, qword [rbp - 0x70]
mov r9, qword [rbp - 0x78]
mov rsi, qword [rbp - 0x50]
mov r11, qword [rbp - 0x58]
mov rdi, qword [rbp - 0x60]
jmp 0x1400049f7
lea rcx, str.vector_T__too_long
call qword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rcx, str.vector_T__too_long
call qword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rcx, str.vector_T__too_long
call qword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rcx, str.vector_T__too_long
call qword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
nop
xor r14d, r14d
mov rbx, qword [r12]
cmp rbx, qword [r12 + 8]
je 0x140005096
cmp dword [0x140021cd4], 0
jne 0x140005870
xorps xmm6, xmm6
xorps xmm7, xmm7
mov qword [rbp - 0x68], r14
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x60], r14d
test rbx, rbx
je 0x140004ffd
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x200], xmm0
mov qword [rbp + 0x210], r14
mov qword [rbp + 0x220], r14
mov qword [rbp + 0x238], r14
movdqa xmmword [rbp + 0x240], xmm0
mov qword [rbp + 0x250], r14
mov rdx, rbx
lea rcx, [rbp + 0x200]
call fcn.14000d9e0
nop
mov rax, qword [rbp]
sub rax, qword [rbp - 8]
sar rax, 4
cmp rax, 2
jbe 0x140004f92
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x200]
call fcn.14000eb60
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x58]
lea rdx, [rbp - 0x68]
lea rcx, [rbp + 0x200]
call fcn.14000f120
mov ecx, dword [rsp + 0x50]
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
add ecx, dword [rsp + 0x60]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm6, xmm0
mov rcx, qword [rsp + 0x58]
xorps xmm7, xmm7
cvtsi2ss xmm7, rcx
add rcx, qword [rbp - 0x68]
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
divss xmm7, xmm0
lea rcx, [rbp + 0x200]
call fcn.14000dc60
mov rdx, qword [rbp - 0x40]
mov esi, r14d
mov rax, rdx
sub rax, qword [rbp - 0x48]
sar rax, 2
test rax, rax
je 0x140005084
mov rcx, r14
mov rdi, r14
nop word [rax + rax]
mov rax, qword [rbp - 0x48]
movd xmm1, dword [rax + rdi]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm6
mov rax, qword [rsp + 0x68]
movd xmm0, dword [rdi + rax]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
addss xmm1, xmm0
mov rax, qword [rbp - 0x80]
comiss xmm1, dword [rdi + rax]
jb 0x14000506b
movss dword [rdi + rax], xmm1
imul rcx, rcx, 0x110
add rcx, qword [rbp - 0x60]
mov rdx, rbx
call fcn.140005a00
mov rdx, qword [rbp - 0x40]
inc esi
add rdi, 4
movsxd rcx, esi
mov rax, rdx
sub rax, qword [rbp - 0x48]
sar rax, 2
cmp rcx, rax
jb 0x140005020
add rbx, 0x110
cmp rbx, qword [r12 + 8]
jne 0x140004f02
cmp dword [0x140021cd4], 0
jne 0x140005870
mov r8d, r14d
mov dword [rsp + 0x50], r14d
sub rdx, qword [rbp - 0x48]
sar rdx, 2
test rdx, rdx
je 0x14000581a
mov rbx, r14
mov qword [rsp + 0x58], rbx
mov r13, r14
nop word [rax + rax]
mov byte [rbp + 0x1a8], 0
xor eax, eax
mov qword [rbp + 0x1a9], rax
mov byte [rbp + 0x1b1], al
mov r9d, r8d
lea r8, str.Best_d
lea edx, [rax + 0xa]
lea rcx, [rbp + 0x1a8]
call qword [sym.imp.MSVCR110.dll_sprintf_s]
mov rax, qword [rbp - 0x48]
movd xmm1, dword [rax + r13]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm9
mov rax, qword [rsp + 0x68]
movd xmm0, dword [r13 + rax]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm8
addss xmm1, xmm0
mov rax, qword [rbp - 0x80]
movss xmm0, dword [r13 + rax]
comiss xmm0, xmm1
jb 0x140005706
mov byte [rbp + 0x400], 0
xor edx, edx
mov r8d, 0x3ff
lea rcx, [rbp + 0x401]
call sub.MSVCR110.dll_memset
lea rax, [rbp + 0x28]
mov qword [rbp - 0x68], rax
lea rax, [rbp + 0x50]
mov qword [rsp + 0x60], rax
lea rax, [rbp + 0xb0]
mov qword [rbp + 0x198], rax
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x1a0], rax
lea rax, [rbp + 0x90]
mov qword [rbp + 0x20], rax
lea rax, [rbp + 0x70]
mov qword [rbp + 0x10], rax
add rbx, qword [rbp - 0x60]
mov qword [rbp + 0x40], 0xf
mov qword [rbp + 0x38], r14
mov byte [rbp + 0x28], 0
mov r8d, 0xb
lea rdx, str.DayGrouping
lea rcx, [rbp + 0x28]
call fcn.140008c70
nop
mov qword [rbp + 0x128], 0xf
mov qword [rbp + 0x120], r14
mov byte [rbp + 0x110], 0
mov r8d, 0x1a
lea rdx, str.CyclicProbabilityPredictor
lea rcx, [rbp + 0x110]
call fcn.140008c70
mov rax, qword [rbx]
lea r9, [rbp + 0x28]
lea r8, [rbp + 0x110]
lea rdx, [rbp + 0x3e0]
mov rcx, rbx
call qword [rax]
mov r12, rax
mov qword [rbp + 0x68], 0xf
mov qword [rbp + 0x60], r14
mov byte [rbp + 0x50], 0
mov r8d, 0xb
lea rdx, str.StrengthLow
lea rcx, [rbp + 0x50]
call fcn.140008c70
nop
mov qword [rbp + 0x148], 0xf
mov qword [rbp + 0x140], r14
mov byte [rbp + 0x130], 0
mov r8d, 0x1a
lea rdx, str.CyclicProbabilityPredictor
lea rcx, [rbp + 0x130]
call fcn.140008c70
mov rax, qword [rbx]
lea r9, [rbp + 0x50]
lea r8, [rbp + 0x130]
lea rdx, [rbp + 0x1d8]
mov rcx, rbx
call qword [rax]
mov rdi, rax
mov qword [rbp + 0xc8], 0xf
mov qword [rbp + 0xc0], r14
mov byte [rbp + 0xb0], 0
mov r8d, 0xc
lea rdx, str.StrengthHigh
lea rcx, [rbp + 0xb0]
call fcn.140008c70
nop
mov qword [rbp + 0x188], 0xf
mov qword [rbp + 0x180], r14
mov byte [rbp + 0x170], 0
mov r8d, 0x1a
lea rdx, str.CyclicProbabilityPredictor
lea rcx, [rbp + 0x170]
call fcn.140008c70
mov rax, qword [rbx]
lea r9, [rbp + 0xb0]
lea r8, [rbp + 0x170]
lea rdx, [rbp + 0x1b8]
mov rcx, rbx
call qword [rax]
mov rsi, rax
mov qword [rbp + 0xe8], 0xf
mov qword [rbp + 0xe0], r14
mov byte [rbp + 0xd0], 0
mov r8d, 0x10
lea rdx, str.AgregationWeight
lea rcx, [rbp + 0xd0]
call fcn.140008c70
nop
mov qword [rbp + 0x168], 0xf
mov qword [rbp + 0x160], r14
mov byte [rbp + 0x150], 0
mov r8d, 0x1a
lea rdx, str.CyclicProbabilityPredictor
lea rcx, [rbp + 0x150]
call fcn.140008c70
mov rax, qword [rbx]
lea r9, [rbp + 0xd0]
lea r8, [rbp + 0x150]
lea rdx, [rbp + 0x270]
mov rcx, rbx
call qword [rax]
mov r14, rax
mov qword [rbp + 0xa8], 0xf
xor r15d, r15d
mov qword [rbp + 0xa0], r15
mov byte [rbp + 0x90], r15b
lea r8d, [r15 + 0x10]
lea rdx, str.SecondLastWeight
lea rcx, [rbp + 0x90]
call fcn.140008c70
nop
mov qword [rbp + 0x108], 0xf
mov qword [rbp + 0x100], r15
mov byte [rbp + 0xf0], r15b
lea r8d, [r15 + 0x1a]
lea rdx, str.CyclicProbabilityPredictor
lea rcx, [rbp + 0xf0]
call fcn.140008c70
mov rax, qword [rbx]
lea r9, [rbp + 0x90]
lea r8, [rbp + 0xf0]
lea rdx, [rbp + 0x290]
mov rcx, rbx
call qword [rax]
mov r15, rax
mov qword [rbp + 0x88], 0xf
mov qword [rbp + 0x80], 0
mov byte [rbp + 0x70], 0
mov r8d, 0xf
lea rdx, str.FirstLastWeight
lea rcx, [rbp + 0x70]
call fcn.140008c70
nop
mov qword [rbp - 0x18], 0xf
mov qword [rbp - 0x20], 0
mov byte [rbp - 0x30], 0
mov r8d, 0x1a
lea rdx, str.CyclicProbabilityPredictor
lea rcx, [rbp - 0x30]
call fcn.140008c70
mov rax, qword [rbx]
lea r9, [rbp + 0x70]
lea r8, [rbp - 0x30]
lea rdx, [rbp + 0x2b0]
mov rcx, rbx
call qword [rax]
cmp qword [r12 + 0x18], 0x10
jb 0x140005495
mov r12, qword [r12]
cmp qword [rdi + 0x18], 0x10
jb 0x14000549f
mov rdi, qword [rdi]
cmp qword [rsi + 0x18], 0x10
jb 0x1400054a9
mov rsi, qword [rsi]
cmp qword [r14 + 0x18], 0x10
jb 0x1400054b3
mov r14, qword [r14]
cmp qword [r15 + 0x18], 0x10
jb 0x1400054bd
mov r15, qword [r15]
cmp qword [rax + 0x18], 0x10
jb 0x1400054c7
mov rax, qword [rax]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r15
mov r9, rax
lea r8, str._s__s__s__s__s__s
mov edx, 0x400
lea rcx, [rbp + 0x400]
call qword [sym.imp.MSVCR110.dll_sprintf_s]
cmp qword [rbp + 0x2c8], 0x10
jb 0x140005513
mov rcx, qword [rbp + 0x2b0]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov qword [rbp + 0x2c8], 0xf
xor r14d, r14d
mov qword [rbp + 0x2c0], r14
mov byte [rbp + 0x2b0], r14b
cmp qword [rbp + 0x2a8], 0x10
jb 0x140005546
mov rcx, qword [rbp + 0x290]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov qword [rbp + 0x2a8], 0xf
mov qword [rbp + 0x2a0], r14
mov byte [rbp + 0x290], 0
cmp qword [rbp + 0x288], 0x10
jb 0x140005576
mov rcx, qword [rbp + 0x270]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov qword [rbp + 0x288], 0xf
mov qword [rbp + 0x280], r14
mov byte [rbp + 0x270], 0
cmp qword [rbp + 0x1d0], 0x10
jb 0x1400055a6
mov rcx, qword [rbp + 0x1b8]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov qword [rbp + 0x1d0], 0xf
mov qword [rbp + 0x1c8], r14
mov byte [rbp + 0x1b8], 0
cmp qword [rbp + 0x1f0], 0x10
jb 0x1400055d6
mov rcx, qword [rbp + 0x1d8]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov qword [rbp + 0x1f0], 0xf
mov qword [rbp + 0x1e8], r14
mov byte [rbp + 0x1d8], 0
cmp qword [rbp + 0x3f8], 0x10
jb 0x140005606
mov rcx, qword [rbp + 0x3e0]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
lea rax, [rbp + 0x1d8]
mov qword [rbp + 0x10], rax
lea rax, [rbp + 0x1b8]
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x1f0], 0xf
mov qword [rbp + 0x1e8], r14
mov byte [rbp + 0x1d8], 0
cmp byte [rbp + 0x400], 0
jne 0x140005643
mov r8, r14
jmp 0x14000565a
lea rax, [rbp + 0x400]
or r8, 0xffffffffffffffff
nop
inc r8
cmp byte [rax + r8], 0
jne 0x140005650
lea rdx, [rbp + 0x400]
lea rcx, [rbp + 0x1d8]
call fcn.140008c70
nop
mov qword [rbp + 0x1d0], 0xf
mov qword [rbp + 0x1c8], r14
mov byte [rbp + 0x1b8], 0
cmp byte [rbp + 0x1a8], 0
jne 0x140005695
mov r8, r14
jmp 0x1400056aa
lea rax, [rbp + 0x1a8]
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1400056a0
lea rdx, [rbp + 0x1a8]
lea rcx, [rbp + 0x1b8]
call fcn.140008c70
nop
mov qword [rbp - 0x18], 0xf
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x30], 0
mov r8d, 0x1a
lea rdx, str.CyclicProbabilityPredictor
lea rcx, [rbp - 0x30]
call fcn.140008c70
nop
lea r8, [rbp + 0x1d8]
lea rdx, [rbp + 0x1b8]
lea rcx, [rbp - 0x30]
call fcn.1400103e0
mov rbx, qword [rsp + 0x58]
jmp 0x1400057dd
lea rax, [rbp + 0x1d8]
mov qword [rbp + 0x10], rax
lea rax, [rbp + 0x1b8]
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x1f0], 0xf
mov qword [rbp + 0x1e8], r14
mov byte [rbp + 0x1d8], 0
mov r8d, 2
lea rdx, [0x140018c44]
lea rcx, [rbp + 0x1d8]
call fcn.140008c70
nop
mov qword [rbp + 0x1d0], 0xf
mov qword [rbp + 0x1c8], r14
mov byte [rbp + 0x1b8], 0
cmp byte [rbp + 0x1a8], 0
jne 0x140005776
mov r8, r14
jmp 0x14000578b
lea rax, [rbp + 0x1a8]
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x140005781
lea rdx, [rbp + 0x1a8]
lea rcx, [rbp + 0x1b8]
call fcn.140008c70
nop
mov qword [rbp - 0x18], 0xf
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x30], 0
mov r8d, 0x1a
lea rdx, str.CyclicProbabilityPredictor
lea rcx, [rbp - 0x30]
call fcn.140008c70
nop
lea r8, [rbp + 0x1d8]
lea rdx, [rbp + 0x1b8]
lea rcx, [rbp - 0x30]
call fcn.1400103e0
mov r8d, dword [rsp + 0x50]
inc r8d
mov dword [rsp + 0x50], r8d
add r13, 4
add rbx, 0x110
mov qword [rsp + 0x58], rbx
mov rcx, qword [rbp - 0x40]
sub rcx, qword [rbp - 0x48]
sar rcx, 2
movsxd rax, r8d
cmp rax, rcx
jb 0x1400050d0
mov r12, qword [rbp + 0x48]
mov r13d, dword [rbp - 0x10]
mov ecx, 0x50
call qword [sym.imp.MSVCR110.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rbx, rax
mov qword [rbp + 0x10], rax
test rax, rax
je 0x140005865
mov qword [rbp - 0x18], 0xf
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x30], 0
mov r8d, 8
lea rdx, str.Strength
lea rcx, [rbp - 0x30]
call fcn.140008c70
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140001090
jmp 0x140005868
mov rax, r14
mov rdx, rax
call fcn.14000b970
mov rcx, r12
call fcn.140005b10
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, r13d
mov r8d, 4
mov edx, eax
lea rcx, str.Optimizer_runtime__d_n
call fcn.140001f40
mov dword [0x140021cd4], r14d
cmp qword [rbp - 0x60], 0
je 0x1400058ed
lea rcx, [rbp - 0x60]
call qword [sym.imp.MSVCP110.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rdi, qword [rbp - 0x58]
mov rbx, qword [rbp - 0x60]
cmp rbx, rdi
je 0x1400058d8
nop word [rax + rax]
mov rcx, rbx
call fcn.14000d2e0
add rbx, 0x110
cmp rbx, rdi
jne 0x1400058c0
mov rbx, qword [rbp - 0x60]
mov rcx, rbx
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x50], r14
cmp qword [rbp - 0x80], 0
je 0x140005914
lea rcx, [rbp - 0x80]
call qword [sym.imp.MSVCP110.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov qword [rbp - 0x80], r14
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], r14
cmp qword [rsp + 0x68], 0
je 0x140005941
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP110.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], r14
cmp qword [rbp - 0x48], 0
je 0x140005968
lea rcx, [rbp - 0x48]
call qword [sym.imp.MSVCP110.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r14
cmp qword [rbp - 8], 0
je 0x140005983
lea rcx, [rbp - 8]
call qword [sym.imp.MSVCP110.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rcx, qword [rbp - 8]
call qword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_]
mov rcx, qword [rbp + 0x800]
xor rcx, rsp
call fcn.140014550
lea r11, [rsp + 0x950]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret