Function at 0x1800bf9c0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x14a0
call fcn.1800dead0
sub rsp, rax
movaps xmmword [rsp + 0x1490], xmm6
mov rax, qword [0x180394058]
xor rax, rsp
mov qword [rsp + 0x1480], rax
mov r15, r8
mov rbx, rcx
mov qword [rsp + 0xb8], rdx
xor r13d, r13d
mov eax, r13d
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x40], rax
mov rcx, qword [0x180396448]
call fcn.1800c36b0
mov r14, rax
mov rdx, qword [str.io.print]
add rbx, 0x10
mov rsi, 0xffffffffffffffff
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800bfa47
mov rdi, qword [rbx + 0x10]
mov rcx, rbx
mov r12, qword [rbx + 0x18]
cmp r12, 0x10
jb 0x1800bfa64
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800bfab9
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800bfab9
mov rax, qword [rsp + 0xb8]
mov rdi, qword [rax + 0x38]
mov rbx, qword [rax + 0x30]
cmp rbx, rdi
je 0x1800c22fc
nop
mov rdx, r15
mov rcx, qword [rbx]
call fcn.1800cb9c0
lea r8, [rsp + 0xc0]
mov rdx, rax
call fcn.1800c2430
add rbx, 8
cmp rbx, rdi
jne 0x1800bfa90
jmp 0x1800c22fc
mov rdx, qword [str.io.printRaw]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800bfac3
mov rcx, rbx
cmp r12, 0x10
jb 0x1800bfad8
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800bfb2d
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800bfb2d
mov rax, qword [rsp + 0xb8]
mov rdi, qword [rax + 0x38]
mov rbx, qword [rax + 0x30]
cmp rbx, rdi
je 0x1800c22fc
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rbx]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.1800b81e0
add rbx, 8
cmp rbx, rdi
jne 0x1800bfb10
jmp 0x1800c22fc
mov rdx, qword [str.io.input]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800bfb37
mov rcx, rbx
cmp r12, 0x10
jb 0x1800bfb4c
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800bfc0c
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800bfc0c
xorps xmm0, xmm0
movups xmmword [rsp + 0xc8], xmm0
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xe0], 0xf
mov byte [rsp + 0xc8], r13b
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rsp + 0xc8]
mov rcx, rbx
call fcn.1800c4050
call fcn.1800c3760
mov r14, rax
lea rcx, [rax + 0x10]
lea rax, [rsp + 0xc8]
cmp rcx, rax
je 0x1800bfbfa
lea rdx, [rsp + 0xc8]
cmp qword [rsp + 0xe0], 0x10
cmovae rdx, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xd8]
call fcn.180075700
nop
lea rcx, [rsp + 0xc8]
call fcn.180005100
jmp 0x1800c22fc
mov rdx, qword [str.math.floor]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800bfc16
mov rcx, rbx
cmp r12, 0x10
jb 0x1800bfc2b
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800bfca7
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800bfca7
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.ceil]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800bfcb1
mov rcx, rbx
cmp r12, 0x10
jb 0x1800bfcc6
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800bfd42
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800bfd42
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.round]
mov rax, rsi
nop dword [rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800bfd50
mov rcx, rbx
cmp r12, 0x10
jb 0x1800bfd65
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800bfde2
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800bfde2
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_round]
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.num]
mov rax, rsi
nop dword [rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800bfdf0
mov rcx, rbx
cmp r12, 0x10
jb 0x1800bfe05
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800bfed7
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800bfed7
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov edx, dword [rax + 8]
sub edx, 1
je 0x1800bfea2
cmp edx, 2
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
mov qword [rax + 0x10], r13
mov qword [rsp + 0x40], rax
lea rcx, [rbx + 0x10]
call fcn.1800bc810
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
mov rax, qword [rbx + 0x10]
mov qword [r14 + 0x10], rax
jmp 0x1800c22fc
mov rdx, qword [str.math.bool]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800bfee1
mov rcx, rbx
cmp r12, 0x10
jb 0x1800bfef6
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800bfff8
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800bfff8
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov edx, dword [rax + 8]
sub edx, 1
je 0x1800bffb1
cmp edx, 2
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
mov rcx, qword [0x180396448]
call fcn.1800c3880
mov r14, rax
lea rcx, [rbx + 0x10]
mov r8, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x1800bff85
mov rcx, qword [rcx]
cmp r8, 4
jne 0x1800bffa6
lea rdx, str.true
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800bffa6
mov al, 1
mov byte [r14 + 0x10], al
jmp 0x1800c22fc
xor al, al
mov byte [r14 + 0x10], al
jmp 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
mov rcx, qword [0x180396448]
call fcn.1800c3880
mov r14, rax
movsd xmm1, qword [rbx + 0x10]
xorps xmm0, xmm0
comisd xmm1, xmm0
seta al
mov byte [r14 + 0x10], al
jmp 0x1800c22fc
mov rdx, qword [str.math.str]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0002
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0017
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c015a
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c015a
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov edx, dword [rax + 8]
sub edx, 1
je 0x1800c00bd
cmp edx, 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3760
mov r14, rax
lea rax, str.true
lea rdx, str.false
cmp byte [rbx + 0x10], r13b
cmovne rdx, rax
inc rsi
cmp byte [rdx + rsi], r13b
jne 0x1800c00a3
mov r8, rsi
lea rcx, [r14 + 0x10]
call fcn.180075700
jmp 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3760
mov r14, rax
movsd xmm6, qword [rbx + 0x10]
movaps xmm1, xmm6
movq rdx, xmm6
lea rcx, [0x18036fc2c]
call fcn.18008c810
movsxd rbx, eax
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.18007a830
lea rcx, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rcx, qword [rsp + 0x70]
lea rdx, [rbx + 1]
movaps xmm3, xmm6
movq r9, xmm6
lea r8, [0x18036fc2c]
call fcn.18008c7b0
lea rcx, [r14 + 0x10]
lea rdx, [rsp + 0x70]
call fcn.1800048f0
lea rcx, [rsp + 0x70]
call fcn.180005100
jmp 0x1800c22fc
mov rdx, qword [str.math.pow]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0164
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0179
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c024a
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c024a
lea edx, [rax + 2]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rdi, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rbx, rax
cmp dword [rdi + 8], 1
jne 0x1800c22fc
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm1, qword [rbx + 0x10]
movsd xmm0, qword [rdi + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.sqrt]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0254
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0269
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c0307
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c0307
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
xorps xmm0, xmm0
movsd xmm1, qword [rbx + 0x10]
ucomisd xmm0, xmm1
ja 0x1800c02f4
sqrtpd xmm0, xmm1
movsd qword [rax + 0x10], xmm0
jmp 0x1800c22fc
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.str.len]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0311
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0326
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c040a
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c040a
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov ecx, dword [rax + 8]
cmp ecx, 3
jne 0x1800c0396
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov rcx, qword [rbx + 0x20]
jmp 0x1800c03d0
cmp ecx, 4
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov rcx, qword [rbx + 0x18]
sub rcx, qword [rbx + 0x10]
sar rcx, 3
mov r14, rax
xorps xmm0, xmm0
test rcx, rcx
js 0x1800c03ea
cvtsi2sd xmm0, rcx
movsd qword [rax + 0x10], xmm0
jmp 0x1800c22fc
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.array.append]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0414
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0429
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c0554
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c0554
lea edx, [rax + 2]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rbx, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rdi, rax
mov qword [rsp + 0x40], rax
mov eax, dword [rbx + 8]
cmp eax, 3
jne 0x1800c04fe
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rsi, rax
cmp dword [rdi + 8], 3
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
add rax, 0x10
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1800c04ea
mov rax, qword [rax]
lea rcx, [rsi + 0x10]
mov rdx, rax
call fcn.180005160
mov r14, rbx
jmp 0x1800c22fc
cmp eax, 4
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdx, qword [rax + 0x18]
cmp rdx, qword [rax + 0x20]
je 0x1800c053e
mov qword [rdx], rdi
add qword [rax + 0x18], 8
mov r14, rbx
jmp 0x1800c22fc
lea r8, [rsp + 0x40]
lea rcx, [rax + 0x10]
call fcn.180008580
mov r14, rbx
jmp 0x1800c22fc
mov rdx, qword [str.array.at]
mov rax, rsi
nop
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0560
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0575
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c0727
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c0727
lea edx, [rax + 2]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rdi, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rbx, rax
mov eax, dword [rdi + 8]
cmp eax, 3
jne 0x1800c0696
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
cmp dword [rbx + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3760
mov r14, rax
lea rcx, [rdi + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x1800c063c
mov rcx, qword [rcx]
xor edx, edx
movsd xmm0, qword [rbx + 0x10]
movsd xmm1, qword [0x180379d70]
comisd xmm0, xmm1
jb 0x1800c0668
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x1800c0668
movabs rax, 0x8000000000000000
mov rdx, rax
cvttsd2si rax, xmm0
add rax, rdx
movzx edx, byte [rax + rcx]
lea rax, [r14 + 0x10]
mov ebx, 1
mov qword [rax + 0x10], rbx
cmp qword [rax + 0x18], 0x10
jb 0x1800c068b
mov rax, qword [rax]
mov byte [rax], dl
mov byte [rax + 1], r13b
jmp 0x1800c22fc
cmp eax, 4
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
cmp dword [rbx + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
xor edx, edx
movsd xmm0, qword [rax + 0x10]
movsd xmm1, qword [0x180379d70]
comisd xmm0, xmm1
jb 0x1800c0712
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x1800c0712
movabs rax, 0x8000000000000000
mov rdx, rax
cvttsd2si rcx, xmm0
add rcx, rdx
mov rax, qword [rdi + 0x10]
mov rax, qword [rax + rcx*8]
jmp 0x1800c22ff
mov rdx, qword [str.array.set]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0731
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0746
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c099b
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c099b
lea edx, [rax + 3]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rcx, qword [rcx]
cmp dword [rcx + 8], 9
jne 0x1800c07d2
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
call sub.VCRUNTIME140.dll___RTDynamicCast
lea rbx, [rax + 0x10]
mov rdx, rbx
mov rcx, r15
call fcn.1800cce30
lea rcx, [rax + 8]
mov r8, rbx
lea rdx, [rsp + 0x70]
call fcn.1800ccfc0
mov rcx, qword [rax]
cmp byte [rcx + 0x30], r13b
je 0x1800c07d2
xor r8d, r8d
mov rdx, rbx
mov rcx, r15
call fcn.1800ccd90
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rdi, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rbx, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 0x10]
call fcn.1800cb9c0
mov rsi, rax
mov eax, dword [rdi + 8]
cmp eax, 3
jne 0x1800c08fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
cmp dword [rbx + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
cmp dword [rsi + 8], 3
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rsi
call sub.VCRUNTIME140.dll___RTDynamicCast
add rax, 0x10
cmp qword [rax + 0x18], 0x10
jb 0x1800c08ad
mov rax, qword [rax]
movzx r8d, byte [rax]
lea rcx, [rdi + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x1800c08bf
mov rcx, qword [rcx]
xor edx, edx
movsd xmm0, qword [rbx + 0x10]
movsd xmm1, qword [0x180379d70]
comisd xmm0, xmm1
jb 0x1800c08eb
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x1800c08eb
movabs rax, 0x8000000000000000
mov rdx, rax
cvttsd2si rax, xmm0
add rax, rdx
mov byte [rax + rcx], r8b
jmp 0x1800c22fc
cmp eax, 4
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
cmp dword [rbx + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
mov rcx, rsi
call fcn.1800cd4d0
mov r8, rax
xor edx, edx
movsd xmm0, qword [rbx + 0x10]
movsd xmm1, qword [0x180379d70]
comisd xmm0, xmm1
jb 0x1800c0986
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x1800c0986
movabs rax, 0x8000000000000000
mov rdx, rax
cvttsd2si rcx, xmm0
add rcx, rdx
mov rax, qword [rdi + 0x10]
mov qword [rax + rcx*8], r8
jmp 0x1800c22fc
mov rdx, qword [str.array.pop]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c09a5
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c09ba
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c0bcd
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c0bcd
lea edx, [rax + 2]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rcx, qword [rcx]
cmp dword [rcx + 8], 9
jne 0x1800c0a46
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
call sub.VCRUNTIME140.dll___RTDynamicCast
lea rbx, [rax + 0x10]
mov rdx, rbx
mov rcx, r15
call fcn.1800cce30
lea rcx, [rax + 8]
mov r8, rbx
lea rdx, [rsp + 0x70]
call fcn.1800ccfc0
mov rcx, qword [rax]
cmp byte [rcx + 0x30], r13b
je 0x1800c0a46
xor r8d, r8d
mov rdx, rbx
mov rcx, r15
call fcn.1800ccd90
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rdi, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rbx, rax
mov eax, dword [rdi + 8]
cmp eax, 3
jne 0x1800c0b50
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
cmp dword [rbx + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
cvttsd2si ebx, qword [rax + 0x10]
call fcn.1800c3760
mov r14, rax
lea rcx, [rdi + 0x10]
mov rax, rcx
cmp qword [rcx + 0x18], 0x10
jb 0x1800c0aec
mov rax, qword [rcx]
movsxd rdx, ebx
movzx r8d, byte [rax + rdx]
lea rax, [r14 + 0x10]
mov ebx, 1
mov qword [rax + 0x10], rbx
cmp qword [rax + 0x18], 0x10
jb 0x1800c0b0b
mov rax, qword [rax]
mov byte [rax], r8b
mov byte [rax + 1], r13b
lea rsi, [rcx + 0x10]
mov rdi, qword [rsi]
mov rax, rdi
sub rax, rdx
cmp qword [rcx + 0x18], 0x10
jb 0x1800c0b29
mov rcx, qword [rcx]
cmp rax, rbx
cmovb rbx, rax
add rcx, rdx
sub rdi, rbx
mov r8, rdi
sub r8, rdx
inc r8
lea rdx, [rcx + rbx]
call sub.VCRUNTIME140.dll_memmove
mov qword [rsi], rdi
jmp 0x1800c22fc
cmp eax, 4
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
cmp dword [rbx + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
cvttsd2si ecx, qword [rax + 0x10]
movsxd rdx, ecx
mov rcx, qword [rdi + 0x10]
lea rcx, [rcx + rdx*8]
mov r14, qword [rcx]
mov r8, qword [rdi + 0x18]
lea rdx, [rcx + 8]
sub r8, rdx
call sub.VCRUNTIME140.dll_memmove
add qword [rdi + 0x18], 0xfffffffffffffff8
jmp 0x1800c22fc
mov rdx, qword [str.math.abs]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0bd7
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0bec
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c0c61
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c0c61
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
movsd xmm0, qword [rbx + 0x10]
andps xmm0, xmmword [0x18037a040]
jmp 0x1800c22f4
mov rdx, qword [str.math.max]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0c70
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0c85
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c0d5c
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c0d5c
lea edx, [rax + 2]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rdi, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rbx, rax
cmp dword [rdi + 8], 1
jne 0x1800c22fc
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
add rbx, 0x10
lea rax, [rdi + 0x10]
movsd xmm0, qword [rbx]
comisd xmm0, xmmword [rax]
cmova rax, rbx
mov rax, qword [rax]
mov qword [r14 + 0x10], rax
jmp 0x1800c22fc
mov rdx, qword [str.math.min]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0d66
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0d7b
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c0e52
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c0e52
lea edx, [rax + 2]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rdi, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rbx, rax
cmp dword [rdi + 8], 1
jne 0x1800c22fc
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
add rbx, 0x10
lea rax, [rdi + 0x10]
movsd xmm0, qword [rax]
comisd xmm0, xmmword [rbx]
cmova rax, rbx
mov rax, qword [rax]
mov qword [r14 + 0x10], rax
jmp 0x1800c22fc
mov rdx, qword [str.math.sin]
mov rax, rsi
nop dword [rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0e60
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0e75
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c0ef1
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c0ef1
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.cos]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0f00
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0f15
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c0f91
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c0f91
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.tan]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c0fa0
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c0fb5
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c1031
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c1031
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_tan
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.asin]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1040
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1055
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c10d1
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c10d1
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_asin
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.acos]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c10e0
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c10f5
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c1171
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c1171
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_acos
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.atan]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1180
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1195
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c1211
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c1211
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_atan
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.exp]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1220
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1235
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c12b1
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c12b1
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_exp
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.log]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c12c0
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c12d5
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c1351
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c1351
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_log
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.log10]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1360
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1375
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c13f1
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c13f1
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
mov r14, rax
movsd xmm0, qword [rbx + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_log10
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.random]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1400
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1415
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c145b
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c145b
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.1800c2340
call fcn.1800c3800
mov r14, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x180379d00]
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.math.randInt]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1465
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c147a
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c155a
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c155a
lea edx, [rax + 2]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rbx, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rdi, rax
cmp dword [rbx + 8], 1
jne 0x1800c22fc
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
cvttsd2si edi, qword [rbx + 0x10]
cvttsd2si ebx, qword [rax + 0x10]
call fcn.1800c3800
mov r14, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
sub ebx, edi
inc ebx
cdq
idiv ebx
add edx, edi
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movsd qword [r14 + 0x10], xmm0
jmp 0x1800c22fc
mov rdx, qword [str.array.slice]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1564
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1579
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c178a
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c178a
lea edx, [rax + 3]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rdi, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rbx, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 0x10]
call fcn.1800cb9c0
mov r15, rax
mov eax, dword [rdi + 8]
cmp eax, 3
jne 0x1800c16c6
cmp dword [rbx + 8], 1
jne 0x1800c22fc
cmp dword [r15 + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, r15
call sub.VCRUNTIME140.dll___RTDynamicCast
cvttsd2si esi, qword [rbx + 0x10]
cvttsd2si ebx, qword [rax + 0x10]
call fcn.1800c3760
mov r14, rax
add rdi, 0x10
movsxd rcx, esi
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x58], xmm1
mov rax, qword [rdi + 0x10]
cmp rax, rcx
jb 0x1800c2331
sub ebx, esi
movsxd r8, ebx
sub rax, rcx
cmp rax, r8
cmovb r8, rax
cmp qword [rdi + 0x18], 0x10
jb 0x1800c16bd
mov rdi, qword [rdi]
lea rdx, [rdi + rcx]
jmp 0x1800c1d7e
cmp eax, 4
jne 0x1800c22fc
cmp dword [rbx + 8], 1
jne 0x1800c22fc
cmp dword [r15 + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rsi, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, r15
call sub.VCRUNTIME140.dll___RTDynamicCast
cvttsd2si edi, qword [rbx + 0x10]
cvttsd2si ebx, qword [rax + 0x10]
call fcn.1800c38f0
mov r14, rax
mov rcx, qword [rsi + 0x10]
movsxd rax, ebx
lea r8, [rcx + rax*8]
movsxd rax, edi
lea rdx, [rcx + rax*8]
lea rcx, [rsp + 0x70]
call fcn.1800c3980
lea rcx, [r14 + 0x10]
mov rdx, rax
call fcn.1800c3320
lea rcx, [rsp + 0x70]
call fcn.1800047c0
jmp 0x1800c22fc
mov rdx, qword [str.array.replace]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1794
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c17a9
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c1953
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c1953
lea edx, [rax + 3]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rdi, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rbx, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 0x10]
call fcn.1800cb9c0
mov rsi, rax
cmp dword [rdi + 8], 3
jne 0x1800c22fc
cmp dword [rbx + 8], 3
jne 0x1800c22fc
cmp dword [rax + 8], 3
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rsi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rsi, rax
call fcn.1800c3760
mov r14, rax
lea rdx, [rbx + 0x10]
lea rcx, [rsp + 0x90]
call fcn.1800c3a70
mov rdx, rax
add rdi, 0x10
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
movdqa xmm1, xmmword [0x180379e70]
movdqu xmmword [rsp + 0x58], xmm1
mov byte [rsp + 0x48], 0
mov dword [rsp + 0x40], 0x800
cmp qword [rdi + 0x18], 0x10
jb 0x1800c18f3
mov r9, qword [rdi]
mov r8, r9
add r9, qword [rdi + 0x10]
jmp 0x1800c18fd
mov r9, qword [rdi + 0x10]
add r9, rdi
mov r8, rdi
lea rax, [rsi + 0x10]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x70]
call fcn.1800c47c0
lea rcx, [r14 + 0x10]
lea rdx, [rsp + 0x48]
call fcn.1800048f0
nop
lea rcx, [rsp + 0x48]
call fcn.180005100
nop
lea rcx, [rsp + 0x90]
call fcn.1800c3440
lea rcx, [rsp + 0x98]
call fcn.1800c33c0
jmp 0x1800c22fc
mov rdx, qword [str.array.split]
mov rax, rsi
nop dword [rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1960
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1975
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c1bc6
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c1bc6
lea edx, [rax + 2]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rbx, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rdi, rax
cmp dword [rbx + 8], 3
jne 0x1800c22fc
cmp dword [rax + 8], 3
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov r15, rax
call fcn.1800c38f0
mov r14, rax
mov rdi, r13
add rbx, 0x10
nop dword [rax]
nop word [rax + rax]
mov r8, qword [r15 + 0x20]
lea r9, [r15 + 0x10]
cmp qword [r15 + 0x28], 0x10
jb 0x1800c1a53
mov r9, qword [r15 + 0x10]
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1800c1a60
mov rcx, qword [rbx]
mov qword [rsp + 0x20], r8
mov r8, rdi
mov rdx, qword [rbx + 0x10]
call fcn.180070010
mov r12, rax
cmp rax, rsi
je 0x1800c1b34
call fcn.1800c3760
mov r13, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xor eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov rcx, qword [rbx + 0x10]
cmp rcx, rdi
jb 0x1800c2331
mov r8, r12
sub r8, rdi
sub rcx, rdi
cmp rcx, r8
cmovb r8, rcx
mov rax, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1800c1ac3
mov rax, qword [rbx]
lea rdx, [rax + rdi]
lea rcx, [rsp + 0x48]
call fcn.1800077c0
or dword [rsp + 0x68], 0x1000
lea rcx, [r13 + 0x10]
lea rdx, [rsp + 0x48]
call fcn.1800048f0
lea rcx, [rsp + 0x48]
call fcn.180005100
lea rcx, [r14 + 0x10]
mov qword [rsp + 0x40], r13
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x1800c1b1b
mov qword [rdx], r13
add qword [rcx + 8], 8
mov rax, r15
mov rdi, qword [rax + 0x20]
add rdi, r12
jmp 0x1800c1a40
lea r8, [rsp + 0x40]
call fcn.180008580
mov rax, r15
mov rdi, qword [rax + 0x20]
add rdi, r12
jmp 0x1800c1a40
call fcn.1800c3760
mov r15, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x58], xmm1
mov rcx, qword [rbx + 0x10]
cmp rcx, rdi
jb 0x1800c2331
sub rcx, rdi
cmp rcx, rsi
cmovb rsi, rcx
cmp qword [rbx + 0x18], 0x10
jb 0x1800c1b6e
mov rbx, qword [rbx]
lea rdx, [rbx + rdi]
mov r8, rsi
lea rcx, [rsp + 0x48]
call fcn.1800077c0
lea rcx, [r15 + 0x10]
lea rdx, [rsp + 0x48]
call fcn.1800048f0
lea rcx, [rsp + 0x48]
call fcn.180005100
lea rcx, [r14 + 0x10]
mov qword [rsp + 0x70], r15
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x1800c1bb7
mov qword [rdx], r15
add qword [rcx + 8], 8
jmp 0x1800c22fc
lea r8, [rsp + 0x70]
call fcn.180008580
jmp 0x1800c22fc
mov rdx, qword [str.str.substring]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1bd0
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1be5
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c1da5
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c1da5
lea edx, [rax + 3]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rdi, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rbx, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 0x10]
call fcn.1800cb9c0
mov rsi, rax
cmp dword [rdi + 8], 3
jne 0x1800c22fc
cmp dword [rbx + 8], 1
jne 0x1800c22fc
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov r15, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rsi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3760
mov r14, rax
add rdi, 0x10
xor ecx, ecx
movsd xmm1, qword [rbx + 0x10]
movsd xmm0, qword [0x180379d70]
comisd xmm1, xmm0
jb 0x1800c1d13
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x1800c1d13
movabs rax, 0x8000000000000000
mov rcx, rax
jmp 0x1800c1d1d
movabs rax, 0x8000000000000000
cvttsd2si r8, xmm1
add r8, rcx
xor ecx, ecx
movsd xmm1, qword [r15 + 0x10]
comisd xmm1, xmm0
jb 0x1800c1d40
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x1800c1d40
mov rcx, rax
cvttsd2si rax, xmm1
add rax, rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x58], xmm1
mov rcx, qword [rdi + 0x10]
cmp rcx, rax
jb 0x1800c2331
sub rcx, rax
cmp rcx, r8
cmovb r8, rcx
cmp qword [rdi + 0x18], 0x10
jb 0x1800c1d7a
mov rdi, qword [rdi]
lea rdx, [rdi + rax]
lea rcx, [rsp + 0x48]
call fcn.1800077c0
lea rcx, [r14 + 0x10]
lea rdx, [rsp + 0x48]
call fcn.1800048f0
lea rcx, [rsp + 0x48]
call fcn.180005100
jmp 0x1800c22fc
mov rdx, qword [str.str.charAt]
mov rax, rsi
nop
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1db0
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1dc5
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c1ee4
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c1ee4
lea edx, [rax + 2]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov rbx, rax
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x30]
mov rdx, r15
mov rcx, qword [rcx + 8]
call fcn.1800cb9c0
mov rdi, rax
cmp dword [rbx + 8], 3
jne 0x1800c22fc
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rdi, rax
call fcn.1800c3760
mov r14, rax
add rbx, 0x10
cmp qword [rbx + 0x18], 0x10
jb 0x1800c1e8a
mov rbx, qword [rbx]
xor ecx, ecx
movsd xmm0, qword [rdi + 0x10]
movsd xmm1, qword [0x180379d70]
comisd xmm0, xmm1
jb 0x1800c1eb6
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x1800c1eb6
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm0
add rax, rcx
movzx ecx, byte [rax + rbx]
lea rax, [r14 + 0x10]
mov ebx, 1
mov qword [rax + 0x10], rbx
cmp qword [rax + 0x18], 0x10
jb 0x1800c1ed9
mov rax, qword [rax]
mov byte [rax], cl
mov byte [rax + 1], r13b
jmp 0x1800c22fc
mov rdx, qword [str.str.reverse]
mov rax, rsi
nop
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1ef0
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c1f05
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c1fe4
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c1fe4
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
mov ecx, dword [rax + 8]
cmp ecx, 3
jne 0x1800c1fa9
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov r14, rax
lea rdx, [rax + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x1800c1f8f
mov r9, qword [rdx]
mov r8, r9
add r9, qword [rdx + 0x10]
mov rdx, r9
mov rcx, r8
call fcn.1800dd710
jmp 0x1800c22fc
mov r9, qword [rdx + 0x10]
add r9, rdx
mov r8, rdx
mov rdx, r9
mov rcx, r8
call fcn.1800dd710
jmp 0x1800c22fc
cmp ecx, 4
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov r14, rax
mov rdx, qword [rax + 0x18]
mov rcx, qword [rax + 0x10]
call fcn.1800dd800
jmp 0x1800c22fc
mov rdx, qword [str.array.sort]
mov rax, rsi
nop
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c1ff0
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c2005
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c2089
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c2089
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 4
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov r14, rax
mov rdx, qword [rax + 0x18]
mov rcx, qword [rax + 0x10]
mov r8, rdx
sub r8, rcx
sar r8, 3
movzx r9d, byte [rsp + 0xc0]
call fcn.1800c41f0
jmp 0x1800c22fc
mov rdx, qword [str.array.shuffle]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c2093
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c20a8
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c2177
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c2177
mov ebx, 1
mov edx, ebx
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 4
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov r14, rax
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rsp + 0x1474], 0xffffffff
mov dword [rsp + 0xf4], eax
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, ebx
mov dword [rsp + rbx*4 + 0xf4], eax
inc rbx
cmp rbx, 0x270
jb 0x1800c2130
mov dword [rsp + 0xf0], 0x270
mov rdx, qword [r14 + 0x18]
mov rcx, qword [r14 + 0x10]
lea r8, [rsp + 0xf0]
call fcn.1800c3d10
jmp 0x1800c22fc
mov rdx, qword [str.math.pi]
mov rax, rsi
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c2181
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c2196
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c21ce
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c21ce
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.1800c2340
call fcn.1800c3800
mov r14, rax
movabs rax, 0x400921fb54442d18
mov qword [r14 + 0x10], rax
jmp 0x1800c22fc
mov rdx, qword [str.math.deg]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], r13b
jne 0x1800c21e0
mov rcx, rbx
cmp r12, 0x10
jb 0x1800c21f5
mov rcx, qword [rbx]
cmp rdi, rax
jne 0x1800c226b
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c226b
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
movsd xmm0, qword [rbx + 0x10]
mulsd xmm0, qword [0x180379cb0]
jmp 0x1800c22f4
mov rdx, qword [str.math.rad]
inc rsi
cmp byte [rdx + rsi], r13b
jne 0x1800c2272
cmp r12, 0x10
jb 0x1800c2284
mov rbx, qword [rbx]
cmp rdi, rsi
jne 0x1800c22fc
mov r8, rdi
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800c22fc
lea edx, [rax + 1]
lea rcx, [rsp + 0x40]
call fcn.1800c2340
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x30]
mov rdx, r15
mov rcx, qword [rcx]
call fcn.1800cb9c0
cmp dword [rax + 8], 1
jne 0x1800c22fc
mov dword [rsp + 0x20], r13d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll___RTDynamicCast
mov rbx, rax
call fcn.1800c3800
movsd xmm0, qword [rbx + 0x10]
mulsd xmm0, qword [0x180379bc0]
mov r14, rax
movsd qword [rax + 0x10], xmm0
mov rax, r14
mov rcx, qword [rsp + 0x1480]
xor rcx, rsp
call fcn.1800dd900
lea r11, [rsp + 0x14a0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call fcn.180005510
int3