Function at 0x14000c5b0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov rax, qword [rdx]
movsx r9d, byte [rax]
add r9d, 0xffffffde
cmp r9d, 0x59
ja case.0x14000c5df.35
movsxd rax, r9d
lea r10, [0x140000000]
movzx eax, byte [r10 + rax + 0xc624]
mov r9d, dword [r10 + rax*4 + 0xc608]
add r9, r10
jmp r9
jmp 0x14000c6d0
jmp 0x14000c750
jmp 0x14000c7e0
xor r9d, r9d
jmp 0x14000c880
jmp 0x14000cd60
jmp 0x14000cf40
jmp 0x14000d0b0
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
inc qword [rdx]
mov rbx, rdx
mov rax, qword [rdx]
mov rdi, rcx
cmp byte [rax], 0x75
jne 0x14000c730
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x6c
jne 0x14000c730
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x6c
jne 0x14000c730
inc rax
mov rcx, r8
mov qword [rdx], rax
call fcn.140003df0
test al, al
jne 0x14000c742
mov rax, qword [rbx]
sub rax, qword [rbx + 0x10]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], setsockopt
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov rax, qword [rdx]
sub rax, qword [rdx + 0x10]
mov qword [rcx + 0x38], rax
mov dword [rcx + 0x30], 3
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
sub rsp, 0x28
inc qword [rdx]
mov rax, qword [rdx]
cmp byte [rax], 0x72
jne 0x14000c7c7
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x75
jne 0x14000c7c7
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x65
jne 0x14000c7c7
inc rax
mov qword [rsp + 0x20], rbx
lea rbx, [r8 + 0x20]
mov qword [rdx], rax
mov rax, qword [rbx + 0x20]
sub rax, qword [rbx + 0x18]
cmp rax, 0x10
jge 0x14000c79a
mov rcx, rbx
call fcn.140004300
mov rcx, qword [rbx + 0x18]
lea rax, [rcx + 0x10]
mov qword [rbx + 0x18], rax
mov rbx, qword [rsp + 0x20]
test rcx, rcx
je 0x14000c7d9
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov eax, 0xa
mov word [rcx + 0xe], ax
add rsp, 0x28
ret
mov rax, qword [rdx]
sub rax, qword [rdx + 0x10]
mov qword [rcx + 0x38], rax
mov dword [rcx + 0x30], 3
add rsp, 0x28
ret
sub rsp, 0x28
inc qword [rdx]
mov rax, qword [rdx]
cmp byte [rax], 0x61
jne 0x14000c862
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x6c
jne 0x14000c862
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x73
jne 0x14000c862
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x65
jne 0x14000c862
inc rax
mov qword [rsp + 0x20], rbx
lea rbx, [r8 + 0x20]
mov qword [rdx], rax
mov rax, qword [rbx + 0x20]
sub rax, qword [rbx + 0x18]
cmp rax, 0x10
jge 0x14000c835
mov rcx, rbx
call fcn.140004300
mov rcx, qword [rbx + 0x18]
lea rax, [rcx + 0x10]
mov qword [rbx + 0x18], rax
mov rbx, qword [rsp + 0x20]
test rcx, rcx
je 0x14000c874
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov eax, 9
mov word [rcx + 0xe], ax
add rsp, 0x28
ret
mov rax, qword [rdx]
sub rax, qword [rdx + 0x10]
mov qword [rcx + 0x38], rax
mov dword [rcx + 0x30], 3
add rsp, 0x28
ret
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
movaps xmmword [rax - 0x38], xmm6
movzx r12d, r9b
mov r15, r8
mov rdi, rcx
movups xmm2, xmmword [rdx]
movups xmmword [rbp - 0x38], xmm2
movsd xmm1, qword [rdx + 0x10]
movsd qword [rbp - 0x28], xmm1
mov qword [rbp - 0x20], rdx
movq rax, xmm2
inc rax
mov rbx, rax
mov r14, rax
xor r13d, r13d
mov r9, qword [rbp - 0x28]
lea r10, [0x1401ba2a0]
nop word [rax + rax]
lea rdx, [rax + 0xf]
and rdx, 0xfffffffffffffff0
cmp rax, rbx
jne 0x14000c9c8
cmp rax, rdx
je 0x14000c936
nop word [rax + rax]
movzx ecx, byte [rax]
cmp cl, 0x22
je 0x14000c9bc
cmp cl, 0x5c
je 0x14000c9bc
cmp cl, 0x20
jb 0x14000c9bc
inc rax
cmp rax, rdx
jne 0x14000c910
movdqu xmm4, xmmword [str.________________]
movdqu xmm5, xmmword [0x1401ba078]
movdqu xmm3, xmmword [0x1401ba290]
movdqa xmm2, xmmword [rax]
movdqa xmm0, xmm2
pcmpeqb xmm0, xmm4
movdqa xmm1, xmm2
pcmpeqb xmm1, xmm5
pmaxub xmm2, xmm3
pcmpeqb xmm2, xmm3
por xmm1, xmm0
por xmm1, xmm2
pmovmskb ecx, xmm1
test cx, cx
jne 0x14000c9b1
nop dword [rax + rax]
add rax, 0x10
movdqa xmm2, xmmword [rax]
movdqa xmm0, xmm2
pcmpeqb xmm0, xmm4
movdqa xmm1, xmm2
pcmpeqb xmm1, xmm5
pmaxub xmm2, xmm3
pcmpeqb xmm2, xmm3
por xmm1, xmm0
por xmm1, xmm2
pmovmskb ecx, xmm1
test cx, cx
je 0x14000c980
movzx ecx, cx
bsf edx, ecx
mov ecx, edx
add rax, rcx
mov rbx, rax
mov qword [rbp - 0x30], rax
jmp 0x14000cac7
cmp rax, rdx
je 0x14000c9fb
nop dword [rax]
movzx ecx, byte [rax]
cmp cl, 0x22
je 0x14000cac3
cmp cl, 0x5c
je 0x14000cac3
cmp cl, 0x20
jb 0x14000cac3
mov byte [rbx], cl
inc rbx
inc rax
cmp rax, rdx
jne 0x14000c9d0
movdqu xmm5, xmmword [str.________________]
movdqu xmm6, xmmword [0x1401ba078]
movdqu xmm4, xmmword [0x1401ba290]
movdqa xmm3, xmmword [rax]
movdqa xmm1, xmm3
pcmpeqb xmm1, xmm5
movdqa xmm2, xmm3
pcmpeqb xmm2, xmm6
movdqa xmm0, xmm3
pmaxub xmm0, xmm4
pcmpeqb xmm0, xmm4
por xmm2, xmm1
por xmm2, xmm0
pmovmskb ecx, xmm2
test cx, cx
jne 0x14000ca8d
nop dword [rax]
nop dword [rax + rax]
movdqu xmmword [rbx], xmm3
add rax, 0x10
add rbx, 0x10
movdqa xmm3, xmmword [rax]
movdqa xmm1, xmm3
pcmpeqb xmm1, xmm5
movdqa xmm2, xmm3
pcmpeqb xmm2, xmm6
movdqa xmm0, xmm3
pmaxub xmm0, xmm4
pcmpeqb xmm0, xmm4
por xmm2, xmm1
por xmm2, xmm0
pmovmskb ecx, xmm2
test cx, cx
je 0x14000ca50
movzx ecx, cx
bsf edx, ecx
mov r8d, edx
lea rcx, [rdx + rax]
mov rdx, r13
cmp rax, rcx
cmova r8, r13
test r8, r8
je 0x14000cac3
nop dword [rax]
movzx ecx, byte [rax]
mov byte [rbx], cl
inc rbx
inc rax
inc rdx
cmp rdx, r8
jne 0x14000cab0
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x38], rax
movzx ecx, byte [rax]
cmp cl, 0x5c
jne 0x14000cc44
mov rsi, rax
sub rsi, r9
inc rax
mov qword [rbp - 0x38], rax
movzx r8d, byte [rax]
mov ecx, r8d
movzx edx, byte [r8 + r10]
test dl, dl
je 0x14000cb01
inc rax
mov byte [rbx], dl
inc rbx
jmp 0x14000c8f0
cmp r8b, 0x75
jne 0x14000cc2a
inc rax
mov qword [rbp - 0x38], rax
mov r8, rsi
lea rdx, [rbp - 0x38]
mov rcx, rdi
call fcn.140004050
cmp dword [rdi + 0x30], r13d
jne 0x14000cc9c
lea r10d, [rax - 0xd800]
cmp r10d, 0x3ff
ja 0x14000cc12
mov r8, qword [rbp - 0x38]
cmp byte [r8], 0x5c
jne 0x14000cb5f
inc r8
mov qword [rbp - 0x38], r8
cmp byte [r8], 0x75
jne 0x14000cb5f
inc r8
mov qword [rbp - 0x38], r8
jmp 0x14000cb74
mov dword [rdi + 0x30], 9
mov qword [rdi + 0x38], rsi
cmp dword [rdi + 0x30], r13d
jne 0x14000cc9c
mov ecx, r13d
mov r9d, r13d
nop word [rax + rax]
movsx edx, byte [r8]
shl ecx, 4
add ecx, edx
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x14000cb95
add ecx, 0xffffffd0
jmp 0x14000cbbf
lea eax, [rdx - 0x41]
cmp al, 5
ja 0x14000cba1
add ecx, 0xffffffc9
jmp 0x14000cbbf
sub dl, 0x61
cmp dl, 5
ja 0x14000cbae
add ecx, 0xffffffa9
jmp 0x14000cbbf
mov dword [rdi + 0x30], 8
mov qword [rdi + 0x38], rsi
cmp dword [rdi + 0x30], r13d
jne 0x14000cbd1
inc r8
mov qword [rbp - 0x38], r8
inc r9d
cmp r9d, 4
jl 0x14000cb80
jmp 0x14000cbd4
mov ecx, r13d
cmp dword [rdi + 0x30], r13d
jne 0x14000cc9c
lea eax, [rcx - 0xdc00]
cmp eax, 0x3ff
jbe 0x14000cc00
mov dword [rdi + 0x30], 9
mov qword [rdi + 0x38], rsi
cmp dword [rdi + 0x30], r13d
jne 0x14000cc9c
lea eax, [rcx - 0xdc00]
shl r10d, 0xa
or eax, r10d
add eax, 0x10000
mov edx, eax
lea rcx, [rbp - 0x38]
call fcn.14000d640
mov rbx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x38]
jmp 0x14000c8db
mov dword [rdi + 0x30], 0xa
mov qword [rdi + 0x38], rsi
cmp dword [rdi + 0x30], r13d
jne 0x14000cd1b
jmp 0x14000c8f0
cmp cl, 0x22
je 0x14000cca2
cmp cl, 0x20
jae 0x14000cc8f
test cl, cl
mov rcx, rax
jne 0x14000cc72
sub rcx, r9
mov dword [rdi + 0x30], reloc.WS2_32.dll_inet_addr
mov qword [rdi + 0x38], rcx
cmp dword [rdi + 0x30], r13d
jne 0x14000cd1b
jmp 0x14000c8f0
sub rcx, r9
mov dword [rdi + 0x30], listen
mov qword [rdi + 0x38], rcx
cmp dword [rdi + 0x30], r13d
jne 0x14000cd1b
jmp 0x14000c8f0
inc rax
mov byte [rbx], cl
inc rbx
jmp 0x14000c8f0
mov rbx, qword [rbp - 0x30]
jmp 0x14000ccb3
inc rax
mov qword [rbp - 0x38], rax
mov byte [rbx], r13b
inc rbx
mov qword [rbp - 0x30], rbx
cmp dword [rdi + 0x30], r13d
jne 0x14000cd1b
sub rbx, r14
dec rbx
mov rax, qword [r15 + 0x40]
sub rax, qword [r15 + 0x38]
cmp rax, 0x10
jge 0x14000ccd6
lea rcx, [r15 + 0x20]
call fcn.140004300
mov rcx, qword [r15 + 0x38]
lea rax, [rcx + 0x10]
test rcx, rcx
mov qword [r15 + 0x38], rax
je 0x14000cd1b
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov eax, 0x405
mov word [rcx + 0xe], ax
movabs rax, 0xffff000000000000
and qword [rcx + 8], rax
lea rax, [0x1401ba6c8]
test r14, r14
cmovne rax, r14
mov dword [rcx], ebx
or qword [rcx + 8], rax
mov rax, qword [rbp - 0x20]
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rax], xmm0
movsd xmm1, qword [rbp - 0x28]
movsd qword [rax + 0x10], xmm1
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [rsp + 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
inc qword [rdx]
mov rbp, r8
mov rax, qword [r8 + 0x40]
mov rbx, rdx
sub rax, qword [r8 + 0x38]
mov rdi, rcx
cmp rax, 0x10
jge 0x14000cd97
lea rcx, [r8 + 0x20]
call fcn.140004300
mov rcx, qword [rbp + 0x38]
mov r9d, 3
lea rax, [rcx + 0x10]
mov qword [rbp + 0x38], rax
test rcx, rcx
je 0x14000cdbc
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov word [rcx + 0xe], r9w
mov rcx, qword [rbx]
call fcn.140002da0
mov qword [rbx], rax
cmp dword [rdi + 0x30], 0
jne 0x14000cf1c
cmp byte [rax], 0x7d
jne 0x14000cdfe
inc rax
movabs rcx, 0xffff000000000000
mov qword [rbx], rax
mov rax, qword [rbp + 0x38]
mov word [rax - 2], r9w
and qword [rax - 8], rcx
xor esi, esi
mov qword [rax - 0x10], rsi
jmp 0x14000cf1c
xor esi, esi
mov rax, qword [rbx]
cmp byte [rax], 0x22
je 0x14000ce21
sub rax, qword [rbx + 0x10]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 4
cmp dword [rdi + 0x30], 0
jne 0x14000cf1c
mov r9b, 1
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
call 0x14000c880
cmp dword [rdi + 0x30], 0
jne 0x14000cf1c
mov rcx, qword [rbx]
call fcn.140002da0
mov qword [rbx], rax
cmp dword [rdi + 0x30], 0
jne 0x14000cf1c
cmp byte [rax], 0x3a
jne 0x14000ce5e
inc rax
mov qword [rbx], rax
jmp 0x14000ce77
sub rax, qword [rbx + 0x10]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 5
cmp dword [rdi + 0x30], 0
jne 0x14000cf1c
mov rcx, qword [rbx]
call fcn.140002da0
mov qword [rbx], rax
cmp dword [rdi + 0x30], 0
jne 0x14000cf1c
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
call fcn.14000c5b0
cmp dword [rdi + 0x30], 0
jne 0x14000cf1c
mov rcx, qword [rbx]
call fcn.140002da0
mov qword [rbx], rax
cmp dword [rdi + 0x30], 0
jne 0x14000cf1c
movzx ecx, byte [rax]
inc esi
cmp cl, 0x2c
je 0x14000cedb
cmp cl, 0x7d
je 0x14000cef6
sub rax, qword [rbx + 0x10]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 6
cmp dword [rdi + 0x30], 0
je 0x14000ce00
jmp 0x14000cf1c
lea rcx, [rax + 1]
mov qword [rbx], rcx
call fcn.140002da0
mov qword [rbx], rax
cmp dword [rdi + 0x30], 0
je 0x14000ce00
jmp 0x14000cf1c
inc rax
mov edx, esi
mov rcx, rbp
mov qword [rbx], rax
call fcn.140003a80
test al, al
jne 0x14000cf1c
mov rax, qword [rbx]
sub rax, qword [rbx + 0x10]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], setsockopt
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
inc qword [rdx]
mov rbp, r8
mov rax, qword [r8 + 0x40]
mov rdi, rdx
sub rax, qword [r8 + 0x38]
mov rbx, rcx
cmp rax, 0x10
jge 0x14000cf78
lea rcx, [r8 + 0x20]
call fcn.140004300
mov rcx, qword [rbp + 0x38]
mov r9d, 4
lea rax, [rcx + 0x10]
mov qword [rbp + 0x38], rax
test rcx, rcx
je 0x14000cf9d
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov word [rcx + 0xe], r9w
mov rcx, qword [rdi]
call fcn.140002da0
mov qword [rdi], rax
cmp dword [rbx + 0x30], 0
jne 0x14000d08c
cmp byte [rax], 0x5d
mov qword [rsp + 0x30], rsi
jne 0x14000cfe4
inc rax
movabs rcx, 0xffff000000000000
mov qword [rdi], rax
mov rax, qword [rbp + 0x38]
mov word [rax - 2], r9w
and qword [rax - 8], rcx
xor esi, esi
mov qword [rax - 0x10], rsi
jmp 0x14000d087
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
xor esi, esi
call fcn.14000c5b0
cmp dword [rbx + 0x30], esi
jne 0x14000d087
nop dword [rax]
mov rcx, qword [rdi]
inc esi
call fcn.140002da0
mov qword [rdi], rax
cmp dword [rbx + 0x30], 0
jne 0x14000d087
movzx ecx, byte [rax]
cmp cl, 0x2c
jne 0x14000d02c
lea rcx, [rax + 1]
mov qword [rdi], rcx
call fcn.140002da0
mov qword [rdi], rax
jmp 0x14000d040
cmp cl, 0x5d
je 0x14000d05c
sub rax, qword [rdi + 0x10]
mov qword [rbx + 0x38], rax
mov dword [rbx + 0x30], 7
cmp dword [rbx + 0x30], 0
jne 0x14000d087
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.14000c5b0
cmp dword [rbx + 0x30], 0
je 0x14000d000
jmp 0x14000d087
inc rax
mov r8d, esi
mov qword [rdi], rax
mov eax, esi
neg rax
shl rax, 4
add qword [rbp + 0x38], rax
mov rcx, qword [rbp + 0x38]
mov r9, qword [rbp + 0x10]
sub rcx, 0x10
mov rdx, qword [rbp + 0x38]
call fcn.140003ed0
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rax + 8], rbx
movaps xmmword [rax - 0x48], xmm6
mov rax, rdx
mov rsi, rcx
movups xmm1, xmmword [rdx]
movups xmmword [rbp - 0x38], xmm1
movsd xmm6, qword [rdx + 0x10]
movsd qword [rbp - 0x28], xmm6
mov qword [rbp - 0x20], rdx
movq r8, xmm1
mov qword [rbp - 0x38], r8
mov r13, r8
mov r15, qword [rbp - 0x28]
sub r13, r15
xorps xmm3, xmm3
movaps xmm1, xmm3
cmp byte [r8], 0x2d
jne 0x14000d123
inc r8
mov qword [rbp - 0x38], r8
mov r12b, 1
jmp 0x14000d126
xor r12b, r12b
xor ebx, ebx
mov r10d, ebx
mov r9d, ebx
xor r11b, r11b
mov byte [rbp + 0x58], r11b
mov edx, ebx
movzx eax, byte [r8]
movsd xmm2, qword [0x1401bc6e8]
movsd xmm4, qword [0x1401bc720]
cmp al, 0x30
jne 0x14000d15e
inc r8
mov qword [rbp - 0x38], r8
xor r14b, r14b
jmp 0x14000d311
cmp al, 0x31
jl 0x14000d204
cmp al, 0x39
jg 0x14000d204
inc r8
mov qword [rbp - 0x38], r8
movsx r10d, al
sub r10d, 0x30
movzx eax, byte [r8]
test r12b, r12b
je 0x14000d1c3
cmp al, 0x30
jl 0x14000d21e
cmp al, 0x39
jg 0x14000d21e
cmp r10d, 0xccccccc
jb 0x14000d1a5
jne 0x14000d1f8
cmp al, 0x38
jg 0x14000d1f8
inc r8
mov qword [rbp - 0x38], r8
lea ecx, [r10 + r10*4]
movsx eax, al
lea r10d, [rcx - 0x18]
lea r10d, [rax + r10*2]
inc edx
movzx eax, byte [r8]
jmp 0x14000d186
cmp al, 0x30
jl 0x14000d21e
cmp al, 0x39
jg 0x14000d21e
cmp r10d, 0x19999999
jb 0x14000d1da
jne 0x14000d1f8
cmp al, 0x35
jg 0x14000d1f8
inc r8
mov qword [rbp - 0x38], r8
lea ecx, [r10 + r10*4]
movsx eax, al
lea r10d, [rcx - 0x18]
lea r10d, [rax + r10*2]
inc edx
movzx eax, byte [r8]
jmp 0x14000d1c3
mov r9d, r10d
mov r11b, 1
mov byte [rbp + 0x58], r11b
jmp 0x14000d21e
mov rax, r8
sub rax, r15
mov dword [rcx + 0x30], 3
mov qword [rcx + 0x38], rax
cmp dword [rcx + 0x30], edx
jne 0x14000d5e5
xor r14b, r14b
test r11b, r11b
je 0x14000d2d8
movzx eax, byte [r8]
test r12b, r12b
je 0x14000d27d
cmp al, 0x30
jl 0x14000d2d8
movabs rdi, 0xccccccccccccccc
cmp al, 0x39
jg 0x14000d2d8
cmp r9, rdi
jb 0x14000d258
jne 0x14000d2c4
cmp al, 0x38
jg 0x14000d2c4
inc r8
mov qword [rbp - 0x38], r8
movsx rcx, al
sub rcx, 0x30
mov ecx, ecx
lea rax, [r9 + r9*4]
lea r9, [rcx + rax*2]
inc edx
movzx eax, byte [r8]
cmp al, 0x30
jl 0x14000d2d8
jmp 0x14000d245
cmp al, 0x30
jl 0x14000d2d8
movabs rdi, 0x1999999999999999
nop dword [rax + rax]
cmp al, 0x39
jg 0x14000d2d8
cmp r9, rdi
jb 0x14000d29f
jne 0x14000d2c4
cmp al, 0x35
jg 0x14000d2c4
inc r8
mov qword [rbp - 0x38], r8
movsx rcx, al
sub rcx, 0x30
mov ecx, ecx
lea rax, [r9 + r9*4]
lea r9, [rcx + rax*2]
inc edx
movzx eax, byte [r8]
cmp al, 0x30
jl 0x14000d2d8
jmp 0x14000d290
xorps xmm1, xmm1
test r9, r9
cvtsi2sd xmm1, r9
jns 0x14000d2d5
addsd xmm1, xmm4
mov r14b, 1
test r14b, r14b
je 0x14000d311
movzx eax, byte [r8]
cmp al, 0x30
jl 0x14000d311
cmp al, 0x39
jg 0x14000d311
inc r8
mov qword [rbp - 0x38], r8
movsx eax, al
sub eax, 0x30
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
addsd xmm0, xmm1
movaps xmm1, xmm0
movzx eax, byte [r8]
cmp al, 0x30
jge 0x14000d2e5
mov edi, ebx
cmp byte [r8], 0x2e
jne 0x14000d400
inc r8
mov qword [rbp - 0x38], r8
movzx eax, byte [r8]
cmp al, 0x30
jl 0x14000d330
cmp al, 0x39
jle 0x14000d34a
mov rax, r8
sub rax, r15
mov dword [rsi + 0x30], select
mov qword [rsi + 0x38], rax
cmp dword [rsi + 0x30], ebx
jne 0x14000d5e5
test r14b, r14b
jne 0x14000d3bd
mov eax, r10d
test r11b, r11b
cmovne rax, r9
mov r9, rax
movzx ecx, byte [r8]
cmp cl, 0x30
jl 0x14000d3a9
movabs r14, 0x1fffffffffffff
nop
cmp cl, 0x39
jg 0x14000d3a9
cmp r9, r14
ja 0x14000d3a9
inc r8
mov qword [rbp - 0x38], r8
movsx rcx, cl
sub rcx, 0x30
mov ecx, ecx
lea rax, [r9 + r9*4]
lea r9, [rcx + rax*2]
dec edi
movzx ecx, byte [r8]
lea eax, [rdx + 1]
test r9, r9
cmove eax, edx
mov edx, eax
cmp cl, 0x30
jge 0x14000d370
xorps xmm1, xmm1
cvtsi2sd xmm1, r9
test r9, r9
jns 0x14000d3ba
addsd xmm1, xmm4
mov r14b, 1
movzx eax, byte [r8]
cmp al, 0x30
jl 0x14000d400
cmp al, 0x39
jg 0x14000d400
inc r8
mov qword [rbp - 0x38], r8
cmp edx, 0x11
jge 0x14000d3f8
movsx eax, al
sub eax, 0x30
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
addsd xmm0, xmm1
movaps xmm1, xmm0
dec edi
comisd xmm0, xmm3
jbe 0x14000d3f8
inc edx
movzx eax, byte [r8]
cmp al, 0x30
jge 0x14000d3c5
movzx eax, byte [r8]
cmp al, 0x65
je 0x14000d410
cmp al, 0x45
jne 0x14000d550
inc r8
mov qword [rbp - 0x38], r8
test r14b, r14b
jne 0x14000d43b
test r11b, r11b
mov rax, r9
jne 0x14000d427
mov eax, r10d
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
test rax, rax
jns 0x14000d438
addsd xmm1, xmm4
mov r14b, 1
xor r11b, r11b
movzx eax, byte [r8]
cmp al, 0x2b
je 0x14000d44d
cmp al, 0x2d
jne 0x14000d454
mov r11b, 1
inc r8
mov qword [rbp - 0x38], r8
movzx eax, byte [r8]
cmp al, 0x30
jl 0x14000d52d
cmp al, 0x39
jg 0x14000d52d
inc r8
mov qword [rbp - 0x38], r8
movsx eax, al
sub eax, 0x30
mov ebx, eax
test r11b, r11b
je 0x14000d4e4
lea ecx, [rdi + 0x7ffffff7]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, byte [r8]
cmp al, 0x30
jl 0x14000d544
nop
cmp al, 0x39
jg 0x14000d544
inc r8
mov qword [rbp - 0x38], r8
lea ebx, [rbx + rbx*4]
movsx eax, al
lea ebx, [rbx - 0x18]
lea ebx, [rax + rbx*2]
cmp ebx, edx
jle 0x14000d4da
movzx eax, byte [r8]
cmp al, 0x30
jl 0x14000d4da
cmp al, 0x39
jg 0x14000d4da
inc r8
mov qword [rbp - 0x38], r8
movzx eax, byte [r8]
cmp al, 0x30
jge 0x14000d4c7
movzx eax, byte [r8]
cmp al, 0x30
jge 0x14000d4a0
jmp 0x14000d544
mov edx, 0x134
sub edx, edi
movzx eax, byte [r8]
cmp al, 0x30
jl 0x14000d54b
cmp al, 0x39
jg 0x14000d54b
inc r8
mov qword [rbp - 0x38], r8
lea ebx, [rbx + rbx*4]
movsx eax, al
lea ebx, [rbx - 0x18]
lea ebx, [rax + rbx*2]
cmp ebx, edx
jle 0x14000d523
mov dword [rsi + 0x30], reloc.WS2_32.dll_listen
mov qword [rsi + 0x38], r13
cmp dword [rsi + 0x30], 0
jne 0x14000d5e5
movzx eax, byte [r8]
cmp al, 0x30
jge 0x14000d4f3
jmp 0x14000d54b
sub r8, r15
mov dword [rsi + 0x30], setsockopt
mov qword [rsi + 0x38], r8
cmp dword [rsi + 0x30], ebx
jne 0x14000d5e5
test r11b, r11b
je 0x14000d54b
neg ebx
movzx r11d, byte [rbp + 0x58]
test r14b, r14b
je 0x14000d595
lea edx, [rbx + rdi]
movaps xmm0, xmm1
call fcn.140002d50
comisd xmm0, xmmword [0x1401bc730]
jbe 0x14000d57b
mov dword [rsi + 0x30], reloc.WS2_32.dll_listen
mov qword [rsi + 0x38], r13
cmp dword [rsi + 0x30], 0
jne 0x14000d5e5
test r12b, r12b
je 0x14000d587
xorps xmm0, xmmword [0x1401bc9b0]
movaps xmm1, xmm0
mov rcx, qword [rbp + 0x50]
call fcn.140003bc0
jmp 0x14000d5d6
mov rcx, qword [rbp + 0x50]
test r11b, r11b
je 0x14000d5bb
test r12b, r12b
je 0x14000d5b1
not r9
lea rdx, [r9 + 1]
call fcn.140003cc0
jmp 0x14000d5d6
mov rdx, r9
call fcn.140003c20
jmp 0x14000d5d6
test r12b, r12b
je 0x14000d5ce
not r10d
lea edx, [r10 + 1]
call fcn.140003d80
jmp 0x14000d5d6
mov edx, r10d
call fcn.140003d10
test al, al
jne 0x14000d5e5
mov dword [rsi + 0x30], setsockopt
mov qword [rsi + 0x38], r13
movups xmm0, xmmword [rbp - 0x38]
mov rax, qword [rbp + 0x48]
movups xmmword [rax], xmm0
movsd qword [rax + 0x10], xmm6
mov rbx, qword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret