Function at 0x1400a3a70
Capabilities:
Query environment variable

Disassembly:
push rbp
push rbx
push rdi
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
movzx eax, byte [0x1401bb170]
mov r15d, r9d
mov r14, r8
mov rdi, rdx
mov rbx, rcx
test al, al
jne 0x1400a3ac8
lea rcx, str.dglCURVE_MAX
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x1400a3ac0
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov byte [0x1401bb170], al
test al, al
jne 0x1400a3ac8
mov al, 0x1e
mov byte [0x1401bb170], al
mov qword [rsp + 0x160], rsi
mov qword [rsp + 0x168], r12
mov qword [rsp + 0x170], r13
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x110], xmm7
movaps xmmword [rsp + 0x100], xmm8
movaps xmmword [rsp + 0xf0], xmm9
movaps xmmword [rsp + 0xe0], xmm10
movaps xmmword [rsp + 0xd0], xmm11
movaps xmmword [rsp + 0xc0], xmm12
movzx ecx, al
mov eax, r15d
movaps xmmword [rsp + 0xb0], xmm13
inc r15d
movaps xmmword [rsp + 0xa0], xmm14
movaps xmmword [rsp + 0x90], xmm15
cmp eax, ecx
jg 0x1400a3bf8
mov rsi, qword [rdi]
movsd xmm10, qword [rdi + 8]
movsd xmm7, qword [r14 + 8]
subsd xmm7, xmm10
cmp rsi, r14
jne 0x1400a3b89
movaps xmm2, xmm7
mov rdx, rdi
mulsd xmm2, qword [0x1401587e8]
mov rcx, rbx
addsd xmm2, xmm10
call fcn.1400a39a0
mov rsi, rax
test rax, rax
je 0x1400a4183
movzx r12d, byte [rbx + 0xa]
mov eax, reloc.WS2_32.dll_recv
test r12b, r12b
mov ecx, 0x28
cmove ecx, eax
lea r8, [rcx + rsi]
lea rdx, [rcx + r14]
add rcx, rdi
call fcn.1400a44e0
test eax, eax
jns 0x1400a3c87
mov edx, eax
test r12b, r12b
je 0x1400a3bd5
cmp eax, 0xffffffff
jne 0x1400a3bd5
lea r8, [rsi + 0x10]
lea rdx, [r14 + 0x10]
lea rcx, [rdi + 0x10]
call fcn.1400a44e0
mov edx, eax
cmp edx, 0xfffffffe
jne 0x1400a3c79
mov r9d, r15d
mov r8, rsi
mov rdx, rdi
mov rcx, rbx
call fcn.1400a3a70
cmp eax, 0xffffffff
je 0x1400a4183
xor eax, eax
movaps xmm15, xmmword [rsp + 0x90]
movaps xmm14, xmmword [rsp + 0xa0]
movaps xmm13, xmmword [rsp + 0xb0]
movaps xmm12, xmmword [rsp + 0xc0]
movaps xmm11, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm6, xmmword [rsp + 0x120]
mov r13, qword [rsp + 0x170]
mov r12, qword [rsp + 0x168]
mov rsi, qword [rsp + 0x160]
add rsp, 0x130
pop r15
pop r14
pop rdi
pop rbx
pop rbp
ret
cmp edx, 0xfffffffd
jne 0x1400a3bf8
jmp 0x1400a4169
movsd xmm13, qword [0x1401587f0]
test eax, eax
jne 0x1400a3df6
test r12b, r12b
je 0x1400a3cc3
movsd xmm8, qword [r14 + 0x28]
movsd xmm9, qword [r14 + 0x30]
movsd xmm11, qword [r14 + 0x38]
subsd xmm8, qword [rdi + 0x28]
subsd xmm9, qword [rdi + 0x30]
subsd xmm11, qword [rdi + 0x38]
jmp 0x1400a3ce7
movsd xmm8, qword [r14 + 0x10]
movsd xmm9, qword [r14 + 0x18]
movsd xmm11, qword [r14 + 0x20]
subsd xmm8, qword [rdi + 0x10]
subsd xmm9, qword [rdi + 0x18]
subsd xmm11, qword [rdi + 0x20]
xor r12d, r12d
movsd qword [rsp + 0x30], xmm9
movaps xmm6, xmm8
movsd qword [rsp + 0x28], xmm8
mulsd xmm6, xmm8
movaps xmm0, xmm9
mulsd xmm0, xmm9
movaps xmm1, xmm11
mulsd xmm1, xmm11
addsd xmm6, xmm0
addsd xmm6, xmm1
comisd xmm6, xmmword [0x1401836a0]
setae r12b
mov dword [rbp + 0x78], r12d
test r12d, r12d
je 0x1400a3e1f
xorps xmm0, xmm0
ucomisd xmm0, xmm6
ja 0x1400a3d43
sqrtpd xmm0, xmm6
jmp 0x1400a3d4b
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movups xmm1, xmmword [rsp + 0x28]
lea r8, [rsp + 0x28]
mov r9, rsi
movaps xmm6, xmm13
mov rdx, rdi
divsd xmm6, xmm0
mov rcx, rbx
movaps xmm0, xmm6
mulsd xmm11, xmm6
unpcklpd xmm0, xmm0
mulpd xmm1, xmm0
movsd qword [rsp + 0x38], xmm11
movups xmmword [rsp + 0x28], xmm1
call fcn.1400a4190
test eax, eax
jne 0x1400a414f
movaps xmm2, xmm7
mov rdx, rsi
mulsd xmm2, qword [0x140158bb0]
addsd xmm2, xmm10
call fcn.1400a39a0
test rax, rax
je 0x1400a3e11
mulsd xmm7, qword [0x140158950]
mov rdx, rdi
mov rcx, rbx
addsd xmm7, xmm10
movaps xmm2, xmm7
call fcn.1400a39a0
test rax, rax
je 0x1400a3e11
mov r9, qword [rdi]
lea r8, [rsp + 0x28]
mov rdx, rdi
mov rcx, rbx
call fcn.1400a4190
test eax, eax
jne 0x1400a414f
mov r9, qword [rsi]
lea r8, [rsp + 0x28]
call fcn.1400a4190
jmp 0x1400a3e09
mov ecx, dword [rbp + 0x78]
movsd xmm11, qword [rsp + 0x38]
movsd xmm6, qword [rsp + 0x20]
mov dword [rbp + 0x78], ecx
test eax, eax
jne 0x1400a414f
movsd xmm9, qword [rsp + 0x30]
movsd xmm8, qword [rsp + 0x28]
cmp r15d, 1
jg 0x1400a3bf8
cmp byte [rbx + 0xa], 0
jne 0x1400a3e3e
mov rax, qword [rbx]
cmp byte [rax + 0x24], 6
jne 0x1400a3bf8
jmp 0x1400a3e4c
mov rax, qword [rbx + 0x30]
cmp byte [rax + 0x3c], 4
jne 0x1400a3ef8
movsd xmm1, qword [rdi + 8]
lea r8, [rsp + 0x40]
mov rcx, qword [rbx]
call fcn.14007aac0
test eax, eax
jne 0x1400a3ef8
movsd xmm1, qword [rsi + 8]
lea r8, [rsp + 0x58]
mov rcx, qword [rbx]
call fcn.14007aac0
test eax, eax
jne 0x1400a3ef8
movsd xmm1, qword [r14 + 8]
lea r8, [rsp + 0x70]
mov rcx, qword [rbx]
call fcn.14007aac0
test eax, eax
jne 0x1400a3ef8
cmp byte [rbx + 0xa], al
jne 0x1400a3ea1
lea r12d, [rax + 1]
jmp 0x1400a3f49
mov rcx, qword [rbx + 0x30]
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x40]
lea rdx, [rdi + 0x10]
call fcn.1400a42c0
test eax, eax
jne 0x1400a3ef8
mov rcx, qword [rbx + 0x30]
lea rdx, [rsi + 0x10]
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x58]
call fcn.1400a42c0
test eax, eax
jne 0x1400a3ef8
mov rcx, qword [rbx + 0x30]
lea rdx, [r14 + 0x10]
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x70]
call fcn.1400a42c0
test eax, eax
jne 0x1400a3ef8
lea r12d, [rax + 1]
jmp 0x1400a3f49
mov rcx, qword [rbx + 0x30]
lea r8, [rsp + 0x40]
lea rdx, [rdi + 0x10]
call fcn.1400609d0
test eax, eax
js 0x1400a3bf8
mov rcx, qword [rbx + 0x30]
lea rdx, [rsi + 0x10]
lea r8, [rsp + 0x58]
call fcn.1400609d0
test eax, eax
js 0x1400a3bf8
mov rcx, qword [rbx + 0x30]
lea rdx, [r14 + 0x10]
lea r8, [rsp + 0x70]
call fcn.1400609d0
test eax, eax
js 0x1400a3bf8
xor r12d, r12d
movsd xmm0, qword [rsp + 0x48]
xorps xmm15, xmm15
movsd xmm2, qword [rsp + 0x40]
movsd xmm7, qword [rsp + 0x58]
movsd xmm12, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x50]
mulsd xmm1, qword [rsp + 0x68]
movsd xmm10, qword [0x1401588e0]
mulsd xmm2, xmm7
mulsd xmm0, xmm12
addsd xmm2, xmm0
movsd xmm0, qword [0x140158800]
addsd xmm2, xmm1
comisd xmm0, xmm2
jb 0x1400a3fa0
movaps xmm14, xmm10
jmp 0x1400a3fb9
comisd xmm2, xmm13
jb 0x1400a3fad
xorps xmm14, xmm14
jmp 0x1400a3fb9
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_acos
movaps xmm14, xmm0
movsd xmm13, qword [rsp + 0x70]
movsd xmm3, qword [rsp + 0x78]
movaps xmm0, xmm13
movaps xmm1, xmm3
mulsd xmm0, xmm7
mulsd xmm1, xmm12
addsd xmm0, xmm1
movsd xmm1, qword [rbp - 0x80]
movaps xmm2, xmm1
mulsd xmm2, qword [rsp + 0x68]
addsd xmm0, xmm2
movsd xmm2, qword [0x140158800]
comisd xmm2, xmm0
jb 0x1400a4000
movaps xmm12, xmm10
jmp 0x1400a4024
comisd xmm0, xmmword [0x1401587f0]
jb 0x1400a4010
xorps xmm12, xmm12
jmp 0x1400a4024
call sub.api_ms_win_crt_math_l1_1_0.dll_acos
movsd xmm3, qword [rsp + 0x78]
movaps xmm12, xmm0
movsd xmm1, qword [rbp - 0x80]
mulsd xmm13, qword [rsp + 0x40]
mulsd xmm3, qword [rsp + 0x48]
mulsd xmm1, qword [rsp + 0x50]
movsd xmm0, qword [0x140158800]
addsd xmm13, xmm3
addsd xmm13, xmm1
comisd xmm0, xmm13
jae 0x1400a406e
comisd xmm13, xmmword [0x1401587f0]
jb 0x1400a4061
xorps xmm10, xmm10
jmp 0x1400a406e
movaps xmm0, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_acos
movaps xmm10, xmm0
movsd xmm13, qword [0x140158810]
movaps xmm1, xmm14
movsd xmm0, qword [0x140183688]
subsd xmm1, xmm12
andps xmm1, xmm13
comisd xmm0, xmm1
jbe 0x1400a414f
addsd xmm12, xmm14
subsd xmm10, xmm12
andps xmm10, xmm13
comisd xmm0, xmm10
jbe 0x1400a414f
test r12d, r12d
je 0x1400a3bf8
cmp dword [rbp + 0x78], 0
jne 0x1400a411a
ucomisd xmm6, xmm15
jp 0x1400a40cb
je 0x1400a3bf8
xorps xmm0, xmm0
ucomisd xmm0, xmm6
ja 0x1400a40da
sqrtpd xmm0, xmm6
jmp 0x1400a40e2
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movsd xmm2, qword [0x1401587f0]
movups xmm1, xmmword [rsp + 0x28]
divsd xmm2, xmm0
movaps xmm0, xmm2
mulsd xmm11, xmm2
unpcklpd xmm0, xmm0
mulpd xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm0, 0xee
movups xmmword [rsp + 0x28], xmm1
movsd xmm8, qword [rsp + 0x28]
movaps xmm9, xmm0
movsd xmm0, qword [rsp + 0x60]
mulsd xmm0, xmm9
mulsd xmm7, xmm8
addsd xmm7, xmm0
movsd xmm0, qword [rsp + 0x68]
mulsd xmm0, xmm11
addsd xmm7, xmm0
andps xmm7, xmm13
comisd xmm7, xmmword [0x1401836a8]
ja 0x1400a3bf8
mov r9d, r15d
mov byte [rsi + 0x40], 1
mov r8, rsi
mov rdx, rdi
mov rcx, rbx
call fcn.1400a3a70
cmp eax, 0xffffffff
je 0x1400a4183
mov r9d, r15d
mov r8, r14
mov rdx, rsi
mov rcx, rbx
call fcn.1400a3a70
cmp eax, 0xffffffff
jne 0x1400a3bf8
mov eax, 0xffffffff
jmp 0x1400a3bfa