Function at 0x140001584
Capabilities:
Allocate or change rwx memory
Authenticate hmac
Check for software breakpoints
Check http status code
Encode data using base64
Encrypt data using speck
Execute shellcode via indirect call
Link many functions at runtime
Parse pe header
Read file via mapping

Disassembly:
push rbp
push rbx
mov eax, 0x9638
call fcn.14007bfd0
sub rsp, rax
lea rbp, [rsp + 0x80]
movups xmmword [rbp + 0x95a0], xmm6
mov dword [rbp + 0x95d0], ecx
mov qword [rbp + 0x95d8], rdx
call fcn.14007b020
lea rax, str.ntdll.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov qword [rbp + 0x5f18], rax
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov qword [rbp + 0x5f10], rax
mov ecx, 0x3c4
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5f08], rax
mov dword [rbp + 0x9594], 0
mov dword [rbp + 0x9590], 0
mov dword [rbp + 0x9598], 0
jmp 0x140001665
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x9598]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5f08]
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 + 0x9598], 1
cmp dword [rbp + 0x9598], 0xf0
jle 0x140001619
mov dword [rbp + 0x9598], 0
jmp 0x1400016a6
mov eax, dword [rbp + 0x9598]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5f08]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x9594], eax
add dword [rbp + 0x9598], 1
cmp dword [rbp + 0x9598], 0xf0
jle 0x14000167d
mov dword [rbp + 0x9598], 0
jmp 0x14000172e
pxor xmm6, xmm6
cvtsi2sd xmm6, dword [rbp + 0x9590]
mov eax, dword [rbp + 0x9598]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5f08]
add rax, rdx
mov eax, dword [rax]
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm0, dword [rbp + 0x184]
pxor xmm3, xmm3
cvtss2sd xmm3, xmm0
movq rax, xmm3
movsd xmm0, qword [0x140084178]
movupd xmm1, xmm0
movq xmm0, rax
call fcn.14007c930
addsd xmm0, xmm6
cvttsd2si eax, xmm0
mov dword [rbp + 0x9590], eax
add dword [rbp + 0x9598], 1
cmp dword [rbp + 0x9598], 0xf0
jle 0x1400016be
pxor xmm0, xmm0
cvtsi2ss xmm0, dword [rbp + 0x9590]
movss xmm1, dword [0x140084180]
divss xmm0, xmm1
movss dword [rbp + 0x5f04], xmm0
pxor xmm4, xmm4
cvtss2sd xmm4, dword [rbp + 0x5f04]
movq rax, xmm4
movq xmm0, rax
call fcn.14007c030
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x5f00], xmm0
mov rax, qword [rbp + 0x5f08]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0x524
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ef8], rax
mov dword [rbp + 0x958c], 0
jmp 0x140001839
call sub.msvcrt.dll_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 sub.msvcrt.dll_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 + 0x958c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ef8]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x958c], 1
cmp dword [rbp + 0x958c], 0x148
jle 0x1400017b0
mov dword [rbp + 0x958c], 0
jmp 0x140001965
mov dword [rbp + 0x18c], 0
jmp 0x140001947
mov eax, dword [rbp + 0x958c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ef8]
add rax, rdx
movss xmm0, dword [rax]
mov eax, dword [rbp + 0x18c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ef8]
add rax, rdx
movss xmm1, dword [rax]
comiss xmm0, xmm1
jbe 0x140001940
mov eax, dword [rbp + 0x18c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ef8]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp + 0x188], xmm0
mov eax, dword [rbp + 0x958c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ef8]
add rdx, rax
mov eax, dword [rbp + 0x18c]
cdqe
lea rcx, [rax*4]
mov rax, qword [rbp + 0x5ef8]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp + 0x18c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ef8]
add rax, rdx
movss xmm0, dword [rbp + 0x188]
movss dword [rax], xmm0
add dword [rbp + 0x958c], 1
mov eax, 0x148
sub eax, dword [rbp + 0x958c]
cmp dword [rbp + 0x18c], eax
jl 0x140001867
add dword [rbp + 0x958c], 1
cmp dword [rbp + 0x958c], 0x148
jle 0x140001858
mov rax, qword [rbp + 0x5ef8]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0x3bc
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ef0], rax
mov ecx, 0x3bc
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ee8], rax
mov ecx, 0x3bc
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ee0], rax
mov ecx, 0x3bc
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ed8], rax
mov dword [rbp + 0x9584], 0xee
mov dword [rbp + 0x9588], 0
jmp 0x140001a74
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x9588]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5ef0]
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 sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x9588]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5ee8]
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 + 0x9588], 1
cmp dword [rbp + 0x9588], 0xee
jle 0x1400019e1
mov dword [rbp + 0x9588], 0
jmp 0x140001b13
mov eax, dword [rbp + 0x9584]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ef0]
add rax, rdx
mov edx, dword [rbp + 0x9588]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5ee0]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x9584]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ee8]
add rax, rdx
mov edx, dword [rbp + 0x9588]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5ed8]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x9584], 1
add dword [rbp + 0x9588], 1
cmp dword [rbp + 0x9588], 0xee
jle 0x140001a93
mov rax, qword [rbp + 0x5ef0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5ee8]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5ee0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5ed8]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0x4e8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ed0], rax
mov ecx, 0x4e8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ec8], rax
mov ecx, 0x4e8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ec0], rax
mov ecx, 0x4e8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5eb8], rax
mov dword [rbp + 0x957c], 0x139
mov dword [rbp + 0x9580], 0
jmp 0x140001c4f
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x9580]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5ed0]
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 sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x9580]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5ec8]
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 + 0x9580], 1
cmp dword [rbp + 0x9580], 0x139
jle 0x140001bbc
mov dword [rbp + 0x9580], 0
jmp 0x140001cee
mov eax, dword [rbp + 0x957c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ed0]
add rax, rdx
mov edx, dword [rbp + 0x9580]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5ec0]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x957c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5ec8]
add rax, rdx
mov edx, dword [rbp + 0x9580]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5eb8]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x957c], 1
add dword [rbp + 0x9580], 1
cmp dword [rbp + 0x9580], 0x139
jle 0x140001c6e
mov rax, qword [rbp + 0x5ed0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5ec8]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5ec0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5eb8]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x9578], 0xffffffff
add dword [rbp + 0x9578], 1
call sub.msvcrt.dll_rand
imul eax, eax, 0x1ad
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140084188]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call fcn.14007c760
movq rax, xmm0
mov qword [rbp + 0x5eb0], rax
cmp dword [rbp + 0x9578], 0x105
jle 0x140001d44
mov dword [rbp + 0x9574], 0xffffffff
mov ecx, 0xa90
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ea8], rax
mov ecx, 0xa90
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5ea0], rax
add dword [rbp + 0x9574], 1
call sub.msvcrt.dll_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 sub.msvcrt.dll_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 + 0x9574]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x5ea8]
add rax, rdx
divsd xmm6, xmm1
movupd xmm0, xmm6
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x9574]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x5ea8]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x9574]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x5ea0]
lea rbx, [rcx + rdx]
movq xmm0, rax
call fcn.14007c1c0
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x9574], 0x150
jle 0x140001dbd
mov dword [rbp + 0x5e9c], 0
mov ecx, 0x134
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e90], rax
mov dword [rbp + 0x9570], 0
jmp 0x140001fad
call sub.msvcrt.dll_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 + 0x5e9c], edx
mov edx, dword [rbp + 0x5e9c]
imul edx, edx, 0x190
sub eax, edx
mov dword [rbp + 0x5e9c], eax
cmp dword [rbp + 0x5e9c], 0x168
jle 0x140001f33
mov eax, dword [rbp + 0x9570]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e90]
add rax, rdx
pxor xmm0, xmm0
movss dword [rax], xmm0
jmp 0x140001fa6
cmp dword [rbp + 0x5e9c], 0
jns 0x140001f60
mov eax, dword [rbp + 0x9570]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e90]
add rax, rdx
pxor xmm0, xmm0
movss dword [rax], xmm0
jmp 0x140001fa6
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbp + 0x5e9c]
movsd xmm0, qword [0x140084190]
mulsd xmm0, xmm1
movsd xmm1, qword [0x140084198]
divsd xmm0, xmm1
mov eax, dword [rbp + 0x9570]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e90]
add rax, rdx
cvtsd2ss xmm0, xmm0
movss dword [rax], xmm0
add dword [rbp + 0x9570], 1
cmp dword [rbp + 0x9570], 0x4c
jle 0x140001ecc
mov rax, qword [rbp + 0x5e90]
mov rcx, rax
call sub.msvcrt.dll_free
movsd xmm0, qword [0x1400841a0]
movsd qword [rbp + 0x9568], xmm0
movsd xmm0, qword [0x1400841a8]
movsd qword [rbp + 0x5e88], xmm0
jmp 0x140002014
movsd xmm0, qword [rbp + 0x5e88]
mov rax, qword [rbp + 0x9568]
movupd xmm1, xmm0
movq xmm0, rax
call fcn.14007c930
movq rax, xmm0
mov qword [rbp + 0x9568], rax
movsd xmm0, qword [0x1400841b0]
comisd xmm0, xmmword [rbp + 0x9568]
ja 0x140001feb
mov dword [rbp + 0x9564], 0xffffffff
mov ecx, 0x490
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e80], rax
add dword [rbp + 0x9564], 1
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x9564]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x5e80]
add rax, rdx
movsd xmm1, qword [0x140084188]
divsd xmm0, xmm1
movsd qword [rax], xmm0
call sub.msvcrt.dll_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 + 0x9564]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x5e80]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x9564]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x5e80]
lea rbx, [rcx + rdx]
movupd xmm1, xmm0
movq xmm0, rax
call fcn.14007c660
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x9564], 0x90
jle 0x140002041
mov ecx, 0xb8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e78], rax
mov ecx, 0xb8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e70], rax
mov ecx, 0xb8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e68], rax
mov ecx, 0xb8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e60], rax
mov dword [rbp + 0x955c], 0x2d
mov dword [rbp + 0x9560], 0
jmp 0x1400021fa
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x9560]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5e78]
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 sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x9560]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5e70]
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 + 0x9560], 1
cmp dword [rbp + 0x9560], 0x2d
jle 0x140002167
mov dword [rbp + 0x9560], 0
jmp 0x140002296
mov eax, dword [rbp + 0x955c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e78]
add rax, rdx
mov edx, dword [rbp + 0x9560]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5e68]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x955c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e70]
add rax, rdx
mov edx, dword [rbp + 0x9560]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5e60]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x955c], 1
add dword [rbp + 0x9560], 1
cmp dword [rbp + 0x9560], 0x2d
jle 0x140002216
mov rax, qword [rbp + 0x5e78]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5e70]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5e68]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5e60]
mov rcx, rax
call sub.msvcrt.dll_free
pxor xmm0, xmm0
movss dword [rbp + 0x9554], xmm0
mov dword [rbp + 0x9558], 0
jmp 0x140002370
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbp + 0x9558]
movsd xmm0, qword [0x1400841b8]
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movups xmm1, xmm0
mov eax, dword [0x1400841c0]
movd xmm0, eax
call fcn.14007c010
pxor xmm1, xmm1
cvtss2sd xmm1, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, dword [rbp + 0x9558]
addsd xmm0, xmm0
movsd xmm2, qword [0x1400841b8]
subsd xmm0, xmm2
divsd xmm1, xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [rbp + 0x9554]
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x9554], xmm0
add dword [rbp + 0x9558], 1
cmp dword [rbp + 0x9558], 0x186
jle 0x1400022f7
movss xmm1, dword [rbp + 0x9554]
movss xmm0, dword [0x1400841c4]
mulss xmm0, xmm1
movss dword [rbp + 0x9554], xmm0
mov dword [rbp + 0x9550], 0
jmp 0x1400023e9
call sub.msvcrt.dll_rand
imul eax, eax, 0x363
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140084188]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call fcn.14007c760
movq rax, xmm0
mov qword [rbp + 0x190], rax
add dword [rbp + 0x9550], 1
cmp dword [rbp + 0x9550], 0x15a
jle 0x1400023a8
mov dword [rbp + 0x5e5c], 0
mov dword [rbp + 0x9544], 0
mov ecx, 0x384
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e50], rax
mov dword [rbp + 0x954c], 0
jmp 0x1400024e5
mov dword [rbp + 0x9548], 0
jmp 0x1400024d1
call sub.msvcrt.dll_rand
mov edx, eax
mov eax, dword [rbp + 0x954c]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
sub rax, rcx
shl rax, 2
mov rcx, rax
mov rax, qword [rbp + 0x5e50]
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 + 0x9548]
movsxd rdx, edx
mov dword [r8 + rdx*4], eax
mov eax, dword [rbp + 0x954c]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x5e50]
add rdx, rax
mov eax, dword [rbp + 0x9548]
cdqe
mov eax, dword [rdx + rax*4]
test eax, eax
jne 0x1400024ca
add dword [rbp + 0x9544], 1
add dword [rbp + 0x9548], 1
cmp dword [rbp + 0x9548], 0xe
jle 0x140002438
add dword [rbp + 0x954c], 1
cmp dword [rbp + 0x954c], 0xe
jle 0x140002429
cmp dword [rbp + 0x9544], 0x70
jne 0x140002505
mov dword [rbp + 0x5e5c], 1
mov rax, qword [rbp + 0x5e50]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x9540], 0
jmp 0x14000259d
call sub.msvcrt.dll_rand
mov edx, eax
movsxd rax, edx
imul rax, rax, 0x2aaaaaab
shr rax, 0x20
sar eax, 2
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
mov dword [rbp + 0x1a4], eax
mov ecx, dword [rbp + 0x1a4]
mov eax, ecx
add eax, eax
add eax, ecx
shl eax, 3
sub edx, eax
mov dword [rbp + 0x1a4], edx
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140084188]
divsd xmm0, xmm1
movq rax, xmm0
mov edx, dword [rbp + 0x1a4]
movq xmm0, rax
call fcn.14007c690
movq rax, xmm0
mov qword [rbp + 0x198], rax
add dword [rbp + 0x9540], 1
cmp dword [rbp + 0x9540], 0x2c
jle 0x140002520
mov dword [rbp + 0x953c], 0xffffffff
add dword [rbp + 0x953c], 1
call sub.msvcrt.dll_rand
mov edx, eax
movsxd rax, edx
imul rax, rax, 0x30c30c31
shr rax, 0x20
sar eax, 2
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
mov dword [rbp + 0x5e4c], eax
mov ecx, dword [rbp + 0x5e4c]
mov eax, ecx
shl eax, 2
add eax, ecx
shl eax, 2
add eax, ecx
sub edx, eax
mov dword [rbp + 0x5e4c], edx
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140084188]
divsd xmm0, xmm1
movq rax, xmm0
mov edx, dword [rbp + 0x5e4c]
movq xmm0, rax
call fcn.14007c690
movq rax, xmm0
mov qword [rbp + 0x5e40], rax
cmp dword [rbp + 0x953c], 0x11a
jle 0x1400025b4
mov dword [rbp + 0x9534], 0
mov dword [rbp + 0x5e3c], 0
mov ecx, 0x188
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e30], rax
mov dword [rbp + 0x9538], 0
jmp 0x1400026f1
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x9538]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e30]
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 + 0x9538]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e30]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x9534], eax
add dword [rbp + 0x9538], 1
cmp dword [rbp + 0x9538], 0x61
jle 0x140002675
mov rax, qword [rbp + 0x5e30]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x5e2c], 0
mov ecx, 0x500
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e20], rax
mov dword [rbp + 0x9530], 0
jmp 0x140002818
call sub.msvcrt.dll_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 + 0x5e2c], edx
mov edx, dword [rbp + 0x5e2c]
imul edx, edx, 0x190
sub eax, edx
mov dword [rbp + 0x5e2c], eax
cmp dword [rbp + 0x5e2c], 0x168
jle 0x14000279e
mov eax, dword [rbp + 0x9530]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e20]
add rax, rdx
pxor xmm0, xmm0
movss dword [rax], xmm0
jmp 0x140002811
cmp dword [rbp + 0x5e2c], 0
jns 0x1400027cb
mov eax, dword [rbp + 0x9530]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e20]
add rax, rdx
pxor xmm0, xmm0
movss dword [rax], xmm0
jmp 0x140002811
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbp + 0x5e2c]
movsd xmm0, qword [0x140084190]
mulsd xmm0, xmm1
movsd xmm1, qword [0x140084198]
divsd xmm0, xmm1
mov eax, dword [rbp + 0x9530]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e20]
add rax, rdx
cvtsd2ss xmm0, xmm0
movss dword [rax], xmm0
add dword [rbp + 0x9530], 1
cmp dword [rbp + 0x9530], 0x13f
jle 0x140002737
mov rax, qword [rbp + 0x5e20]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0x20c
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e18], rax
mov ecx, 0x20c
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5e10], rax
mov dword [rbp + 0x9528], 0x82
mov dword [rbp + 0x952c], 0
jmp 0x1400028ff
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x952c]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5e18]
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 + 0x9528]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5e18]
add rax, rdx
mov edx, dword [rbp + 0x952c]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x5e10]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x9528], 1
add dword [rbp + 0x952c], 1
cmp dword [rbp + 0x952c], 0x82
jle 0x140002872
mov rax, qword [rbp + 0x5e18]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5e10]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x9524], 0xffffffff
add dword [rbp + 0x9524], 1
call sub.msvcrt.dll_rand
imul eax, eax, 0x35c
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140084188]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call fcn.14007c760
movq rax, xmm0
mov qword [rbp + 0x5e08], rax
cmp dword [rbp + 0x9524], 0x57
jle 0x140002937
mov dword [rbp + 0x9518], 0
mov dword [rbp + 0x5e04], 0xaf
mov dword [rbp + 0x5e00], 0x57
mov eax, dword [rbp + 0x5e04]
add eax, 1
cdqe
shl rax, 2
mov rcx, rax
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5df8], rax
mov dword [rbp + 0x9520], 0
jmp 0x1400029f2
mov eax, dword [rbp + 0x9520]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5df8]
add rdx, rax
mov eax, dword [rbp + 0x9520]
mov dword [rdx], eax
add dword [rbp + 0x9520], 1
mov eax, dword [rbp + 0x9520]
cmp eax, dword [rbp + 0x5e00]
jl 0x1400029c9
mov dword [rbp + 0x9520], 1
jmp 0x140002a88
mov eax, dword [rbp + 0x9520]
mov dword [rbp + 0x951c], eax
jmp 0x140002a5b
mov edx, dword [rbp + 0x9520]
mov eax, dword [rbp + 0x951c]
add edx, eax
mov eax, dword [rbp + 0x9520]
add eax, eax
add edx, eax
mov eax, dword [rbp + 0x951c]
add eax, edx
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5df8]
add rax, rdx
mov dword [rax], 0
add dword [rbp + 0x951c], 1
mov eax, dword [rbp + 0x5e00]
sub eax, dword [rbp + 0x9520]
mov edx, dword [rbp + 0x9520]
add edx, edx
lea ebx, [rdx + 1]
mov dword [rbp - 0x34], ebx
cdq
idiv dword [rbp - 0x34]
cmp dword [rbp + 0x951c], eax
jle 0x140002a1a
add dword [rbp + 0x9520], 1
mov eax, dword [rbp + 0x9520]
cmp eax, dword [rbp + 0x5e00]
jl 0x140002a0c
cmp dword [rbp + 0x5e04], 2
jle 0x140002acc
mov eax, dword [rbp + 0x9518]
lea edx, [rax + 1]
mov dword [rbp + 0x9518], edx
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5df8]
add rax, rdx
mov dword [rax], 2
mov dword [rbp + 0x9520], 1
jmp 0x140002b30
mov eax, dword [rbp + 0x9520]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5df8]
add rax, rdx
mov eax, dword [rax]
test eax, eax
je 0x140002b29
mov eax, dword [rbp + 0x9520]
lea ecx, [rax + rax]
mov eax, dword [rbp + 0x9518]
lea edx, [rax + 1]
mov dword [rbp + 0x9518], edx
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5df8]
add rax, rdx
lea edx, [rcx + 1]
mov dword [rax], edx
add dword [rbp + 0x9520], 1
mov eax, dword [rbp + 0x9520]
cmp eax, dword [rbp + 0x5e00]
jl 0x140002ad8
mov dword [rbp + 0x5df4], 2
mov dword [rbp + 0x9514], 0
mov dword [rbp + 0x9520], 0
jmp 0x140002b8c
mov eax, dword [rbp + 0x9520]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5df8]
add rax, rdx
mov eax, dword [rax]
test eax, eax
je 0x140002b85
add dword [rbp + 0x9514], 1
add dword [rbp + 0x9520], 1
mov eax, dword [rbp + 0x9520]
cmp eax, dword [rbp + 0x5df4]
jl 0x140002b5e
mov rax, qword [rbp + 0x5df8]
mov rcx, rax
call sub.msvcrt.dll_free
mov qword [rbp + 0x9508], 0
mov dword [rbp + 0x5df0], 0x3d
mov dword [rbp + 0x9510], 1
jmp 0x140002be0
mov eax, dword [rbp + 0x9510]
cdqe
add qword [rbp + 0x9508], rax
add dword [rbp + 0x9510], 1
mov eax, dword [rbp + 0x9510]
cmp eax, dword [rbp + 0x5df0]
jle 0x140002bca
mov ecx, 0x258
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5de8], rax
mov ecx, 0x258
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5de0], rax
mov ecx, 0x258
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5dd8], rax
mov dword [rbp + 0x9504], 0
jmp 0x140002d1a
mov dword [rbp + 0x9500], 0
jmp 0x140002d06
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 7
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x7d0
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0x9504]
movsxd rcx, eax
mov rax, rcx
shl rax, 2
add rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x5de8]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x9500]
cdqe
movss dword [rcx + rax*4], xmm0
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0x10624dd3
shr rdx, 0x20
sar edx, 7
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x7d0
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0x9504]
movsxd rcx, eax
mov rax, rcx
shl rax, 2
add rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x5de0]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x9500]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x9500], 1
cmp dword [rbp + 0x9500], 9
jle 0x140002c3f
add dword [rbp + 0x9504], 1
cmp dword [rbp + 0x9504], 0xe
jle 0x140002c30
mov dword [rbp + 0x9504], 0
jmp 0x140002df7
mov dword [rbp + 0x9500], 0
jmp 0x140002de3
mov eax, dword [rbp + 0x9504]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x5de8]
add rdx, rax
mov eax, dword [rbp + 0x9500]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x9504]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x5de0]
add rdx, rax
mov eax, dword [rbp + 0x9500]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0x9504]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x5dd8]
add rdx, rax
subss xmm0, xmm1
mov eax, dword [rbp + 0x9500]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x9500], 1
cmp dword [rbp + 0x9500], 9
jle 0x140002d45
add dword [rbp + 0x9504], 1
cmp dword [rbp + 0x9504], 0xe
jle 0x140002d36
mov rax, qword [rbp + 0x5de8]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5de0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x5dd8]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x94fc], 0x12c
mov ecx, 0xb70
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5dd0], rax
mov ecx, 0xb70
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5dc8], rax
mov dword [rbp + 0x94f8], 0
jmp 0x140002ef6
call sub.msvcrt.dll_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 sub.msvcrt.dll_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 + 0x94f8]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x5dd0]
add rax, rdx
divsd xmm6, xmm1
movupd xmm0, xmm6
movsd qword [rax], xmm0
add dword [rbp + 0x94f8], 1
cmp dword [rbp + 0x94f8], 0x16d
jle 0x140002e6c
mov dword [rbp + 0x94f8], 0
jmp 0x140002f64
mov eax, dword [rbp + 0x94f8]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x5dd0]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x94f8]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x5dc8]
lea rbx, [rcx + rdx]
movq xmm0, rax
call fcn.14007c4b0
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x94f8], 1
cmp dword [rbp + 0x94f8], 0x16d
jle 0x140002f12
mov ecx, 0x90
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5dc0], rax
mov dword [rbp + 0x94f4], 0
jmp 0x140003017
call sub.msvcrt.dll_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 sub.msvcrt.dll_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 + 0x94f4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5dc0]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x94f4], 1
cmp dword [rbp + 0x94f4], 0x23
jle 0x140002f90
mov dword [rbp + 0x94f4], 0
jmp 0x140003118
cmp dword [rbp + 0x94f4], 0
je 0x14000307d
mov eax, dword [rbp + 0x94f4]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x5dc0]
add rax, rdx
movss xmm1, dword [rax]
mov eax, dword [rbp + 0x94f4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5dc0]
add rax, rdx
movss xmm0, dword [rax]
comiss xmm0, xmm1
jb 0x140003089
add dword [rbp + 0x94f4], 1
jmp 0x140003118
mov eax, dword [rbp + 0x94f4]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x5dc0]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp + 0x1a8], xmm0
mov eax, dword [rbp + 0x94f4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5dc0]
add rdx, rax
mov eax, dword [rbp + 0x94f4]
cdqe
shl rax, 2
lea rcx, [rax - 4]
mov rax, qword [rbp + 0x5dc0]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp + 0x94f4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x5dc0]
add rax, rdx
movss xmm0, dword [rbp + 0x1a8]
movss dword [rax], xmm0
sub dword [rbp + 0x94f4], 1
cmp dword [rbp + 0x94f4], 0x23
jle 0x140003033
mov rax, qword [rbp + 0x5dc0]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x94e8], 0
mov ecx, 0x924
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5db8], rax
mov dword [rbp + 0x94f0], 0
jmp 0x1400031d3
mov dword [rbp + 0x94ec], 0
jmp 0x1400031c3
cmp dword [rbp + 0x94ec], 0x26
jle 0x140003167
cmp dword [rbp + 0x94f0], 0xe
jle 0x14000315b
mov dword [rbp + 0x94f0], 0
jmp 0x14000324f
cmp dword [rbp + 0x94f0], 0xe
jle 0x1400031ec