Function at 0x14000a640
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.0x14000a66f.35
movsxd rax, r9d
lea r10, [0x140000000]
movzx eax, byte [r10 + rax + 0xa6b4]
mov r9d, dword [r10 + rax*4 + 0xa698]
add r9, r10
jmp r9
jmp 0x14000a710
jmp 0x14000a7a0
jmp 0x14000a830
xor r9d, r9d
jmp 0x14000a8d0
jmp 0x14000ac00
jmp 0x14000ae70
jmp 0x14000b060
sub rsp, 0x28
inc qword [rdx]
mov rax, qword [rdx]
cmp byte [rax], 0x75
jne 0x14000a782
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x6c
jne 0x14000a782
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x6c
jne 0x14000a782
inc rax
mov qword [rsp + 0x20], rbx
mov qword [rdx], rax
lea rbx, [r8 + 0x20]
mov rax, qword [rbx + 0x18]
add rax, 0x10
cmp rax, qword [rbx + 0x20]
jbe 0x14000a75a
mov rcx, rbx
call fcn.14000bd20
mov rcx, qword [rbx + 0x18]
lea rax, [rcx + 0x10]
mov qword [rbx + 0x18], rax
mov rbx, qword [rsp + 0x20]
test rcx, rcx
je 0x14000a794
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov word [rcx + 0xe], ax
add rsp, 0x28
ret
mov rax, qword [rdx]
sub rax, qword [rdx + 8]
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], 0x72
jne 0x14000a817
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x75
jne 0x14000a817
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x65
jne 0x14000a817
inc rax
mov qword [rsp + 0x20], rbx
mov qword [rdx], rax
lea rbx, [r8 + 0x20]
mov rax, qword [rbx + 0x18]
add rax, 0x10
cmp rax, qword [rbx + 0x20]
jbe 0x14000a7ea
mov rcx, rbx
call fcn.14000bd20
mov rcx, qword [rbx + 0x18]
lea rax, [rcx + 0x10]
mov qword [rbx + 0x18], rax
mov rbx, qword [rsp + 0x20]
test rcx, rcx
je 0x14000a829
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 + 8]
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 0x14000a8b2
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x6c
jne 0x14000a8b2
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x73
jne 0x14000a8b2
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x65
jne 0x14000a8b2
inc rax
mov qword [rsp + 0x20], rbx
mov qword [rdx], rax
lea rbx, [r8 + 0x20]
mov rax, qword [rbx + 0x18]
add rax, 0x10
cmp rax, qword [rbx + 0x20]
jbe 0x14000a885
mov rcx, rbx
call fcn.14000bd20
mov rcx, qword [rbx + 0x18]
lea rax, [rcx + 0x10]
mov qword [rbx + 0x18], rax
mov rbx, qword [rsp + 0x20]
test rcx, rcx
je 0x14000a8c4
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 + 8]
mov qword [rcx + 0x38], rax
mov dword [rcx + 0x30], 3
add rsp, 0x28
ret
mov rax, rsp
mov byte [rax + 0x20], r9b
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rax - 0x58], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov r12, r8
mov r13, rdx
mov rdi, rcx
movups xmm1, xmmword [rdx]
movups xmmword [rax - 0x40], xmm1
mov qword [rax - 0x30], rdx
movq rbx, xmm1
inc rbx
mov qword [rax - 0x40], rbx
mov rbp, rcx
mov qword [rax - 0x50], rcx
xor r14d, r14d
lea rdx, [0x1400c1410]
mov r15, qword [rax - 0x38]
mov dword [rsp + 0x30], r14d
movzx esi, byte [rbx]
cmp sil, 0x5c
jne 0x14000ab2c
mov r10, rbx
sub r10, r15
inc rbx
mov qword [rsp + 0x38], rbx
movzx ecx, byte [rbx]
movzx esi, byte [rcx + rdx]
test sil, sil
je 0x14000a996
inc rbx
mov qword [rsp + 0x38], rbx
mov rax, qword [rbp + 0x18]
inc rax
cmp rax, qword [rbp + 0x20]
jbe 0x14000a982
mov edx, 1
mov rcx, rbp
call fcn.14000a320
lea rdx, [0x1400c1410]
mov rcx, qword [rbp + 0x18]
lea rax, [rcx + 1]
mov qword [rbp + 0x18], rax
mov byte [rcx], sil
inc r14d
jmp 0x14000a92d
cmp cl, 0x75
jne 0x14000ab12
inc rbx
mov qword [rsp + 0x38], rbx
xor edx, edx
xor r8d, r8d
nop dword [rax]
movsx ecx, byte [rbx]
shl edx, 4
add edx, ecx
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14000a9c4
add edx, 0xffffffd0
jmp 0x14000a9ee
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x14000a9d0
add edx, 0xffffffc9
jmp 0x14000a9ee
sub cl, 0x61
cmp cl, 5
ja 0x14000a9dd
add edx, 0xffffffa9
jmp 0x14000a9ee
mov dword [rdi + 0x30], 8
mov qword [rdi + 0x38], r10
cmp dword [rdi + 0x30], 0
jne 0x14000aa01
inc rbx
mov qword [rsp + 0x38], rbx
inc r8d
cmp r8d, 4
jl 0x14000a9b0
jmp 0x14000aa03
xor edx, edx
cmp dword [rdi + 0x30], 0
jne 0x14000abd2
lea r9d, [rdx - 0xd800]
cmp r9d, 0x3ff
ja 0x14000aaf2
cmp byte [rbx], 0x5c
jne 0x14000aa3d
inc rbx
mov qword [rsp + 0x38], rbx
cmp byte [rbx], 0x75
jne 0x14000aa3d
inc rbx
mov qword [rsp + 0x38], rbx
jmp 0x14000aa52
mov dword [rdi + 0x30], 9
mov qword [rdi + 0x38], r10
cmp dword [rdi + 0x30], 0
jne 0x14000abd2
xor edx, edx
xor r8d, r8d
nop word [rax + rax]
movsx ecx, byte [rbx]
shl edx, 4
add edx, ecx
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14000aa74
add edx, 0xffffffd0
jmp 0x14000aa9e
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x14000aa80
add edx, 0xffffffc9
jmp 0x14000aa9e
sub cl, 0x61
cmp cl, 5
ja 0x14000aa8d
add edx, 0xffffffa9
jmp 0x14000aa9e
mov dword [rdi + 0x30], 8
mov qword [rdi + 0x38], r10
cmp dword [rdi + 0x30], 0
jne 0x14000aab1
inc rbx
mov qword [rsp + 0x38], rbx
inc r8d
cmp r8d, 4
jl 0x14000aa60
jmp 0x14000aab3
xor edx, edx
cmp dword [rdi + 0x30], 0
jne 0x14000abd2
lea eax, [rdx - 0xdc00]
cmp eax, 0x3ff
jbe 0x14000aadf
mov dword [rdi + 0x30], 9
mov qword [rdi + 0x38], r10
cmp dword [rdi + 0x30], 0
jne 0x14000abd2
add edx, 0xffff2400
shl r9d, 0xa
or edx, r9d
add edx, 0x10000
lea rcx, [rsp + 0x28]
call fcn.14000bba0
mov r14d, dword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
lea rdx, [0x1400c1410]
jmp 0x14000a932
mov dword [rdi + 0x30], 0xa
mov qword [rdi + 0x38], r10
cmp dword [rdi + 0x30], 0
jne 0x14000abd2
jmp 0x14000a932
cmp sil, 0x22
je 0x14000ab6f
cmp sil, 0x20
jae 0x14000a959
mov rax, rbx
sub rax, r15
mov qword [rdi + 0x38], rax
test sil, sil
jne 0x14000ab5d
mov dword [rdi + 0x30], reloc.WS2_32.dll_inet_addr
cmp dword [rdi + 0x30], 0
jne 0x14000abd2
jmp 0x14000a932
mov dword [rdi + 0x30], recv
cmp dword [rdi + 0x30], 0
jne 0x14000abd2
jmp 0x14000a932
inc rbx
mov qword [rsp + 0x38], rbx
mov rax, qword [rbp + 0x18]
inc rax
cmp rax, qword [rbp + 0x20]
jbe 0x14000ab91
mov edx, 1
mov rcx, rbp
call fcn.14000a320
mov rcx, qword [rbp + 0x18]
lea rax, [rcx + 1]
mov qword [rbp + 0x18], rax
mov byte [rcx], 0
inc r14d
cmp dword [rdi + 0x30], 0
jne 0x14000abd2
lea r8d, [r14 - 1]
mov eax, r14d
sub qword [rbp + 0x18], rax
mov rdx, qword [rbp + 0x18]
mov rcx, r12
call fcn.14000b740
test al, al
jne 0x14000abd2
sub rbx, r15
mov dword [rdi + 0x30], reloc.WS2_32.dll_recv
mov qword [rdi + 0x38], rbx
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [r13], xmm0
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
inc qword [rdx]
mov r14, r8
mov rax, qword [r8 + 0x38]
mov rbx, rdx
add rax, 0x10
mov rdi, rcx
cmp rax, qword [r8 + 0x40]
jbe 0x14000ac3e
lea rcx, [r8 + 0x20]
call fcn.14000bd20
mov rcx, qword [r14 + 0x38]
lea rax, [rcx + 0x10]
mov qword [r14 + 0x38], rax
test rcx, rcx
je 0x14000ac61
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov eax, 3
mov word [rcx + 0xe], ax
movups xmm0, xmmword [rbx]
movabs r15, 0x100002600
movups xmmword [rbp - 0x50], xmm0
mov rcx, qword [rbp - 0x50]
movzx eax, byte [rcx]
cmp al, 0x20
ja 0x14000ac8c
movsx rax, al
bt r15, rax
jae 0x14000ac8c
inc rcx
jmp 0x14000ac76
mov qword [rbp - 0x50], rcx
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [rbx], xmm0
cmp dword [rdi + 0x30], 0
jne 0x14000ae55
mov rax, qword [rbx]
cmp byte [rax], 0x7d
jne 0x14000accc
inc rax
xor r8d, r8d
mov qword [rbx], rax
mov rcx, qword [r14 + 0x38]
mov r9, qword [r14 + 0x10]
sub rcx, 0x10
mov rdx, qword [r14 + 0x38]
call fcn.14000b930
jmp 0x14000ae55
xor esi, esi
nop
mov rax, qword [rbx]
cmp byte [rax], 0x22
je 0x14000acf1
sub rax, qword [rbx + 8]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 4
cmp dword [rdi + 0x30], 0
jne 0x14000ae55
mov r9b, 1
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call 0x14000a8d0
cmp dword [rdi + 0x30], 0
jne 0x14000ae55
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x50], xmm0
mov rcx, qword [rbp - 0x50]
movzx eax, byte [rcx]
cmp al, 0x20
ja 0x14000ad2d
movsx rax, al
bt r15, rax
jae 0x14000ad2d
inc rcx
jmp 0x14000ad17
mov qword [rbp - 0x50], rcx
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [rbx], xmm0
cmp dword [rdi + 0x30], 0
jne 0x14000ae55
mov rax, qword [rbx]
cmp byte [rax], 0x3a
jne 0x14000ad52
inc rax
mov qword [rbx], rax
jmp 0x14000ad6b
sub rax, qword [rbx + 8]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 5
cmp dword [rdi + 0x30], 0
jne 0x14000ae55
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x38], xmm0
mov rcx, qword [rbp - 0x38]
movzx eax, byte [rcx]
cmp al, 0x20
ja 0x14000ad8c
movsx rax, al
bt r15, rax
jae 0x14000ad8c
inc rcx
jmp 0x14000ad76
mov qword [rbp - 0x38], rcx
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rbx], xmm0
cmp dword [rdi + 0x30], 0
jne 0x14000ae55
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.14000a640
cmp dword [rdi + 0x30], 0
jne 0x14000ae55
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x20], xmm0
mov rcx, qword [rbp - 0x20]
movzx eax, byte [rcx]
cmp al, 0x20
ja 0x14000adda
movsx rax, al
bt r15, rax
jae 0x14000adda
inc rcx
jmp 0x14000adc4
mov qword [rbp - 0x20], rcx
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rbx], xmm0
cmp dword [rdi + 0x30], 0
jne 0x14000ae55
mov rax, qword [rbx]
inc esi
movzx ecx, byte [rax]
cmp cl, 0x2c
je 0x14000ae18
cmp cl, 0x7d
je 0x14000ae32
sub rax, qword [rbx + 8]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 6
cmp dword [rdi + 0x30], 0
je 0x14000acd0
jmp 0x14000ae55
inc rax
mov rdx, rbx
mov qword [rbx], rax
call fcn.14000a5f0
cmp dword [rdi + 0x30], 0
je 0x14000acd0
jmp 0x14000ae55
inc qword [rbx]
mov edx, esi
mov rcx, r14
call fcn.14000b700
test al, al
jne 0x14000ae55
mov rax, qword [rbx]
sub rax, qword [rbx + 8]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], reloc.WS2_32.dll_recv
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rdi
push r14
push r15
sub rsp, 0x50
inc qword [rdx]
mov rbp, r8
mov rax, qword [r8 + 0x38]
mov rbx, rdx
add rax, 0x10
mov rdi, rcx
cmp rax, qword [r8 + 0x40]
jbe 0x14000aea6
lea rcx, [r8 + 0x20]
call fcn.14000bd20
mov rcx, qword [rbp + 0x38]
lea rax, [rcx + 0x10]
mov qword [rbp + 0x38], rax
test rcx, rcx
je 0x14000aec9
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov eax, 4
mov word [rcx + 0xe], ax
movups xmm0, xmmword [rbx]
movabs r15, 0x100002600
movups xmmword [rsp + 0x20], xmm0
mov rcx, qword [rsp + 0x20]
movzx eax, byte [rcx]
cmp al, 0x20
ja 0x14000aef6
movsx rax, al
bt r15, rax
jae 0x14000aef6
inc rcx
jmp 0x14000aee0
mov qword [rsp + 0x20], rcx
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rbx], xmm0
cmp dword [rdi + 0x30], 0
jne 0x14000b046
mov rax, qword [rbx]
cmp byte [rax], 0x5d
jne 0x14000af38
inc rax
xor r8d, r8d
mov qword [rbx], rax
mov rcx, qword [rbp + 0x38]
mov r9, qword [rbp + 0x10]
sub rcx, 0x10
mov rdx, qword [rbp + 0x38]
call fcn.14000b9c0
jmp 0x14000b046
mov qword [rsp + 0x70], rsi
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
xor esi, esi
call fcn.14000a640
cmp dword [rdi + 0x30], esi
jne 0x14000b041
nop word [rax + rax]
movups xmm0, xmmword [rbx]
inc esi
movups xmmword [rsp + 0x20], xmm0
mov rcx, qword [rsp + 0x20]
nop
movzx eax, byte [rcx]
cmp al, 0x20
ja 0x14000af86
movsx rax, al
bt r15, rax
jae 0x14000af86
inc rcx
jmp 0x14000af70
mov qword [rsp + 0x20], rcx
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rbx], xmm0
cmp dword [rdi + 0x30], 0
jne 0x14000b041
mov rax, qword [rbx]
movzx ecx, byte [rax]
cmp cl, 0x2c
jne 0x14000afe5
inc rax
mov qword [rbx], rax
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0x38], xmm0
mov rcx, qword [rsp + 0x38]
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp al, 0x20
ja 0x14000afd6
movsx rax, al
bt r15, rax
jae 0x14000afd6
inc rcx
jmp 0x14000afc0
mov qword [rsp + 0x38], rcx
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [rbx], xmm0
jmp 0x14000aff9
cmp cl, 0x5d
je 0x14000b019
sub rax, qword [rbx + 8]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 7
cmp dword [rdi + 0x30], 0
jne 0x14000b041
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
call fcn.14000a640
cmp dword [rdi + 0x30], 0
je 0x14000af60
jmp 0x14000b041
inc qword [rbx]
mov r8d, esi
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.14000b9c0
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
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, 0x50
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
movaps xmmword [rax - 0x48], xmm6
mov rax, rdx
mov rsi, rcx
movups xmm1, xmmword [rdx]
movups xmmword [rbp - 0x28], xmm1
mov qword [rbp - 0x18], rdx
movq r9, xmm1
mov qword [rbp - 0x28], r9
mov r13, r9
psrldq xmm1, 8
movq r15, xmm1
sub r13, r15
xorps xmm3, xmm3
movaps xmm6, xmm3
cmp byte [r9], 0x2d
jne 0x14000b0cf
inc r9
mov qword [rbp - 0x28], r9
mov r12b, 1
jmp 0x14000b0d2
xor r12b, r12b
xor r11d, r11d
mov ebx, r11d
mov r8d, r11d
xor r10b, r10b
mov byte [rbp + 0x58], r10b
mov edx, r11d
movzx eax, byte [r9]
movsd xmm1, qword [0x1400c64e8]
movsd xmm2, qword [0x1400c64f8]
cmp al, 0x30
jne 0x14000b10c
inc r9
mov qword [rbp - 0x28], r9
xor r14b, r14b
jmp 0x14000b2bc
cmp al, 0x31
jl 0x14000b1a8
cmp al, 0x39
jg 0x14000b1a8
inc r9
mov qword [rbp - 0x28], r9
movsx ebx, al
sub ebx, 0x30
movzx eax, byte [r9]
test r12b, r12b
je 0x14000b16b
cmp al, 0x30
jl 0x14000b1c2
cmp al, 0x39
jg 0x14000b1c2
cmp ebx, 0xccccccc
jb 0x14000b150
jne 0x14000b19c
cmp al, 0x38
jg 0x14000b19c
inc r9
mov qword [rbp - 0x28], r9
lea ecx, [rbx + rbx*4]
movsx eax, al
lea ebx, [rcx - 0x18]
lea ebx, [rax + rbx*2]
inc edx
movzx eax, byte [r9]
jmp 0x14000b132
cmp al, 0x30
jl 0x14000b1c2
cmp al, 0x39
jg 0x14000b1c2
cmp ebx, 0x19999999
jb 0x14000b181
jne 0x14000b19c
cmp al, 0x35
jg 0x14000b19c
inc r9
mov qword [rbp - 0x28], r9
lea ecx, [rbx + rbx*4]
movsx eax, al
lea ebx, [rcx - 0x18]
lea ebx, [rax + rbx*2]
inc edx
movzx eax, byte [r9]
jmp 0x14000b16b
mov r8d, ebx
mov r10b, 1
mov byte [rbp + 0x58], r10b
jmp 0x14000b1c2
mov rax, r9
sub rax, r15
mov dword [rcx + 0x30], 3
mov qword [rcx + 0x38], rax
cmp dword [rcx + 0x30], edx
jne 0x14000b6c1
xor r14b, r14b
test r10b, r10b
je 0x14000b27e
movzx eax, byte [r9]
test r12b, r12b
je 0x14000b228
cmp al, 0x30
jl 0x14000b27e
movabs rdi, 0xccccccccccccccc
nop dword [rax]
cmp al, 0x39
jg 0x14000b27e
cmp r8, rdi
jb 0x14000b203
jne 0x14000b26a
cmp al, 0x38
jg 0x14000b26a
inc r9
mov qword [rbp - 0x28], r9
movsx rcx, al
sub rcx, 0x30
mov ecx, ecx
lea rax, [r8 + r8*4]
lea r8, [rcx + rax*2]
inc edx
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14000b27e
jmp 0x14000b1f0
cmp al, 0x30
jl 0x14000b27e
movabs rdi, 0x1999999999999999
cmp al, 0x39
jg 0x14000b27e
cmp r8, rdi
jb 0x14000b245
jne 0x14000b26a
cmp al, 0x35
jg 0x14000b26a
inc r9
mov qword [rbp - 0x28], r9
movsx rcx, al
sub rcx, 0x30
mov ecx, ecx
lea rax, [r8 + r8*4]
lea r8, [rcx + rax*2]
inc edx
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14000b27e
jmp 0x14000b236
xorps xmm6, xmm6
test r8, r8
cvtsi2sd xmm6, r8
jns 0x14000b27b
addsd xmm6, xmm2
mov r14b, 1
test r14b, r14b
je 0x14000b2bc
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14000b2bc
nop dword [rax + rax]
cmp al, 0x39
jg 0x14000b2bc
inc r9
mov qword [rbp - 0x28], r9
movsx eax, al
sub eax, 0x30
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm6, xmm1
addsd xmm0, xmm6
movaps xmm6, xmm0
movzx eax, byte [r9]
cmp al, 0x30
jge 0x14000b290
mov edi, r11d
cmp byte [r9], 0x2e
jne 0x14000b3b0
inc r9
mov qword [rbp - 0x28], r9
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14000b2dc
cmp al, 0x39
jle 0x14000b2f7
mov rax, r9
sub rax, r15
mov dword [rsi + 0x30], SafeArrayLock
mov qword [rsi + 0x38], rax
cmp dword [rsi + 0x30], r11d
jne 0x14000b6c1
test r14b, r14b
jne 0x14000b36d
mov eax, ebx
test r10b, r10b
cmovne rax, r8
mov r8, rax
movzx ecx, byte [r9]
cmp cl, 0x30
jl 0x14000b359
movabs r14, 0x1fffffffffffff
nop dword [rax + rax]
cmp cl, 0x39
jg 0x14000b359
cmp r8, r14
ja 0x14000b359
inc r9
mov qword [rbp - 0x28], r9
movsx rcx, cl
sub rcx, 0x30
mov ecx, ecx
lea rax, [r8 + r8*4]
lea r8, [rcx + rax*2]
dec edi
movzx ecx, byte [r9]
lea eax, [rdx + 1]
test r8, r8
cmove eax, edx
mov edx, eax
cmp cl, 0x30
jge 0x14000b320
xorps xmm6, xmm6
cvtsi2sd xmm6, r8
test r8, r8
jns 0x14000b36a
addsd xmm6, xmm2
mov r14b, 1
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14000b3b0
cmp al, 0x39
jg 0x14000b3b0
inc r9
mov qword [rbp - 0x28], r9
cmp edx, 0x11
jge 0x14000b3a8
movsx eax, al
sub eax, 0x30
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm6, xmm1
addsd xmm0, xmm6
movaps xmm6, xmm0
dec edi
comisd xmm0, xmm3
jbe 0x14000b3a8
inc edx
movzx eax, byte [r9]
cmp al, 0x30
jge 0x14000b375
movzx eax, byte [r9]
cmp al, 0x65
je 0x14000b3c0
cmp al, 0x45
jne 0x14000b513
inc r9
mov qword [rbp - 0x28], r9
test r14b, r14b
jne 0x14000b3ea
test r10b, r10b
mov rax, r8
jne 0x14000b3d6
mov eax, ebx
xorps xmm6, xmm6
cvtsi2sd xmm6, rax
test rax, rax
jns 0x14000b3e7
addsd xmm6, xmm2
mov r14b, 1
xor r10b, r10b
movzx eax, byte [r9]
cmp al, 0x2b
je 0x14000b3fc
cmp al, 0x2d
jne 0x14000b403
mov r10b, 1
inc r9
mov qword [rbp - 0x28], r9
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14000b4ee
cmp al, 0x39
jg 0x14000b4ee
inc r9
mov qword [rbp - 0x28], r9
movsx eax, al
sub eax, 0x30
mov r11d, eax
test r10b, r10b
je 0x14000b49d
lea ecx, [rdi + 0x7ffffff7]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14000b506
nop
cmp al, 0x39
jg 0x14000b506
inc r9
mov qword [rbp - 0x28], r9
lea r11d, [r11 + r11*4]
movsx eax, al
lea r11d, [r11 - 0x18]
lea r11d, [rax + r11*2]
cmp r11d, edx
jle 0x14000b493
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14000b493
nop dword [rax + rax]
cmp al, 0x39
jg 0x14000b493
inc r9
mov qword [rbp - 0x28], r9
movzx eax, byte [r9]
cmp al, 0x30
jge 0x14000b480
movzx eax, byte [r9]
cmp al, 0x30
jge 0x14000b450
jmp 0x14000b506
mov edx, 0x134
sub edx, edi
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14000b50e
nop dword [rax]
cmp al, 0x39
jg 0x14000b50e
inc r9
mov qword [rbp - 0x28], r9
lea r11d, [r11 + r11*4]
movsx eax, al
lea r11d, [r11 - 0x18]
lea r11d, [rax + r11*2]
cmp r11d, edx
jle 0x14000b4e4
mov dword [rsi + 0x30], SafeArrayGetLBound
mov qword [rsi + 0x38], r13
cmp dword [rsi + 0x30], 0
jne 0x14000b6c1
movzx eax, byte [r9]
cmp al, 0x30
jge 0x14000b4b0
jmp 0x14000b50e
sub r9, r15
mov dword [rsi + 0x30], SafeArrayLock
mov qword [rsi + 0x38], r9
cmp dword [rsi + 0x30], r11d
jne 0x14000b6c1
test r10b, r10b
je 0x14000b50e
neg r11d
movzx r10d, byte [rbp + 0x58]
test r14b, r14b
je 0x14000b5ed
lea eax, [r11 + rdi]
cmp eax, 0xfffffecc
jge 0x14000b554
divsd xmm6, qword [0x1400c6500]
add eax, 0x134
cmp eax, 0xfffffecc
jge 0x14000b540
movaps xmm6, xmm3
jmp 0x14000b599
lea rcx, [0x1400c17d0]
test eax, eax
cdqe
js 0x14000b56f
mulsd xmm6, qword [rcx + rax*8]
jmp 0x14000b57a
lea rcx, [0x1400c17d0]
test eax, eax
cdqe
js 0x14000b56f
movsd xmm0, qword [rcx + rax*8]
mulsd xmm0, xmm6
movaps xmm6, xmm0
jmp 0x14000b57a
shl rax, 3
sub rcx, rax
divsd xmm6, qword [rcx]
comisd xmm6, xmmword [0x1400c6508]
jbe 0x14000b599
mov dword [rsi + 0x30], SafeArrayGetLBound
mov qword [rsi + 0x38], r13
cmp dword [rsi + 0x30], 0
jne 0x14000b6c1
test r12b, r12b
je 0x14000b5a5
xorps xmm6, xmmword [0x1400c6510]
mov rdi, qword [rbp + 0x50]
mov rax, qword [rdi + 0x38]
add rax, 0x10
cmp rax, qword [rdi + 0x40]
jbe 0x14000b5c0
lea rcx, [rdi + 0x20]
call fcn.14000bd20
mov rcx, qword [rdi + 0x38]
lea rax, [rcx + 0x10]
mov qword [rdi + 0x38], rax
test rcx, rcx
je 0x14000b6c1
xor eax, eax
mov qword [rcx + 8], rax
movsd qword [rcx], xmm6
mov eax, 0x216
mov word [rcx + 0xe], ax
jmp 0x14000b6c1
test r10b, r10b
je 0x14000b629
mov rcx, qword [rbp + 0x50]
test r12b, r12b
je 0x14000b609
not r8
lea rdx, [r8 + 1]
call fcn.14000b880
jmp 0x14000b611
mov rdx, r8
call fcn.14000b7e0
test al, al
jne 0x14000b6c1
mov dword [rsi + 0x30], reloc.WS2_32.dll_recv
mov qword [rsi + 0x38], r13
jmp 0x14000b6c1
mov rdi, qword [rbp + 0x50]
mov rax, qword [rdi + 0x38]
add rax, 0x10
test r12b, r12b
je 0x14000b680
not ebx
inc ebx
cmp rax, qword [rdi + 0x40]
jbe 0x14000b64d
lea rcx, [rdi + 0x20]
call fcn.14000bd20
mov rcx, qword [rdi + 0x38]
lea rax, [rcx + 0x10]
mov qword [rdi + 0x38], rax
test rcx, rcx
je 0x14000b6c1
xor eax, eax
mov qword [rcx + 8], rax
movsxd rax, ebx
mov qword [rcx], rax
mov eax, 0xb6
mov edx, 0x1f6
test ebx, ebx
cmovns ax, dx
mov word [rcx + 0xe], ax
jmp 0x14000b6c1
cmp rax, qword [rdi + 0x40]
jbe 0x14000b68f
lea rcx, [rdi + 0x20]
call fcn.14000bd20
mov rcx, qword [rdi + 0x38]
lea rax, [rcx + 0x10]
mov qword [rdi + 0x38], rax
test rcx, rcx
je 0x14000b6c1
xor eax, eax
mov qword [rcx + 8], rax
mov eax, ebx
mov qword [rcx], rax
shr ebx, 0x1a
not bx
and bx, 0x20
mov eax, 0x1d6
or bx, ax
mov word [rcx + 0xe], bx
movups xmm0, xmmword [rbp - 0x28]
mov rax, qword [rbp + 0x48]
movups xmmword [rax], xmm0
mov rbx, qword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret