Function at 0x14009df20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], r12
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
xor r12b, r12b
mov qword [rsp + 0x70], rdi
lea rdi, [rcx + 0x90]
mov rbx, rcx
test dl, dl
je 0x14009e1ae
movzx eax, byte [rdi]
cmp al, 0x78
je 0x14009df64
cmp al, 0x58
jne 0x14009e066
call fcn.14009f350
movzx ecx, byte [rdi]
xor esi, esi
movabs r14, 0x800000000000000f
movabs r15, 0x8000000000000000
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x14009e040
lea eax, [rcx - 0x61]
cmp al, 5
jbe 0x14009e040
sub cl, 0x41
cmp cl, 5
jbe 0x14009e040
lea rax, [rbp - 0x18]
mov qword [rbp - 0x28], rsi
lea edx, [rsi + 0x24]
mov qword [rbp - 0x30], rax
lea rcx, [rbp - 0x30]
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x18], sil
call fcn.140002a70
mov rcx, qword [rbp - 0x30]
lea r9, [rbp - 0x30]
movups xmm0, xmmword [str._0x__must_be_followed_by_hex_digits.]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x1400ebbd0]
movups xmmword [rcx + 0x10], xmm1
mov eax, dword [0x1400ebbe0]
mov dword [rcx + 0x20], eax
mov rax, qword [rbp - 0x30]
mov byte [rax + 0x24], sil
mov rcx, qword [rbx + 0x88]
mov r8d, dword [rbx + 0xb0]
mov edx, dword [rbx + 0xac]
mov qword [rbp - 0x28], 0x24
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test qword [rbp - 0x20], r15
jne 0x14009e2e8
mov rcx, qword [rbp - 0x30]
lea r8d, [rsi - 6]
xor r9d, r9d
lea rdx, [0x1401262a0]
call fcn.140025f00
jmp 0x14009e2e8
mov rcx, rbx
call fcn.14009f350
movzx eax, byte [rdi]
cmp al, 0x30
jl 0x14009e053
cmp al, 0x39
jle 0x14009e040
cmp al, 0x61
jl 0x14009e05b
cmp al, 0x66
jle 0x14009e040
sub al, 0x41
cmp al, 5
jbe 0x14009e040
jmp 0x14009e2e8
sub al, 0x30
cmp al, 9
ja 0x14009e1ae
xor esi, esi
movzx r8d, byte [rdi]
lea eax, [r8 - 0x30]
cmp al, 7
ja 0x14009e0eb
cmp r8b, 0xa
jne 0x14009e08e
inc dword [rbx + 0xac]
mov ecx, esi
jmp 0x14009e0b3
mov ecx, dword [rbx + 0xb0]
cmp r8b, 9
jne 0x14009e0b1
mov eax, ecx
and eax, 0x80000007
jge 0x14009e0aa
dec eax
or eax, 0xfffffff8
inc eax
sub ecx, eax
add ecx, 8
jmp 0x14009e0b3
inc ecx
mov dword [rbx + 0xb0], ecx
mov eax, dword [rbx + 0xa4]
inc eax
mov dword [rbx + 0xa4], eax
cmp eax, dword [rbx + 0xa0]
jge 0x14009e0e1
movsxd rcx, eax
mov rax, qword [rbx + 0x98]
movzx ecx, byte [rcx + rax]
mov byte [rdi], cl
jmp 0x14009e072
mov rcx, rbx
call fcn.14009fbc0
jmp 0x14009e072
movabs r14, 0x800000000000000f
movabs r15, 0x8000000000000000
cmp al, 9
ja 0x14009e2e8
lea rax, [rbp - 0x18]
mov qword [rbp - 0x28], rsi
mov edx, 0x34
mov qword [rbp - 0x30], rax
lea rcx, [rbp - 0x30]
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x18], sil
call fcn.140002a70
mov rcx, qword [rbp - 0x30]
lea r9, [rbp - 0x30]
movups xmm0, xmmword [str.Numbers_starting_with_leading_zero_must_be_in_octal.]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x1400ebbf8]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [0x1400ebc08]
movups xmmword [rcx + 0x20], xmm0
mov eax, dword [0x1400ebc18]
mov dword [rcx + 0x30], eax
mov rax, qword [rbp - 0x30]
mov byte [rax + 0x34], sil
mov rcx, qword [rbx + 0x88]
mov r8d, dword [rbx + 0xb0]
mov edx, dword [rbx + 0xac]
mov qword [rbp - 0x28], 0x34
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test qword [rbp - 0x20], r15
jne 0x14009e1a1
mov rcx, qword [rbp - 0x30]
lea rdx, [0x1401262a0]
xor r9d, r9d
lea r8d, [r9 - 6]
call fcn.140025f00
mov rcx, rbx
call fcn.14009d800
jmp 0x14009e2e8
test r8b, r8b
jne 0x14009e1c8
call fcn.14009d800
cmp byte [rdi], 0x2e
jne 0x14009e1d0
mov rcx, rbx
call fcn.14009f350
mov rcx, rbx
mov r12b, 1
call fcn.14009d800
movzx ecx, byte [rdi]
xor esi, esi
movabs r14, 0x800000000000000f
movabs r15, 0x8000000000000000
cmp cl, 0x65
je 0x14009e1f7
cmp cl, 0x45
jne 0x14009e2ca
mov rcx, rbx
call fcn.14009f350
movzx eax, byte [rdi]
mov r12b, 1
cmp al, 0x2d
je 0x14009e20d
cmp al, 0x2b
jne 0x14009e215
mov rcx, rbx
call fcn.14009f350
movzx eax, byte [rdi]
sub al, 0x30
cmp al, 9
ja 0x14009e237
nop
mov rcx, rbx
call fcn.14009f350
movzx ecx, byte [rdi]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x14009e220
jmp 0x14009e2ca
lea rax, [rbp - 0x18]
mov qword [rbp - 0x28], rsi
mov edx, 0x21
mov qword [rbp - 0x30], rax
lea rcx, [rbp - 0x30]
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x18], sil
call fcn.140002a70
mov rcx, qword [rbp - 0x30]
lea r9, [rbp - 0x30]
movups xmm0, xmmword [str._e__must_be_followed_by_exponent.]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x1400ebc30]
movups xmmword [rcx + 0x10], xmm1
movzx eax, byte [0x1400ebc40]
mov byte [rcx + 0x20], al
mov rax, qword [rbp - 0x30]
mov byte [rax + 0x21], sil
mov rcx, qword [rbx + 0x88]
mov r8d, dword [rbx + 0xb0]
mov edx, dword [rbx + 0xac]
mov qword [rbp - 0x28], 0x21
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test qword [rbp - 0x20], r15
jne 0x14009e2c7
mov rcx, qword [rbp - 0x30]
lea rdx, [0x1401262a0]
xor r9d, r9d
lea r8d, [r9 - 6]
call fcn.140025f00
movzx ecx, byte [rdi]
cmp byte [rbx + 0xc4], sil
je 0x14009e2e8
cmp cl, 0x66
je 0x14009e2dd
cmp cl, 0x46
jne 0x14009e2e8
mov rcx, rbx
call fcn.14009f350
mov r12b, 1
movzx ecx, byte [rdi]
mov rdi, qword [rsp + 0x70]
lea eax, [rcx - 0x41]
cmp al, 0x39
ja 0x14009e37b
movabs rdx, 0x3ffffff43ffffff
bt rdx, rax
jae 0x14009e37b
cmp byte [rbx + 0xcc], 0
je 0x14009e37b
lea rax, [rbp - 0x18]
mov qword [rbp - 0x28], rsi
mov edx, 0x29
mov qword [rbp - 0x30], rax
lea rcx, [rbp - 0x30]
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x18], 0
call fcn.140002a70
movups xmm0, xmmword [str.Need_space_between_number_and_identifier.]
mov rcx, qword [rbp - 0x30]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x1400ebc58]
movups xmmword [rcx + 0x10], xmm1
movsd xmm0, qword [0x1400ebc68]
movsd qword [rcx + 0x20], xmm0
movzx eax, byte [0x1400ebc70]
mov byte [rcx + 0x28], al
mov rax, qword [rbp - 0x30]
mov byte [rax + 0x29], 0
mov qword [rbp - 0x28], 0x29
jmp 0x14009e453
cmp cl, 0x2e
jne 0x14009e48e
mov qword [rbp - 0x28], rsi
lea rax, [rbp - 0x18]
mov qword [rbp - 0x30], rax
lea rcx, [rbp - 0x30]
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x18], 0
test r12b, r12b
je 0x14009e402
mov edx, 0x3e
call fcn.140002a70
movups xmm0, xmmword [str.Already_saw_decimal_point_or_exponent__cant_have_another_one.]
mov rcx, qword [rbp - 0x30]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x1400ebc88]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [0x1400ebc98]
movups xmmword [rcx + 0x20], xmm0
movsd xmm1, qword [0x1400ebca8]
movsd qword [rcx + 0x30], xmm1
mov eax, dword [0x1400ebcb0]
mov dword [rcx + 0x38], eax
movzx eax, word [0x1400ebcb4]
mov word [rcx + 0x3c], ax
mov rax, qword [rbp - 0x30]
mov byte [rax + 0x3e], 0
mov qword [rbp - 0x28], 0x3e
jmp 0x14009e453
mov edx, 0x27
call fcn.140002a70
mov rcx, qword [rbp - 0x30]
movups xmm0, xmmword [str.Hex_and_octal_numbers_must_be_integers.]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x1400ebcc8]
movups xmmword [rcx + 0x10], xmm1
mov eax, dword [0x1400ebcd8]
mov dword [rcx + 0x20], eax
movzx eax, word [0x1400ebcdc]
mov word [rcx + 0x24], ax
movzx eax, byte [0x1400ebcde]
mov byte [rcx + 0x26], al
mov rax, qword [rbp - 0x30]
mov byte [rax + 0x27], 0
mov qword [rbp - 0x28], 0x27
mov rcx, qword [rbx + 0x88]
lea r9, [rbp - 0x30]
mov r8d, dword [rbx + 0xb0]
mov edx, dword [rbx + 0xac]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test qword [rbp - 0x20], r15
jne 0x14009e48e
mov rcx, qword [rbp - 0x30]
lea rdx, [0x1401262a0]
xor r9d, r9d
lea r8d, [r9 - 6]
call fcn.140025f00
lea r11, [rsp + 0x50]
test r12b, r12b
mov rbx, qword [r11 + 0x28]
mov r12, qword [r11 + 0x38]
setne sil
lea eax, [rsi + 3]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret