Function at 0x180002bf0
Capabilities:
Allocate or change rwx memory
Create process on windows
Create process suspended
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
Use process replacement

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.1800198d0
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 r13d, r13d
mov rax, qword [0x180022e20]
mov qword [rbp - 0x68], rax
movsxd rsi, dword [rax + 0x3c]
add rsi, rax
mov qword [rbp - 0x50], rsi
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 r15d, 1
mov edx, r15d
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 + 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 [0x18001c1d0]
movups xmmword [rbp + 0x5e0], xmm11
mov dword [rsp + 0x50], r13d
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 0x180002d7e
imul rax, rax, 0x64
jmp 0x180002d99
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
lea rdi, [rax + 0x5f5e100]
mov qword [rbp - 0x48], rdi
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x388], xmm1
mov qword [rbp + 0x398], r13
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.AddOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x108], rbx
mov qword [rbp - 0x30], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002e00
mov qword [rbp - 0x30], r13
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x108]
jmp 0x180002e11
lea r8, [rbp - 0x30]
lea rcx, [rbp + 0x388]
call fcn.180010650
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x180002e23
mov rax, qword [rcx]
mov edx, r15d
call qword [rax]
nop
test rbx, rbx
je 0x180002e33
mov rax, qword [rbx]
mov edx, r15d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.MultiplyOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x110], rbx
mov qword [rbp - 0x38], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002e7d
mov qword [rbp - 0x38], r13
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x110]
jmp 0x180002e8e
lea r8, [rbp - 0x38]
lea rcx, [rbp + 0x388]
call fcn.180010650
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x180002ea0
mov rax, qword [rcx]
mov edx, r15d
call qword [rax]
nop
test rbx, rbx
je 0x180002eb0
mov rax, qword [rbx]
mov edx, r15d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.SubtractOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x118], rbx
mov qword [rbp - 0x28], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002efa
mov qword [rbp - 0x28], r13
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x118]
jmp 0x180002f0b
lea r8, [rbp - 0x28]
lea rcx, [rbp + 0x388]
call fcn.180010650
nop
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x180002f1d
mov rax, qword [rcx]
mov edx, r15d
call qword [rax]
nop
test rbx, rbx
je 0x180002f2d
mov rax, qword [rbx]
mov edx, r15d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.DivideOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x120], rbx
mov qword [rbp - 0x20], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002f77
mov qword [rbp - 0x20], r13
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x120]
jmp 0x180002f88
lea r8, [rbp - 0x20]
lea rcx, [rbp + 0x388]
call fcn.180010650
nop
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x180002f9a
mov rax, qword [rcx]
mov edx, r15d
call qword [rax]
nop
test rbx, rbx
je 0x180002faa
mov rax, qword [rbx]
mov edx, r15d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.ModulusOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x128], rbx
mov qword [rbp - 0x18], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180002ff4
mov qword [rbp - 0x18], r13
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x128]
jmp 0x180003005
lea r8, [rbp - 0x18]
lea rcx, [rbp + 0x388]
call fcn.180010650
nop
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x180003017
mov rax, qword [rcx]
mov edx, r15d
call qword [rax]
nop
test rbx, rbx
je 0x180003027
mov rax, qword [rbx]
mov edx, r15d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.ComplexOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x130], rbx
mov qword [rbp - 0x10], rax
mov rdx, qword [rbp + 0x390]
cmp rdx, qword [rbp + 0x398]
je 0x180003071
mov qword [rbp - 0x10], r13
mov qword [rdx], rax
add qword [rbp + 0x390], 8
mov rbx, qword [rbp + 0x130]
jmp 0x180003082
lea r8, [rbp - 0x10]
lea rcx, [rbp + 0x388]
call fcn.180010650
nop
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x180003094
mov rax, qword [rcx]
mov edx, r15d
call qword [rax]
nop
test rbx, rbx
je 0x1800030a4
mov rax, qword [rbx]
mov edx, r15d
mov rcx, rbx
call qword [rax]
mov esi, 0x80000000
movaps xmm15, xmm11
unpckhpd xmm15, xmm11
movsd xmm10, qword [0x18001c120]
movsd xmm9, qword [0x18001c138]
movsd xmm7, qword [0x18001c1e0]
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 0x180003cb4
nop
mov eax, dword [rbp + 0x378]
cmp eax, esi
lea ecx, [rax + rsi]
jb 0x180003123
lea ecx, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x180003131
add eax, esi
jmp 0x180003136
add eax, 0x80000000
sub eax, ecx
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x18000314b
call fcn.180010960
jmp 0x18000318b
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180003186
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180003186
nop dword [rax]
lea rcx, [rbp + 0x600]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180003170
mov esi, 0x80000000
mov eax, dword [rbp + 0x378]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x1800031a0
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x1800031ae
add eax, esi
jmp 0x1800031b3
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x1800031cb
call fcn.180010960
mov ecx, eax
jmp 0x18000320f
lea ebx, [rax + 1]
call fcn.180010960
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.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1800031f0
shr rcx, 0x20
mov esi, 0x80000000
lea edx, [rcx + r14]
mov r8, qword [rbp + 0x390]
mov r9, qword [rbp + 0x388]
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 + 0x378]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180003261
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x18000326f
add eax, esi
jmp 0x180003274
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x18000328c
call fcn.180010960
mov ecx, eax
jmp 0x1800032cf
lea ebx, [rax + 1]
call fcn.180010960
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
lea rcx, [rbp + 0x600]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1800032b0
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 ebx, 2
nop
lea rcx, [rbp + 0x600]
call fcn.180010960
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 ebx, 2
lea rcx, [rbp + 0x600]
call fcn.180010960
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 0x180003354
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 ebx, 2
nop dword [rax]
lea rcx, [rbp + 0x600]
call fcn.180010960
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 [0x18001c128]
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 ebx, 2
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010960
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 0x180003460
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.18000f550
nop
lea rbx, [rbp + 0x498]
cmp qword [rbp + 0x4b0], 0x10
jb 0x180003501
mov rbx, qword [rbp + 0x498]
mov rcx, rbx
jmp 0x180003508
lea rcx, [rbp + 0x498]
mov rdx, rbx
mov rsi, qword [rbp + 0x4a8]
add rsi, rcx
cmp rbx, rsi
je 0x180003567
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010960
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x15
ja 0x180003557
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010960
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x16
jb 0x180003540
shr rax, 0x20
add al, 0x61
mov byte [rbx], al
inc rbx
cmp rbx, rsi
jne 0x180003520
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x3e0], xmm1
mov qword [rbp + 0x3f0], r15
mov ecx, 0x190
call fcn.1800189a0
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 0x1800035ec
nop dword [rax + rax]
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x378]
call fcn.18000e730
mov dword [rsi], eax
add rsi, 4
cmp rsi, r14
jne 0x1800035c0
mov r14, qword [rbp + 0x3e8]
mov rsi, qword [rbp + 0x3e0]
mov dword [rbp + 0x490], 0xffffff9c
mov dword [rbp + 0x494], 0x64
cmp rsi, r14
je 0x180003640
nop word [rax + rax]
mov ebx, dword [rsi]
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x490]
call fcn.18000e730
add eax, ebx
mov dword [rsi], eax
add rsi, 4
cmp rsi, r14
jne 0x180003610
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.1800110c0
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 0x1800036e5
cmp rcx, 8
jb 0x1800036e5
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 0x1800036a0
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 0x1800036fc
nop word [rax + rax]
add r8d, dword [rax]
add rax, 4
cmp rax, r9
jne 0x1800036f0
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 0x180003721
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
add eax, esi
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x180003741
call fcn.180010960
mov ecx, eax
jmp 0x180003782
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180003779
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180003779
lea rcx, [rbp + 0x600]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180003763
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 0x1800037a8
lea r15d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x1800037b6
add eax, esi
jmp 0x1800037bb
add eax, 0x80000000
sub eax, r15d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x1800037d3
call fcn.180010960
mov ecx, eax
jmp 0x18000381f
lea esi, [rax + 1]
call fcn.180010960
mov r14d, esi
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jae 0x180003816
mov eax, esi
neg eax
xor edx, edx
div esi
mov esi, edx
cmp ecx, edx
jae 0x180003816
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010960
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jb 0x180003800
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 0x180003869
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
mov eax, dword [rbp + 0x378]
lea r14d, [rax + rsi]
jne 0x180003912
cmp eax, esi
jb 0x180003886
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x180003894
add eax, esi
jmp 0x180003899
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x1800038b1
call fcn.180010960
mov ecx, eax
jmp 0x1800038f2
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x1800038e9
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1800038e9
lea rcx, [rbp + 0x600]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1800038d3
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 0x1800039ab
cmp eax, esi
jb 0x18000391d
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x37c]
cmp eax, esi
jae 0x18000392b
add eax, esi
jmp 0x180003930
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x600]
cmp eax, 0xffffffff
jne 0x180003948
call fcn.180010960
mov ecx, eax
jmp 0x18000398f
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180003986
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180003986
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180003970
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]
mov r15d, edi
nop dword [rax]
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.180010960
mov ecx, eax
jmp 0x180003a41
lea ebx, [rax + 1]
call fcn.180010960
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.180010960
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 ebx, 2
nop dword [rax]
lea rcx, [rbp + 0x600]
call fcn.180010960
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.180010960
mov ecx, eax
jmp 0x180003b4f
lea ebx, [rax + 1]
call fcn.180010960
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.180010960
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 ebx, 2
nop word [rax + rax]
lea rcx, [rbp + 0x600]
call fcn.180010960
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
jne 0x1800039b1
mov rdi, qword [rbp - 0x48]
mov rcx, qword [rbp + 0x3e0]
test rcx, rcx
je 0x180003c49
mov rax, qword [rbp + 0x3f0]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180003c2e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180003ca6
call fcn.180018d64
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x3e0], xmm0
mov qword [rbp + 0x3f0], 0
mov rdx, qword [rbp + 0x4b0]
cmp rdx, 0x10
jb 0x180003c86
inc rdx
mov rcx, qword [rbp + 0x498]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180003c81
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180003cad
call fcn.180018d64
inc r13d
cmp r13d, 0x186a0
movsd xmm7, qword [0x18001c1e0]
jl 0x180003110
xor r13d, r13d
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 r15d, 1
test rbx, rbx
je 0x180003d58
mov rdi, qword [rbp + 0x390]
cmp rbx, rdi
je 0x180003d00
nop word [rax + rax]
mov rcx, qword [rbx]
test rcx, rcx
je 0x180003cf0
mov rax, qword [rcx]
mov edx, r15d
call qword [rax]
add rbx, 8
cmp rbx, rdi
jne 0x180003ce0
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 0x180003d3e
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180003d3e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.180018d64
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x388], xmm0
mov qword [rbp + 0x398], r13
movsd xmm0, qword [str.vnxrL_f_JD]
movsd qword [rsp + 0x70], xmm0
movzx eax, word [0x18001bc38]
mov word [rsp + 0x78], ax
cmp byte [0x18001bc39], 0
je 0x180003dad
mov byte [rsp + 0x70], 0x6e
xor byte [rsp + 0x71], 0x1a
xor byte [rsp + 0x72], 0x1c
xor byte [rsp + 0x73], 0x1e
xor byte [rsp + 0x74], 0x20
xor byte [rsp + 0x75], 0x22
xor byte [rsp + 0x76], 0x24
xor byte [rsp + 0x77], 0x26
xor byte [rsp + 0x78], 0x28
xor byte [rsp + 0x79], 0x2a
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r11, rax
mov qword [rbp - 0x48], rax
test rax, rax
jne 0x1800040c3
movups xmm0, xmmword [0x18001bc68]
movups xmmword [rbp + 0xe0], xmm0
mov eax, dword [0x18001bc78]
mov dword [rbp + 0xf0], eax
movzx eax, word [0x18001bc7c]
mov word [rbp + 0xf4], ax
cmp byte [0x18001bc7d], r11b
je 0x1800040a8
cmp dword [0x180022018], 2
jl 0x180004039
movdqa xmm10, xmmword [0x18001c170]
movdqa xmm6, xmmword [0x18001c200]
movdqa xmm7, xmmword [0x18001c1f0]
mov eax, 6
movd xmm8, eax
movdqa xmm11, xmmword [0x18001c190]
movdqa xmm12, xmmword [0x18001c1a0]
mov eax, 0x1f
movd xmm9, eax
movdqa xmm0, xmmword [0x18001c1c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0xe0]
mov edx, dword [rsp + 0x60]
nop dword [rax]
nop word [rax + rax]
movd xmm5, r13d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm10
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
paddd xmm4, xmm5
psrad xmm4, xmm8
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm8
movdqa xmm1, xmm2
psrld xmm1, xmm9
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm9
paddd xmm0, xmm4
pmulld xmm0, xmm11
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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, [r13 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm10
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
paddd xmm4, xmm5
psrad xmm4, xmm8
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm8
movdqa xmm1, xmm2
psrld xmm1, xmm9
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm9
paddd xmm0, xmm4
pmulld xmm0, xmm11
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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 r13d, 8
mov eax, r13d
lea rcx, [rcx + 8]
cmp r13d, 0x10
jl 0x180003e70
cmp eax, 0x16
jge 0x1800040a8
movsxd rax, r13d
lea r10, [rbp + 0xe0]
add r10, rax
nop word [rax + rax]
mov eax, 0x84210843
imul r13d
add edx, r13d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3e
movzx r9d, r13b
sub r9b, cl
add r9b, 0xc
add r9b, r9b
mov eax, 0x9c09c09d
imul r13d
add edx, r13d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx edx, dl
imul r8d, edx, 0x69
sub r9b, r8b
xor byte [r10], r9b
inc r13d
lea r10, [r10 + 1]
cmp r13d, 0x16
jl 0x180004050
lea rdx, [rbp + 0xe0]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000ec80
mov eax, r15d
jmp 0x180007c9e
movups xmm0, xmmword [str.VnMkEP_oFLC_S__WTlL___5_J]
movups xmmword [rbp + 0x250], xmm0
movsd xmm0, qword [0x18001c028]
movsd qword [rbp + 0x260], xmm0
movzx eax, word [0x18001c030]
mov word [rbp + 0x268], ax
mov r15d, 0x1f
mov r12d, dword [0x180022018]
cmp byte [0x18001c031], 0
je 0x1800043a7
mov r9d, r13d
cmp r12d, 2
jl 0x180004337
movdqa xmm13, xmmword [0x18001c170]
movdqa xmm6, xmmword [0x18001c200]
movdqa xmm7, xmmword [0x18001c1f0]
mov eax, 6
movd xmm11, eax
movdqa xmm14, xmmword [0x18001c190]
movdqa xmm15, xmmword [0x18001c1a0]
movd xmm12, r15d
movdqa xmm0, xmmword [0x18001c1c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x250]
mov edx, dword [rsp + 0x60]
nop dword [rax]
movd xmm5, r9d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm13
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
paddd xmm4, xmm5
psrad xmm4, xmm11
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm12
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm12
paddd xmm0, xmm4
pmulld xmm0, xmm14
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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, xmm13
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
paddd xmm4, xmm5
psrad xmm4, xmm11
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm12
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm12
paddd xmm0, xmm4
pmulld xmm0, xmm14
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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 0x180004170
cmp r9d, 0x1a
jge 0x1800043a7
movsxd rax, r9d
lea r10, [rbp + 0x250]
add r10, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x84210843
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3e
movzx r8d, r9b
sub r8b, cl
add r8b, 0xc
add r8b, r8b
mov eax, 0x9c09c09d
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x69
sub r8b, cl
xor byte [r10], r8b
inc r9d
lea r10, [r10 + 1]
cmp r9d, 0x1a
jl 0x180004350
lea rdx, [rbp + 0x250]
mov rcx, r11
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r14, rax
mov rax, qword [rbp - 0x50]
cmp dword [rax], 0x4550
jne 0x1800049de
movups xmm0, xmmword [str.___IIL_I_YpIA_SU_t]
movups xmmword [rbp + 0x2b8], xmm0
movups xmm1, xmmword [0x18001c0b0]
movups xmmword [rbp + 0x2c8], xmm1
psrldq xmm1, 0xf
movd eax, xmm1
test al, al
je 0x180004687
cmp r12d, 2
jl 0x180004621
movdqa xmm13, xmmword [0x18001c170]
mov edx, r13d
movdqa xmm6, xmmword [0x18001c200]
movdqa xmm7, xmmword [0x18001c1f0]
mov ebx, 6
movd xmm11, ebx
movdqa xmm14, xmmword [0x18001c190]
movdqa xmm15, xmmword [0x18001c1a0]
movd xmm12, r15d
movdqa xmm0, xmmword [0x18001c1c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x2b8]
mov r8d, dword [rsp + 0x60]
nop dword [rax + rax]
movd xmm5, edx
pshufd xmm5, xmm5, 0
paddd xmm5, xmm13
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
paddd xmm2, xmm5
psrad xmm2, xmm11
pmuldq xmm4, xmm7
pmuldq xmm1, xmm7
shufps xmm4, xmm1, 0xdd
paddd xmm4, xmm5
psrad xmm4, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm12
paddd xmm1, xmm2
pmulld xmm1, xmm14
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
pand xmm3, xmmword [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm12
paddd xmm0, xmm4
pmulld xmm0, xmm15
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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, xmm13
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
paddd xmm4, xmm5
psrad xmm4, xmm11
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm12
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm12
paddd xmm0, xmm4
pmulld xmm0, xmm14
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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 0x180004460
jmp 0x18000468c
lea r10, [rbp + 0x2b8]
mov r9d, r13d
nop dword [rax + rax]
mov eax, 0x84210843
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3e
movzx r8d, r9b
sub r8b, cl
add r8b, 0xc
add r8b, r8b
mov eax, 0x9c09c09d
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x69
sub r8b, cl
xor byte [r10], r8b
inc r9d
lea r10, [r10 + 1]
cmp r9d, 0x20
jl 0x180004630
mov ebx, 6
lea rax, [rbp + 0x328]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x570]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x2b8]
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x1800049e8
movups xmm0, xmmword [0x18001ba80]
movups xmmword [rbp + 0xc8], xmm0
mov eax, dword [0x18001ba90]
mov dword [rbp + 0xd8], eax
movzx eax, word [0x18001ba94]
mov word [rbp + 0xdc], ax
movzx eax, byte [0x18001ba96]
mov byte [rbp + 0xde], al
cmp r12d, 2
jl 0x180004939
movdqa xmm10, xmmword [0x18001c170]
movdqa xmm6, xmmword [0x18001c200]
movdqa xmm7, xmmword [0x18001c1f0]
movd xmm8, ebx
movdqa xmm11, xmmword [0x18001c190]
movdqa xmm12, xmmword [0x18001c1a0]
movd xmm9, r15d
movdqa xmm0, xmmword [0x18001c1c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0xc8]
mov edx, dword [rsp + 0x60]
nop word [rax + rax]
movd xmm5, r13d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm10
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
paddd xmm4, xmm5
psrad xmm4, xmm8
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm8
movdqa xmm1, xmm2
psrld xmm1, xmm9
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm9
paddd xmm0, xmm4
pmulld xmm0, xmm11
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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, [r13 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm10
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
paddd xmm4, xmm5
psrad xmm4, xmm8
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm8
movdqa xmm1, xmm2
psrld xmm1, xmm9
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm9
paddd xmm0, xmm4
pmulld xmm0, xmm11
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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 r13d, 8
mov eax, r13d
lea rcx, [rcx + 8]
cmp r13d, 0x10
jl 0x180004770
cmp eax, 0x17
jge 0x1800049a7
movsxd rax, r13d
lea r9, [rbp + 0xc8]
add r9, rax
nop word [rax + rax]
mov eax, 0x84210843
imul r13d
add edx, r13d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3e
movzx r8d, r13b
sub r8b, cl
add r8b, 0xc
add r8b, r8b
mov eax, 0x9c09c09d
imul r13d
add edx, r13d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x69
sub r8b, dl
xor byte [r9], r8b
inc r13d
lea r9, [r9 + 1]
cmp r13d, 0x17
jl 0x180004950
lea rdx, [rbp + 0xc8]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000ec80
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, [0x18000ee50]
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 0x180007c9e
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
lea rcx, [rbp + 0x40b0]
call fcn.18000da50
mov dword [rbp + 0x3b8], 0xffffff9c
mov dword [rbp + 0x3bc], 0x64
movaps xmm0, xmmword [0x18001c1d0]
movups xmmword [rbp + 0x478], xmm0
mov dword [rsp + 0x50], r13d
movsd qword [rsp + 0x60], xmm8
lea rcx, [rbp + 0x138]
call fcn.180001a60
mov rax, qword [rbp + 0x138]
add rax, 0x5f5e100
mov qword [rbp + 0x58], rax
lea rcx, [rbp + 0x420]
call fcn.180001df0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x420], xmm0
mov qword [rbp + 0x430], r13
lea rcx, [rbp + 0x140]
call fcn.18000e800
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x28], rcx
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 0x420]
call fcn.18000d980
nop
lea rcx, [rbp + 0x28]
call fcn.18000d960
nop
lea rcx, [rbp + 0x140]
call fcn.18000d960
lea rcx, [rbp + 0x148]
call fcn.18000e830
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x30], rcx
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x420]
call fcn.18000d980
nop
lea rcx, [rbp + 0x30]
call fcn.18000d960
nop
lea rcx, [rbp + 0x148]
call fcn.18000d960
lea rcx, [rbp + 0x150]
call fcn.18000e860
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x38], rcx
lea rdx, [rbp + 0x38]
lea rcx, [rbp + 0x420]
call fcn.18000d980
nop
lea rcx, [rbp + 0x38]
call fcn.18000d960
nop
lea rcx, [rbp + 0x150]
call fcn.18000d960
lea rcx, [rbp + 0x158]
call fcn.18000e890
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x40], rcx
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x420]
call fcn.18000d980
nop
lea rcx, [rbp + 0x40]
call fcn.18000d960
nop
lea rcx, [rbp + 0x158]
call fcn.18000d960
lea rcx, [rbp + 0x160]
call fcn.18000e8c0
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x48], rcx
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x420]
call fcn.18000d980
nop
lea rcx, [rbp + 0x48]
call fcn.18000d960
nop
lea rcx, [rbp + 0x160]
call fcn.18000d960
lea rcx, [rbp + 0x168]
call fcn.18000e8f0
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x50], rcx
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x420]
call fcn.18000d980
nop
lea rcx, [rbp + 0x50]
call fcn.18000d960
nop
lea rcx, [rbp + 0x168]
call fcn.18000d960
lea rcx, [rbp + 0x170]
call fcn.180001a60
mov rcx, rax
lea rdx, [rbp + 0x58]
call fcn.180001da0
movsd xmm7, qword [0x18001c128]
test al, al
jns 0x180004f3e
lea rax, [rbp + 0x3b8]
mov qword [rbp - 0x60], rax
lea rax, [rbp + 0x40b0]
mov qword [rbp - 0x58], rax
movaps xmm6, xmmword [rbp - 0x60]
nop dword [rax + rax]
mov esi, 0x186a0
nop word [rax + rax]
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e730
mov rbx, qword [rbp + 0x428]
sub rbx, qword [rbp + 0x420]
sar rbx, 3
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e730
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.18000e730
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.18000e920
movaps xmm5, xmm0
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x478]
call fcn.18000e920
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.18000e920
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.18000e920
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.18000dfa0
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.18000db00
nop
movdqa xmmword [rbp + 0x2f0], xmm6
lea r8, [rbp + 0x2f0]
mov rdx, qword [rbp + 0x4e0]
mov rcx, qword [rbp + 0x4d8]
call fcn.18000e9a0
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x4d8]
call fcn.180001cf0
mov rdx, qword [rbp + 0x4e0]
mov rcx, qword [rbp + 0x4d8]
call fcn.18000ea00
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov dword [rsp + 0x50], ecx
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e730
mov ebx, eax
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
call fcn.18000e730
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 0x180004e17
dec eax
or eax, 0xfffffffe
inc eax
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x3b8]
test eax, eax
jne 0x180004e3a
call fcn.18000e730
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x180004e49
call fcn.18000e730
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.18000e730
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
lea rdx, [rbp + 0x40b0]
lea rcx, [rbp + 0x478]
call fcn.18000e920
movsd xmm5, qword [rsp + 0x60]
addsd xmm0, xmm5
movsd qword [rsp + 0x60], xmm0
lea rdx, [rbp + 0x40b0]
test bl, 1
jne 0x180004ec5
lea rcx, [rbp + 0x3b8]
call fcn.18000e730
mov ecx, dword [rsp + 0x50]
imul eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x180004ee6
movsd xmm5, qword [rsp + 0x60]
lea rcx, [rbp + 0x478]
call fcn.18000e920
addsd xmm0, xmm10
divsd xmm5, xmm0
movsd qword [rsp + 0x60], xmm5
inc ebx
cmp ebx, 5
jl 0x180004e60
sub rdi, 1
jne 0x180004e50
lea rcx, [rbp + 0x4d8]
call fcn.18000daa0
nop
lea rcx, [rbp + 0x530]
call fcn.18000df40
sub rsi, 1
jne 0x180004c30
lea rcx, [rbp + 0x170]
call fcn.180001a60
mov rcx, rax
lea rdx, [rbp + 0x58]
call fcn.180001da0
test al, al
js 0x180004c20
mov eax, dword [rsp + 0x50]
lea rcx, [rbp + 0x420]
call fcn.18000d9b0
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 r14, qword [rbp - 0x50]
mov r8d, dword [r14 + 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.18000da50
mov dword [rbp + 0x3c0], 0xffffff9c
mov dword [rbp + 0x3c4], 0x64
movaps xmm0, xmmword [0x18001c1d0]
movups xmmword [rbp + 0x468], xmm0
mov dword [rsp + 0x50], r13d
movsd qword [rsp + 0x60], xmm8
lea rcx, [rbp + 0x178]
call fcn.180001a60
mov rax, qword [rbp + 0x178]
add rax, 0x5f5e100
mov qword [rbp + 0x90], rax
lea rcx, [rbp + 0x408]
call fcn.180001df0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x408], xmm0
mov qword [rbp + 0x418], r13
lea rcx, [rbp + 0x180]
call fcn.18000e800
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x60], rcx
lea rdx, [rbp + 0x60]
lea rcx, [rbp + 0x408]
call fcn.18000d980
nop
lea rcx, [rbp + 0x60]
call fcn.18000d960
nop
lea rcx, [rbp + 0x180]
call fcn.18000d960
lea rcx, [rbp + 0x188]
call fcn.18000e830
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x68], rcx
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x408]
call fcn.18000d980
nop
lea rcx, [rbp + 0x68]
call fcn.18000d960
nop
lea rcx, [rbp + 0x188]
call fcn.18000d960
lea rcx, [rbp + 0x190]
call fcn.18000e860
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x70], rcx
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x408]
call fcn.18000d980
nop
lea rcx, [rbp + 0x70]
call fcn.18000d960
nop
lea rcx, [rbp + 0x190]
call fcn.18000d960
lea rcx, [rbp + 0x198]
call fcn.18000e890
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x78], rcx
lea rdx, [rbp + 0x78]
lea rcx, [rbp + 0x408]
call fcn.18000d980
nop
lea rcx, [rbp + 0x78]
call fcn.18000d960
nop
lea rcx, [rbp + 0x198]
call fcn.18000d960
lea rcx, [rbp + 0x1a0]
call fcn.18000e8c0
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x80], rcx
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x408]
call fcn.18000d980
nop
lea rcx, [rbp + 0x80]
call fcn.18000d960
nop
lea rcx, [rbp + 0x1a0]
call fcn.18000d960
lea rcx, [rbp + 0x1a8]
call fcn.18000e8f0
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x88], rcx
lea rdx, [rbp + 0x88]
lea rcx, [rbp + 0x408]
call fcn.18000d980
nop
lea rcx, [rbp + 0x88]
call fcn.18000d960
nop
lea rcx, [rbp + 0x1a8]
call fcn.18000d960
lea rcx, [rbp + 0x1b0]
call fcn.180001a60
mov rcx, rax
lea rdx, [rbp + 0x90]
call fcn.180001da0
test al, al
jns 0x180005501
lea rax, [rbp + 0x3c0]
mov qword [rbp - 0x60], rax
lea rax, [rbp + 0x5440]
mov qword [rbp - 0x58], rax
movaps xmm6, xmmword [rbp - 0x60]
mov esi, 0x186a0
nop word [rax + rax]
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e730
mov rbx, qword [rbp + 0x410]
sub rbx, qword [rbp + 0x408]
sar rbx, 3
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e730
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.18000e730
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.18000e920
movaps xmm5, xmm0
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x468]
call fcn.18000e920
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.18000e920
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.18000e920
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.18000dfa0
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.18000db00
nop
movdqa xmmword [rbp + 0x300], xmm6
lea r8, [rbp + 0x300]
mov rdx, qword [rbp + 0x4f8]
mov rcx, qword [rbp + 0x4f0]
call fcn.18000e9a0
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x4f0]
call fcn.180001cf0
mov rdx, qword [rbp + 0x4f8]
mov rcx, qword [rbp + 0x4f0]
call fcn.18000ea00
mov ecx, dword [rsp + 0x50]
add ecx, eax
mov dword [rsp + 0x50], ecx
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e730
mov ebx, eax
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e730
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 0x1800053d7
dec eax
or eax, 0xfffffffe
inc eax
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x3c0]
test eax, eax
jne 0x1800053fa
call fcn.18000e730
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x180005409
call fcn.18000e730
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 + 0x5440]
lea rcx, [rbp + 0x3c0]
call fcn.18000e730
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
lea rdx, [rbp + 0x5440]
lea rcx, [rbp + 0x468]
call fcn.18000e920
movsd xmm5, qword [rsp + 0x60]
addsd xmm0, xmm5
movsd qword [rsp + 0x60], xmm0
lea rdx, [rbp + 0x5440]
test bl, 1
jne 0x180005485
lea rcx, [rbp + 0x3c0]
call fcn.18000e730
mov ecx, dword [rsp + 0x50]
imul eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x1800054a6
movsd xmm5, qword [rsp + 0x60]
lea rcx, [rbp + 0x468]
call fcn.18000e920
addsd xmm0, xmm10
divsd xmm5, xmm0
movsd qword [rsp + 0x60], xmm5
inc ebx
cmp ebx, 5
jl 0x180005420
sub rdi, 1
jne 0x180005410
lea rcx, [rbp + 0x4f0]
call fcn.18000daa0
nop
lea rcx, [rbp + 0x550]
call fcn.18000df40
sub rsi, 1
jne 0x1800051f0
lea rcx, [rbp + 0x1b0]
call fcn.180001a60
mov rcx, rax
lea rdx, [rbp + 0x90]
call fcn.180001da0
test al, al
js 0x1800051e2
mov eax, dword [rsp + 0x50]
lea rcx, [rbp + 0x408]
call fcn.18000d9b0
mov rdx, qword [rbp + 0x320]
test rdx, rdx
jne 0x1800057f3
movups xmm0, xmmword [str.NsnjUCHgDFCMuJM]
movups xmmword [rbp + 0x210], xmm0
movsd xmm0, qword [str._UR_fH]
movsd qword [rbp + 0x220], xmm0
movzx eax, byte [0x18001bff0]
mov byte [rbp + 0x228], al
cmp r12d, 2
jl 0x180005779
movdqa xmm10, xmmword [0x18001c170]
movdqa xmm6, xmmword [0x18001c200]
movdqa xmm7, xmmword [0x18001c1f0]
mov eax, 6
movd xmm8, eax
movdqa xmm11, xmmword [0x18001c190]
movdqa xmm12, xmmword [0x18001c1a0]
movd xmm9, r15d
movdqa xmm0, xmmword [0x18001c1c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x210]
mov edx, dword [rsp + 0x60]
nop dword [rax]
movd xmm5, r13d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm10
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
paddd xmm4, xmm5
psrad xmm4, xmm8
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm8
movdqa xmm1, xmm2
psrld xmm1, xmm9
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm9
paddd xmm0, xmm4
pmulld xmm0, xmm11
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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, [r13 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm10
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
paddd xmm4, xmm5
psrad xmm4, xmm8
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm8
movdqa xmm1, xmm2
psrld xmm1, xmm9
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm9
paddd xmm0, xmm4
pmulld xmm0, xmm11
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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 r13d, 8
mov eax, r13d
lea rcx, [rcx + 8]
cmp r13d, 0x18
jl 0x1800055b0
cmp eax, 0x19
jge 0x1800057e7
movsxd rax, r13d
lea r9, [rbp + 0x210]
add r9, rax
nop word [rax + rax]
mov eax, 0x84210843
imul r13d
add edx, r13d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3e
movzx r8d, r13b
sub r8b, cl
add r8b, 0xc
add r8b, r8b
mov eax, 0x9c09c09d
imul r13d
add edx, r13d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x69
sub r8b, dl
xor byte [r9], r8b
inc r13d
lea r9, [r9 + 1]
cmp r13d, 0x19
jl 0x180005790
lea rdx, [rbp + 0x210]
jmp 0x1800049ae
mov r9d, dword [r14 + 0x54]
mov qword [rsp + 0x20], r13
mov r8, qword [0x180022e20]
mov rcx, qword [rbp + 0x328]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov rax, qword [rbp - 0x68]
movsxd rdi, dword [rax + 0x3c]
mov rax, qword [0x180022e20]
add rdi, 0x11c
mov esi, r13d
cmp r13w, word [r14 + 6]
jae 0x180005b99
add rdi, rax
nop word [rax + 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], r13
mov rcx, qword [rbp + 0x328]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x180005b7e
movups xmm0, xmmword [0x18001bc80]
movups xmmword [rbp + 0x270], xmm0
movsd xmm0, qword [str.K__J__hJ]
movsd qword [rbp + 0x280], xmm0
movzx eax, word [0x18001bc98]
mov word [rbp + 0x288], ax
cmp byte [0x18001bc99], 0
je 0x180005b47
mov r9d, r13d
cmp r12d, 2
jl 0x180005ad7
movdqa xmm13, xmmword [0x18001c170]
movdqa xmm6, xmmword [0x18001c200]
movdqa xmm7, xmmword [0x18001c1f0]
mov eax, 6
movd xmm11, eax
movdqa xmm14, xmmword [0x18001c190]
movdqa xmm15, xmmword [0x18001c1a0]
movd xmm12, r15d
movdqa xmm0, xmmword [0x18001c1c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x270]
mov edx, dword [rsp + 0x60]
nop word [rax + rax]
movd xmm5, r9d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm13
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
paddd xmm4, xmm5
psrad xmm4, xmm11
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm12
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm12
paddd xmm0, xmm4
pmulld xmm0, xmm14
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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, xmm13
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
paddd xmm4, xmm5
psrad xmm4, xmm11
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm12
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm12
paddd xmm0, xmm4
pmulld xmm0, xmm14
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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 0x180005910
cmp r9d, 0x1a
jge 0x180005b47
movsxd rax, r9d
lea r10, [rbp + 0x270]
add r10, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x84210843
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3e
movzx r8d, r9b
sub r8b, cl
add r8b, 0xc
add r8b, r8b
mov eax, 0x9c09c09d
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x69
sub r8b, dl
xor byte [r10], r8b
inc r9d
lea r10, [r10 + 1]
cmp r9d, 0x1a
jl 0x180005af0
lea rdx, [rbp + 0x270]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000ec80
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, [0x18000ee50]
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]
add rdi, 0x28
inc esi
movzx eax, word [r14 + 6]
cmp esi, eax
jge 0x180005b99
mov rax, qword [0x180022e20]
jmp 0x180005840
mov rdx, qword [rbp + 0x348]
add rdx, 0x10
mov qword [rsp + 0x20], r13
mov r9d, 8
lea r8, [rbp + 0x320]
mov rcx, qword [rbp + 0x328]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x180005ece
movups xmm0, xmmword [str.urEF]
movups xmmword [rbp + 0x290], xmm0
movups xmm1, xmmword [str.qW__1__a_.__nvX]
movups xmmword [rbp + 0x2a0], xmm1
movzx eax, byte [0x18001bd50]
mov byte [rbp + 0x2b0], al
mov r9d, r13d
cmp r12d, 2
jl 0x180005e27
movdqa xmm13, xmmword [0x18001c170]
movdqa xmm6, xmmword [0x18001c200]
movdqa xmm7, xmmword [0x18001c1f0]
mov eax, 6
movd xmm11, eax
movdqa xmm14, xmmword [0x18001c190]
movdqa xmm15, xmmword [0x18001c1a0]
movd xmm12, r15d
movdqa xmm0, xmmword [0x18001c1c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x290]
mov edx, dword [rsp + 0x60]
nop dword [rax]
nop dword [rax + rax]
movd xmm5, r9d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm13
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
paddd xmm4, xmm5
psrad xmm4, xmm11
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm12
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm12
paddd xmm0, xmm4
pmulld xmm0, xmm14
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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, xmm13
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
paddd xmm4, xmm5
psrad xmm4, xmm11
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm11
movdqa xmm1, xmm2
psrld xmm1, xmm12
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm12
paddd xmm0, xmm4
pmulld xmm0, xmm14
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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 0x180005c60
cmp r9d, 0x21
jge 0x180005e97
movsxd rax, r9d
lea r10, [rbp + 0x290]
add r10, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x84210843
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3e
movzx r8d, r9b
sub r8b, cl
add r8b, 0xc
add r8b, r8b
mov eax, 0x9c09c09d
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x69
sub r8b, dl
xor byte [r10], r8b
inc r9d
lea r10, [r10 + 1]
cmp r9d, 0x21
jl 0x180005e40
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.18000ec80
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, [0x18000ee50]
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 dword [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 0x180005ef0
mov dword [rbp + 0x1990], 0x270
mov dword [rbp + 0x370], 0xffffff9c
mov dword [rbp + 0x374], 0x64
movaps xmm11, xmmword [0x18001c1d0]
movups xmmword [rbp + 0x5f0], xmm11
mov dword [rsp + 0x50], r13d
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 0x180005f6a
imul rax, rax, 0x64
jmp 0x180005f85
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
lea rdi, [rax + 0x5f5e100]
mov qword [rbp - 0x68], rdi
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x3a0], xmm1
mov qword [rbp + 0x3b0], r13
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.AddOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x1b8], rbx
mov qword [rbp - 8], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x180005fec
mov qword [rbp - 8], r13
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1b8]
jmp 0x180005ffd
lea r8, [rbp - 8]
lea rcx, [rbp + 0x3a0]
call fcn.180010650
nop
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x18000600f
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x18000601f
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.MultiplyOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x1c0], rbx
mov qword [rbp], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x180006069
mov qword [rbp], r13
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1c0]
jmp 0x18000607a
lea r8, [rbp]
lea rcx, [rbp + 0x3a0]
call fcn.180010650
nop
mov rcx, qword [rbp]
test rcx, rcx
je 0x18000608c
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x18000609c
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.SubtractOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x1c8], rbx
mov qword [rbp - 0x40], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x1800060e6
mov qword [rbp - 0x40], r13
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1c8]
jmp 0x1800060f7
lea r8, [rbp - 0x40]
lea rcx, [rbp + 0x3a0]
call fcn.180010650
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x180006109
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x180006119
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.DivideOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x1d0], rbx
mov qword [rbp + 8], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x180006163
mov qword [rbp + 8], r13
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1d0]
jmp 0x180006174
lea r8, [rbp + 8]
lea rcx, [rbp + 0x3a0]
call fcn.180010650
nop
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x180006186
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x180006196
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.ModulusOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x1d8], rbx
mov qword [rbp + 0x10], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x1800061e0
mov qword [rbp + 0x10], r13
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1d8]
jmp 0x1800061f1
lea r8, [rbp + 0x10]
lea rcx, [rbp + 0x3a0]
call fcn.180010650
nop
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x180006203
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x180006213
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
mov ecx, 8
call fcn.1800189a0
lea rcx, vtable.ComplexOperation.0
mov qword [rax], rcx
mov rbx, r13
mov qword [rbp + 0x1e0], rbx
mov qword [rbp + 0x18], rax
mov rdx, qword [rbp + 0x3a8]
cmp rdx, qword [rbp + 0x3b0]
je 0x18000625d
mov qword [rbp + 0x18], r13
mov qword [rdx], rax
add qword [rbp + 0x3a8], 8
mov rbx, qword [rbp + 0x1e0]
jmp 0x18000626e
lea r8, [rbp + 0x18]
lea rcx, [rbp + 0x3a0]
call fcn.180010650
nop
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x180006280
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
nop
test rbx, rbx
je 0x180006290
mov rax, qword [rbx]
mov edx, r12d
mov rcx, rbx
call qword [rax]
movaps xmm15, xmm11
unpckhpd xmm15, xmm11
movsd xmm6, qword [0x18001c128]
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 0x1800062c4
imul rax, rax, 0x64
jmp 0x1800062df
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, rdi
jge 0x180006e8c
nop dword [rax + rax]
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea ecx, [rax + rsi]
jb 0x180006303
lea ecx, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006311
add eax, esi
jmp 0x180006316
add eax, 0x80000000
sub eax, ecx
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x18000632b
call fcn.180010960
jmp 0x18000636b
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006366
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006366
nop dword [rax]
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006350
mov esi, 0x80000000
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180006380
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x18000638e
add eax, esi
jmp 0x180006393
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x1800063ab
call fcn.180010960
mov ecx, eax
jmp 0x1800063ef
lea ebx, [rax + 1]
call fcn.180010960
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 dword [rax]
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1800063d0
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 0x180006441
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x18000644f
add eax, esi
jmp 0x180006454
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x18000646c
call fcn.180010960
mov ecx, eax
jmp 0x1800064af
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x1800064a6
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1800064a6
nop
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006490
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 ebx, 2
nop
lea rcx, [rbp + 0x1990]
call fcn.180010960
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 0x1800064e0
movaps xmm14, xmm15
subsd xmm14, xmm11
divsd xmm12, xmm1
mulsd xmm12, xmm14
addsd xmm12, xmm11
movaps xmm13, xmm8
movaps xmm1, xmm10
mov ebx, 2
lea rcx, [rbp + 0x1990]
call fcn.180010960
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 0x180006534
divsd xmm13, xmm1
mulsd xmm13, xmm14
addsd xmm13, xmm11
movaps xmm6, xmm13
andps xmm6, xmmword [0x18001c1e0]
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 ebx, 2
lea rcx, [rbp + 0x1990]
call fcn.180010960
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 0x1800065d1
divsd xmm0, xmm2
mulsd xmm0, xmm14
addsd xmm0, xmm11
movsd xmm6, qword [0x18001c128]
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 ebx, 2
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010960
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 0x180006640
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.18000f550
nop
lea rbx, [rbp + 0x4b8]
cmp qword [rbp + 0x4d0], 0x10
jb 0x1800066e1
mov rbx, qword [rbp + 0x4b8]
mov rcx, rbx
jmp 0x1800066e8
lea rcx, [rbp + 0x4b8]
mov rdx, rbx
mov rsi, qword [rbp + 0x4c8]
add rsi, rcx
cmp rbx, rsi
je 0x180006747
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x15
ja 0x180006737
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rax, rcx, 0x1a
cmp eax, 0x16
jb 0x180006720
shr rax, 0x20
add al, 0x61
mov byte [rbx], al
inc rbx
cmp rbx, rsi
jne 0x180006700
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x3c8], xmm1
mov qword [rbp + 0x3d8], r15
mov ecx, 0x190
call fcn.1800189a0
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 0x1800067cc
nop dword [rax + rax]
lea rdx, [rbp + 0x1990]
lea rcx, [rbp + 0x370]
call fcn.18000e730
mov dword [rsi], eax
add rsi, 4
cmp rsi, r14
jne 0x1800067a0
mov r14, qword [rbp + 0x3d0]
mov rsi, qword [rbp + 0x3c8]
mov dword [rbp + 0x488], 0xffffff9c
mov dword [rbp + 0x48c], 0x64
cmp rsi, r14
je 0x180006820
nop word [rax + rax]
mov ebx, dword [rsi]
lea rdx, [rbp + 0x1990]
lea rcx, [rbp + 0x488]
call fcn.18000e730
add eax, ebx
mov dword [rsi], eax
add rsi, 4
cmp rsi, r14
jne 0x1800067f0
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.1800110c0
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 0x1800068c5
cmp rcx, 8
jb 0x1800068c5
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 0x180006880
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 0x1800068dc
nop word [rax + rax]
add r8d, dword [rax]
add rax, 4
cmp rax, r9
jne 0x1800068d0
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 0x180006901
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
add eax, esi
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x180006921
call fcn.180010960
mov ecx, eax
jmp 0x180006962
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006959
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006959
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006943
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 0x180006988
lea r15d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006996
add eax, esi
jmp 0x18000699b
add eax, 0x80000000
sub eax, r15d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x1800069b3
call fcn.180010960
mov ecx, eax
jmp 0x1800069ff
lea esi, [rax + 1]
call fcn.180010960
mov r14d, esi
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jae 0x1800069f6
mov eax, esi
neg eax
xor edx, edx
div esi
mov esi, edx
cmp ecx, edx
jae 0x1800069f6
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jb 0x1800069e0
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 0x180006a49
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
mov eax, dword [rbp + 0x370]
lea r14d, [rax + rsi]
jne 0x180006af2
cmp eax, esi
jb 0x180006a66
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006a74
add eax, esi
jmp 0x180006a79
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x180006a91
call fcn.180010960
mov ecx, eax
jmp 0x180006ad2
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006ac9
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006ac9
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006ab3
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 0x180006b8b
cmp eax, esi
jb 0x180006afd
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006b0b
add eax, esi
jmp 0x180006b10
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x180006b28
call fcn.180010960
mov ecx, eax
jmp 0x180006b6f
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006b66
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006b66
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006b50
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]
mov r15d, edi
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180006bb5
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006bc3
add eax, esi
jmp 0x180006bc8
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x180006be0
call fcn.180010960
mov ecx, eax
jmp 0x180006c21
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006c18
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006c18
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006c02
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 ebx, 2
nop dword [rax]
lea rcx, [rbp + 0x1990]
call fcn.180010960
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 0x180006c50
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 0x180006d4d
mov eax, dword [rbp + 0x370]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180006cc3
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x374]
cmp eax, esi
jae 0x180006cd1
add eax, esi
jmp 0x180006cd6
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x1990]
cmp eax, 0xffffffff
jne 0x180006cee
call fcn.180010960
mov ecx, eax
jmp 0x180006d2f
lea ebx, [rax + 1]
call fcn.180010960
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x180006d26
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180006d26
lea rcx, [rbp + 0x1990]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x180006d10
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 0x180006db0
movaps xmm1, xmm8
movaps xmm2, xmm10
mov ebx, 2
nop word [rax + rax]
lea rcx, [rbp + 0x1990]
call fcn.180010960
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 0x180006d60
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 0x180006ba0
sub r12, 1
jne 0x180006b91
mov rdi, qword [rbp - 0x68]
mov rcx, qword [rbp + 0x3c8]
test rcx, rcx
je 0x180006e29
mov rax, qword [rbp + 0x3d8]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180006e0e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006e7e
call fcn.180018d64
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x3c8], xmm0
mov qword [rbp + 0x3d8], 0
mov rdx, qword [rbp + 0x4d0]
cmp rdx, 0x10
jb 0x180006e66
inc rdx
mov rcx, qword [rbp + 0x4b8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180006e61
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006e85
call fcn.180018d64
inc r13d
cmp r13d, 0x186a0
jl 0x1800062f0
xor r13d, r13d
jmp 0x1800062a6
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 0x180006f2a
mov rdi, qword [rbp + 0x3a8]
cmp rbx, rdi
je 0x180006ed2
mov rcx, qword [rbx]
test rcx, rcx
je 0x180006ec2
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
add rbx, 8
cmp rbx, rdi
jne 0x180006eb2
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 0x180006f10
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180006f10
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.180018d64
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x3a0], xmm0
mov qword [rbp + 0x3b0], r13
mov rax, qword [rbp - 0x50]
mov r9d, dword [rax + 0x28]
add r9, qword [rbp + 0x320]
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], r13
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 0x180007252
movups xmm0, xmmword [0x18001b9a0]
movups xmmword [rbp + 0x230], xmm0
movsd xmm0, qword [0x18001b9b0]
movsd qword [rbp + 0x240], xmm0
movzx eax, byte [0x18001b9b8]
mov byte [rbp + 0x248], al
cmp dword [0x180022018], 2
jl 0x1800071c9
movdqa xmm10, xmmword [0x18001c170]
movdqa xmm6, xmmword [0x18001c200]
movdqa xmm7, xmmword [0x18001c1f0]
mov eax, 6
movd xmm8, eax
movdqa xmm11, xmmword [0x18001c190]
movdqa xmm12, xmmword [0x18001c1a0]
mov eax, 0x1f
movd xmm9, eax
movdqa xmm0, xmmword [0x18001c1c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rbp + 0x230]
mov edx, dword [rsp + 0x60]
nop dword [rax]
movd xmm5, r13d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm10
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
paddd xmm4, xmm5
psrad xmm4, xmm8
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm8
movdqa xmm1, xmm2
psrld xmm1, xmm9
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm9
paddd xmm0, xmm4
pmulld xmm0, xmm11
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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, [r13 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm10
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
paddd xmm4, xmm5
psrad xmm4, xmm8
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
paddd xmm2, xmm5
psrad xmm2, xmm8
movdqa xmm1, xmm2
psrld xmm1, xmm9
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 [0x18001c1b0]
packuswb xmm3, xmm3
movdqa xmm0, xmm4
psrld xmm0, xmm9
paddd xmm0, xmm4
pmulld xmm0, xmm11
psubd xmm5, xmm0
pshuflw xmm0, xmm5, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x18001c1b0]
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 r13d, 8
mov eax, r13d
lea rcx, [rcx + 8]
cmp r13d, 0x18
jl 0x180007000
cmp eax, 0x19
jge 0x180007237
movsxd rax, r13d
lea r9, [rbp + 0x230]
add r9, rax
nop word [rax + rax]
mov eax, 0x84210843
imul r13d
add edx, r13d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3e
movzx r8d, r13b
sub r8b, cl
add r8b, 0xc
add r8b, r8b
mov eax, 0x9c09c09d
imul r13d
add edx, r13d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x69
sub r8b, dl
xor byte [r9], r8b
inc r13d
lea r9, [r9 + 1]
cmp r13d, 0x19
jl 0x1800071e0
lea rdx, [rbp + 0x230]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.18000ec80
mov eax, r12d
jmp 0x180007c9e
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.18000da50
mov dword [rbp + 0x380], 0xffffff9c
mov dword [rbp + 0x384], 0x64
movaps xmm0, xmmword [0x18001c1d0]
movups xmmword [rbp + 0x3f8], xmm0
mov dword [rsp + 0x50], r13d
movsd qword [rsp + 0x60], xmm8
lea rcx, [rbp + 0x1e8]
call fcn.180001a60
mov rbx, qword [rbp + 0x1e8]
add rbx, 0x5f5e100
mov qword [rbp - 0x68], rbx
lea rcx, [rbp + 0x438]
call fcn.180001df0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x438], xmm0
mov qword [rbp + 0x448], r13
lea rcx, [rbp + 0x1f0]
call fcn.18000e800
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0x98], rcx
lea rdx, [rbp + 0x98]
lea rcx, [rbp + 0x438]
call fcn.18000d980
nop
lea rcx, [rbp + 0x98]
call fcn.18000d960
nop
lea rcx, [rbp + 0x1f0]
call fcn.18000d960
lea rcx, [rbp + 0x1f8]
call fcn.18000e830
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0xa0], rcx
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x438]
call fcn.18000d980
nop
lea rcx, [rbp + 0xa0]
call fcn.18000d960
nop
lea rcx, [rbp + 0x1f8]
call fcn.18000d960
lea rcx, [rbp + 0x200]
call fcn.18000e860
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0xa8], rcx
lea rdx, [rbp + 0xa8]
lea rcx, [rbp + 0x438]
call fcn.18000d980
nop
lea rcx, [rbp + 0xa8]
call fcn.18000d960
nop
lea rcx, [rbp + 0x200]
call fcn.18000d960
lea rcx, [rbp + 0x208]
call fcn.18000e890
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0xb0], rcx
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x438]
call fcn.18000d980
nop
lea rcx, [rbp + 0xb0]
call fcn.18000d960
nop
lea rcx, [rbp + 0x208]
call fcn.18000d960
lea rcx, [rbp + 0xf8]
call fcn.18000e8c0
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0xb8], rcx
lea rdx, [rbp + 0xb8]
lea rcx, [rbp + 0x438]
call fcn.18000d980
nop
lea rcx, [rbp + 0xb8]
call fcn.18000d960
nop
lea rcx, [rbp + 0xf8]
call fcn.18000d960
lea rcx, [rbp + 0x100]
call fcn.18000e8f0
nop
mov rcx, qword [rax]
mov qword [rax], r13
mov qword [rbp + 0xc0], rcx
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x438]
call fcn.18000d980
nop
lea rcx, [rbp + 0xc0]
call fcn.18000d960
nop
lea rcx, [rbp + 0x100]
call fcn.18000d960
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 0x1800074ae
imul rax, rax, 0x64
jmp 0x1800074c9
cqo
idiv rdi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
cmp rax, rbx
jge 0x180007c24
mov eax, dword [rbp + 0x380]
cmp eax, esi
lea ecx, [rax + rsi]
jb 0x1800074e5
lea ecx, [rax - 0x80000000]
mov eax, dword [rbp + 0x384]
cmp eax, esi
jae 0x1800074f3
add eax, esi
jmp 0x1800074f8
add eax, 0x80000000
sub eax, ecx
lea rcx, [rbp + 0x2d20]
cmp eax, 0xffffffff
jne 0x18000750d
call fcn.180010960
jmp 0x18000754b
lea edi, [rax + 1]
call fcn.180010960
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x180007546
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x180007546
nop
lea rcx, [rbp + 0x2d20]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x180007530
mov esi, 0x80000000
lea rax, [rbp + 0x2d20]
mov qword [rbp + 0x20], rax
mov eax, dword [rbp + 0x380]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x18000756b
lea r14d, [rax - 0x80000000]
mov edi, dword [rbp + 0x384]
cmp edi, esi
jae 0x180007579
add edi, esi
jmp 0x18000757f
add edi, 0x80000000
sub edi, r14d
cmp edi, 0xffffffff
jne 0x180007597
lea rcx, [rbp + 0x2d20]
call fcn.180010960
mov ecx, eax
jmp 0x1800075d6
inc edi
mov edx, edi
lea rcx, [rbp + 0x20]
call fcn.180010920
mov rcx, rax
cmp eax, edi
jae 0x1800075d2
mov eax, edi
neg eax
xor edx, edx
div edi
mov esi, edx
cmp ecx, edx
jae 0x1800075d2
nop dword [rax]
mov edx, edi
lea rcx, [rbp + 0x20]
call fcn.180010920
mov rcx, rax
cmp eax, esi
jb 0x1800075c0
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.18000e730
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.18000e920
movaps xmm5, xmm0
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x3f8]
call fcn.18000e920
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.18000e920
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.18000e920
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.18000dfa0
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.18000db00
nop
lea rax, [rbp + 0x380]
mov qword [rbp - 0x60], rax
lea rax, [rbp + 0x2d20]
mov qword [rbp - 0x58], rax
movaps xmm0, xmmword [rbp - 0x60]
movdqa xmmword [rbp + 0x310], xmm0
lea r8, [rbp + 0x310]
mov rdx, qword [rbp + 0x458]
mov rcx, qword [rbp + 0x450]
call fcn.18000e9a0
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x450]
call fcn.180001cf0
mov rdx, qword [rbp + 0x458]
mov rcx, qword [rbp + 0x450]
call fcn.18000ea00
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 0x1800077a9
call fcn.180010960
mov ecx, eax
jmp 0x1800077ef
lea edi, [rax + 1]
call fcn.180010960
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x1800077e6
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x1800077e6
nop dword [rax + rax]
lea rcx, [rbp + 0x2d20]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x1800077d0
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 0x180007815
lea r15d, [rax - 0x80000000]
mov eax, dword [rbp + 0x384]
cmp eax, esi
jae 0x180007823
add eax, esi
jmp 0x180007828
add eax, 0x80000000
sub eax, r15d
lea rcx, [rbp + 0x2d20]
cmp eax, 0xffffffff
jne 0x180007840
call fcn.180010960
mov ecx, eax
jmp 0x180007882
lea esi, [rax + 1]
call fcn.180010960
mov r14d, esi
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jae 0x180007879
mov eax, esi
neg eax
xor edx, edx
div esi
mov esi, edx
cmp ecx, edx
jae 0x180007879
lea rcx, [rbp + 0x2d20]
call fcn.180010960
mov ecx, eax
imul rcx, r14
cmp ecx, esi
jb 0x180007863
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 0x1800078c8
dec eax
or eax, 0xfffffffe
inc eax
lea rdx, [rbp + 0x2d20]
lea rcx, [rbp + 0x380]
test eax, eax
jne 0x1800078eb
call fcn.18000e730
mov ecx, dword [rsp + 0x50]
add eax, ecx
mov dword [rsp + 0x50], eax
jmp 0x1800078fa
call fcn.18000e730
mov ecx, dword [rsp + 0x50]
sub ecx, eax
mov dword [rsp + 0x50], ecx
xor ebx, ebx
lea r12d, [rbx + 5]
mov r15d, ebx
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rbp + 0x380]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180007925
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x384]
cmp eax, esi
jae 0x180007933
add eax, esi
jmp 0x180007938
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x2d20]
cmp eax, 0xffffffff
jne 0x180007950
call fcn.180010960
mov ecx, eax
jmp 0x180007991
lea edi, [rax + 1]
call fcn.180010960
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x180007988
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x180007988
lea rcx, [rbp + 0x2d20]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x180007972
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 edi, 2
nop dword [rax]
lea rcx, [rbp + 0x2d20]
call fcn.180010960
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 0x1800079c0
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 0x180007acd
mov eax, dword [rbp + 0x380]
cmp eax, esi
lea r14d, [rax + rsi]
jb 0x180007a38
lea r14d, [rax - 0x80000000]
mov eax, dword [rbp + 0x384]
cmp eax, esi
jae 0x180007a46
add eax, esi
jmp 0x180007a4b
add eax, 0x80000000
sub eax, r14d
lea rcx, [rbp + 0x2d20]
cmp eax, 0xffffffff
jne 0x180007a63
call fcn.180010960
mov ecx, eax
jmp 0x180007aaf
lea edi, [rax + 1]
call fcn.180010960
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x180007aa6
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x180007aa6
nop word [rax + rax]
lea rcx, [rbp + 0x2d20]
call fcn.180010960
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x180007a90
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 0x180007b42
movaps xmm3, xmm8
movaps xmm1, xmm10
mov edi, 2
nop word [rax + rax]
lea rcx, [rbp + 0x2d20]
call fcn.180010960
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 0x180007ae0
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 0x180007910
sub r12, 1
jne 0x180007900
mov rbx, qword [rbp - 0x68]
mov rcx, qword [rbp + 0x450]
test rcx, rcx
je 0x180007bbb
mov rax, qword [rbp + 0x460]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180007ba0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180007c16
call fcn.180018d64
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x450], xmm0
mov qword [rbp + 0x460], 0
mov rdx, qword [rbp + 0x528]
cmp rdx, 0x10
jb 0x180007bf8
inc rdx
mov rcx, qword [rbp + 0x510]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180007bf3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180007c1d
call fcn.180018d64
inc r13d
cmp r13d, 0x186a0
mov r12d, 1
jl 0x1800074d2
xor r13d, r13d
jmp 0x180007490
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.18000d9b0
movsd xmm0, qword [str.qtvKV]
movsd qword [rbp - 0x80], xmm0
movzx edx, word [0x18001c118]
mov word [rbp - 0x78], dx
movzx eax, byte [0x18001c11a]
mov byte [rbp - 0x80], 0x69
xor byte [rbp - 0x7f], 0x1a
xor byte [rbp - 0x7e], 0x1c
xor byte [rbp - 0x7d], 0x1e
xor byte [rbp - 0x7c], 0x20
xor byte [rbp - 0x7b], 0x22
xor byte [rbp - 0x7a], 0x24
xor byte [rbp - 0x79], 0x26
xor dl, 0x28
mov byte [rbp - 0x78], dl
xor byte [rbp - 0x77], 0x2a
xor al, 0x2c
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.18000ec80
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
mov rcx, qword [rbp + 0x67d0]
xor rcx, rsp
call fcn.180018980
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