Function at 0x140036080
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.0x1400360af.35
movsxd rax, r9d
lea r10, [0x140000000]
movzx eax, byte [r10 + rax + 0x360f4]
mov r9d, dword [r10 + rax*4 + 0x360d8]
add r9, r10
jmp r9
jmp 0x140036150
jmp 0x1400361d0
jmp 0x140036260
xor r9d, r9d
jmp 0x140036300
jmp 0x140036860
jmp 0x140036a40
jmp 0x140036bb0
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 0x1400361b0
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x6c
jne 0x1400361b0
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x6c
jne 0x1400361b0
inc rax
mov rcx, r8
mov qword [rdx], rax
call fcn.140003df0
test al, al
jne 0x1400361c2
mov rax, qword [rbx]
sub rax, qword [rbx + 8]
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 + 8]
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 0x140036247
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x75
jne 0x140036247
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x65
jne 0x140036247
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 0x14003621a
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 0x140036259
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 0x1400362e2
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x6c
jne 0x1400362e2
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x73
jne 0x1400362e2
inc rax
mov qword [rdx], rax
cmp byte [rax], 0x65
jne 0x1400362e2
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 0x1400362b5
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 0x1400362f4
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
mov qword [rax + 0x18], r8
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x98
mov qword [rbp - 0x59], 0xfffffffffffffffe
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rsp + 0x50], xmm9
mov r15, rcx
movups xmm1, xmmword [rdx]
movups xmmword [rbp - 0x41], xmm1
mov qword [rbp - 0x31], rdx
movq rbx, xmm1
inc rbx
mov qword [rbp - 0x41], rbx
mov rdi, rcx
mov qword [rbp - 0x51], rcx
xor r14d, r14d
mov r13, qword [rbp - 0x39]
mov dword [rbp - 0x49], r14d
nop dword [rax]
mov rsi, rbx
lea r12, [rbx + 0xf]
and r12, 0xfffffffffffffff0
cmp rbx, r12
je 0x1400363d6
movzx ebx, byte [rsi]
cmp bl, 0x22
je 0x140036503
cmp bl, 0x5c
je 0x140036503
cmp bl, 0x20
jb 0x140036503
mov rax, qword [rdi + 0x20]
sub rax, qword [rdi + 0x18]
cmp rax, 1
jge 0x1400363b9
mov edx, 1
mov rcx, rdi
call fcn.140004260
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 1]
mov qword [rdi + 0x18], rax
mov byte [rcx], bl
inc r14d
mov dword [rbp - 0x49], r14d
inc rsi
cmp rsi, r12
jne 0x140036380
movdqu xmm8, xmmword [str.________________]
movdqu xmm9, xmmword [0x1401ba078]
movdqu xmm7, xmmword [0x1401ba290]
movdqa xmm6, xmmword [rsi]
movdqa xmm1, xmm6
pcmpeqb xmm1, xmm8
movdqa xmm2, xmm6
pcmpeqb xmm2, xmm9
movdqa xmm0, xmm6
pmaxub xmm0, xmm7
pcmpeqb xmm0, xmm7
por xmm2, xmm1
por xmm2, xmm0
pmovmskb eax, xmm2
test ax, ax
jne 0x14003649a
nop dword [rax]
nop word [rax + rax]
add r14d, 0x10
mov rax, qword [rdi + 0x20]
sub rax, qword [rdi + 0x18]
cmp rax, 0x10
jge 0x14003644f
mov edx, select
mov rcx, rdi
call fcn.140004260
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 0x10]
mov qword [rdi + 0x18], rax
movdqu xmmword [rcx], xmm6
add rsi, 0x10
movdqa xmm6, xmmword [rsi]
movdqa xmm1, xmm6
pcmpeqb xmm1, xmm8
movdqa xmm2, xmm6
pcmpeqb xmm2, xmm9
movdqa xmm0, xmm6
pmaxub xmm0, xmm7
pcmpeqb xmm0, xmm7
por xmm2, xmm1
por xmm2, xmm0
pmovmskb eax, xmm2
test ax, ax
je 0x140036430
mov dword [rbp - 0x49], r14d
movzx eax, ax
bsf r12d, eax
test r12d, r12d
je 0x140036503
add r14d, r12d
mov dword [rbp - 0x49], r14d
mov ebx, r12d
mov rax, qword [rdi + 0x20]
sub rax, qword [rdi + 0x18]
cmp rbx, rax
jle 0x1400364c7
mov edx, ebx
mov rcx, rdi
call fcn.140004260
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + r12]
mov qword [rdi + 0x18], rax
test r12d, r12d
je 0x140036500
mov r8, rsi
sub r8, rcx
mov rdx, rbx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
mov byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1400364f0
add rsi, rbx
mov rbx, rsi
mov qword [rbp - 0x41], rbx
movzx r12d, byte [rsi]
cmp r12b, 0x5c
jne 0x1400366bf
mov r12, rsi
sub r12, r13
lea rbx, [rsi + 1]
mov qword [rbp - 0x41], rbx
movzx ecx, byte [rbx]
lea rdx, [0x1401ba2a0]
movzx esi, byte [rcx + rdx]
test sil, sil
je 0x140036572
inc rbx
mov qword [rbp - 0x41], rbx
mov rax, qword [rdi + 0x20]
sub rax, qword [rdi + 0x18]
cmp rax, 1
jge 0x14003655b
mov edx, 1
mov rcx, rdi
call fcn.140004260
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 1]
mov qword [rdi + 0x18], rax
mov byte [rcx], sil
inc r14d
jmp 0x140036365
cmp cl, 0x75
jne 0x1400366a3
inc rbx
mov qword [rbp - 0x41], rbx
mov r8, r12
lea rdx, [rbp - 0x41]
mov rcx, r15
call fcn.140004050
mov edx, eax
mov rbx, qword [rbp - 0x41]
cmp dword [r15 + 0x30], 0
jne 0x140036745
lea r9d, [rax - 0xd800]
cmp r9d, 0x3ff
ja 0x140036689
cmp byte [rbx], 0x5c
jne 0x1400365d0
inc rbx
mov qword [rbp - 0x41], rbx
cmp byte [rbx], 0x75
jne 0x1400365d0
inc rbx
mov qword [rbp - 0x41], rbx
jmp 0x1400365e7
mov dword [r15 + 0x30], 9
mov qword [r15 + 0x38], r12
cmp dword [r15 + 0x30], 0
jne 0x140036745
xor eax, eax
xor r8d, r8d
nop dword [rax]
movsx edx, byte [rbx]
shl eax, 4
add eax, edx
lea ecx, [rdx - 0x30]
cmp cl, 9
ja 0x140036605
add eax, 0xffffffd0
jmp 0x140036632
lea ecx, [rdx - 0x41]
cmp cl, 5
ja 0x140036612
add eax, 0xffffffc9
jmp 0x140036632
sub dl, 0x61
cmp dl, 5
ja 0x14003661f
add eax, 0xffffffa9
jmp 0x140036632
mov dword [r15 + 0x30], 8
mov qword [r15 + 0x38], r12
cmp dword [r15 + 0x30], 0
jne 0x140036644
inc rbx
mov qword [rbp - 0x41], rbx
inc r8d
cmp r8d, 4
jl 0x1400365f0
jmp 0x140036646
xor eax, eax
cmp dword [r15 + 0x30], 0
jne 0x140036745
lea ecx, [rax - 0xdc00]
cmp ecx, 0x3ff
jbe 0x140036676
mov dword [r15 + 0x30], 9
mov qword [r15 + 0x38], r12
cmp dword [r15 + 0x30], 0
jne 0x140036745
mov edx, r9d
shl edx, 0xa
add eax, 0xffff2400
or edx, eax
add edx, 0x10000
lea rcx, [rbp - 0x51]
call fcn.1400040d0
mov r13, qword [rbp - 0x39]
mov r14d, dword [rbp - 0x49]
mov rdi, qword [rbp - 0x51]
jmp 0x140036370
mov dword [r15 + 0x30], 0xa
mov qword [r15 + 0x38], r12
cmp dword [r15 + 0x30], 0
jne 0x140036827
jmp 0x140036370
cmp r12b, 0x22
je 0x14003674b
cmp r12b, 0x20
jae 0x14003670b
sub rsi, r13
mov qword [r15 + 0x38], rsi
test r12b, r12b
jne 0x1400366f3
mov dword [r15 + 0x30], reloc.WS2_32.dll_inet_addr
cmp dword [r15 + 0x30], 0
jne 0x140036827
jmp 0x140036370
mov dword [r15 + 0x30], listen
cmp dword [r15 + 0x30], 0
jne 0x140036827
jmp 0x140036370
lea rbx, [rsi + 1]
mov qword [rbp - 0x41], rbx
mov rax, qword [rdi + 0x20]
sub rax, qword [rdi + 0x18]
cmp rax, 1
jge 0x14003672e
mov edx, 1
mov rcx, rdi
call fcn.140004260
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 1]
mov qword [rdi + 0x18], rax
mov byte [rcx], r12b
inc r14d
jmp 0x140036365
mov r13, qword [rbp - 0x39]
jmp 0x140036780
lea rbx, [rsi + 1]
mov qword [rbp - 0x41], rbx
mov rax, qword [rdi + 0x20]
sub rax, qword [rdi + 0x18]
cmp rax, 1
jge 0x14003676e
mov edx, 1
mov rcx, rdi
call fcn.140004260
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 1]
mov qword [rdi + 0x18], rax
mov byte [rcx], 0
inc r14d
cmp dword [r15 + 0x30], 0
jne 0x140036827
lea esi, [r14 - 1]
mov eax, r14d
sub qword [rdi + 0x18], rax
mov rdi, qword [rdi + 0x18]
cmp byte [rbp + 0x7f], 0
je 0x140036802
mov r14, qword [rbp + 0x77]
mov rax, qword [r14 + 0x40]
sub rax, qword [r14 + 0x38]
cmp rax, 0x10
jge 0x1400367bb
lea rcx, [r14 + 0x20]
call fcn.140004300
mov rcx, qword [r14 + 0x38]
lea rax, [rcx + 0x10]
mov qword [r14 + 0x38], rax
mov qword [rbp + 0x67], rcx
mov qword [rbp + 0x6f], rcx
test rcx, rcx
je 0x140036800
mov r8, qword [r14 + 0x10]
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
lea rax, [0x1401ba6c8]
test rdi, rdi
cmovne rax, rdi
mov qword [rbp - 0x51], rax
mov dword [rbp - 0x49], esi
lea rdx, [rbp - 0x51]
call fcn.140003fc0
nop
jmp 0x140036827
mov r9b, 1
mov r8d, esi
mov rdx, rdi
mov rcx, qword [rbp + 0x77]
call fcn.140003ac0
test al, al
jne 0x140036827
sub rbx, r13
mov dword [r15 + 0x30], socket
mov qword [r15 + 0x38], rbx
mov rax, qword [rbp - 0x31]
movups xmm0, xmmword [rbp - 0x41]
movups xmmword [rax], xmm0
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm9, xmmword [rsp + 0x50]
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
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 0x140036897
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 0x1400368bc
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 0x140036a1c
cmp byte [rax], 0x7d
jne 0x1400368fe
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 0x140036a1c
xor esi, esi
mov rax, qword [rbx]
cmp byte [rax], 0x22
je 0x140036921
sub rax, qword [rbx + 8]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 4
cmp dword [rdi + 0x30], 0
jne 0x140036a1c
mov r9b, 1
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
call 0x140036300
cmp dword [rdi + 0x30], 0
jne 0x140036a1c
mov rcx, qword [rbx]
call fcn.140002da0
mov qword [rbx], rax
cmp dword [rdi + 0x30], 0
jne 0x140036a1c
cmp byte [rax], 0x3a
jne 0x14003695e
inc rax
mov qword [rbx], rax
jmp 0x140036977
sub rax, qword [rbx + 8]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 5
cmp dword [rdi + 0x30], 0
jne 0x140036a1c
mov rcx, qword [rbx]
call fcn.140002da0
mov qword [rbx], rax
cmp dword [rdi + 0x30], 0
jne 0x140036a1c
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
call fcn.140036080
cmp dword [rdi + 0x30], 0
jne 0x140036a1c
mov rcx, qword [rbx]
call fcn.140002da0
mov qword [rbx], rax
cmp dword [rdi + 0x30], 0
jne 0x140036a1c
movzx ecx, byte [rax]
inc esi
cmp cl, 0x2c
je 0x1400369db
cmp cl, 0x7d
je 0x1400369f6
sub rax, qword [rbx + 8]
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x30], 6
cmp dword [rdi + 0x30], 0
je 0x140036900
jmp 0x140036a1c
lea rcx, [rax + 1]
mov qword [rbx], rcx
call fcn.140002da0
mov qword [rbx], rax
cmp dword [rdi + 0x30], 0
je 0x140036900
jmp 0x140036a1c
inc rax
mov edx, esi
mov rcx, rbp
mov qword [rbx], rax
call fcn.140003a80
test al, al
jne 0x140036a1c
mov rax, qword [rbx]
sub rax, qword [rbx + 8]
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 0x140036a78
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 0x140036a9d
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 0x140036b8c
cmp byte [rax], 0x5d
mov qword [rsp + 0x30], rsi
jne 0x140036ae4
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 0x140036b87
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
xor esi, esi
call fcn.140036080
cmp dword [rbx + 0x30], esi
jne 0x140036b87
nop dword [rax]
mov rcx, qword [rdi]
inc esi
call fcn.140002da0
mov qword [rdi], rax
cmp dword [rbx + 0x30], 0
jne 0x140036b87
movzx ecx, byte [rax]
cmp cl, 0x2c
jne 0x140036b2c
lea rcx, [rax + 1]
mov qword [rdi], rcx
call fcn.140002da0
mov qword [rdi], rax
jmp 0x140036b40
cmp cl, 0x5d
je 0x140036b5c
sub rax, qword [rdi + 8]
mov qword [rbx + 0x38], rax
mov dword [rbx + 0x30], 7
cmp dword [rbx + 0x30], 0
jne 0x140036b87
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.140036080
cmp dword [rbx + 0x30], 0
je 0x140036b00
jmp 0x140036b87
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 qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x80], rbx
mov rax, rdx
mov rsi, rcx
movups xmm1, xmmword [rdx]
movups xmmword [rbp - 0x18], xmm1
mov qword [rbp - 8], rdx
movq r9, xmm1
mov qword [rbp - 0x18], r9
mov r13, r9
psrldq xmm1, 8
movq r15, xmm1
sub r13, r15
xorps xmm3, xmm3
movaps xmm1, xmm3
cmp byte [r9], 0x2d
jne 0x140036c1e
inc r9
mov qword [rbp - 0x18], r9
mov r12b, 1
jmp 0x140036c21
xor r12b, r12b
xor ebx, ebx
mov r10d, ebx
mov r8d, ebx
xor r11b, r11b
mov byte [rbp + 0x58], r11b
mov edx, ebx
movzx eax, byte [r9]
movsd xmm2, qword [0x1401bc6e8]
movsd xmm4, qword [0x1401bc720]
cmp al, 0x30
jne 0x140036c59
inc r9
mov qword [rbp - 0x18], r9
xor r14b, r14b
jmp 0x140036e0c
cmp al, 0x31
jl 0x140036cff
cmp al, 0x39
jg 0x140036cff
inc r9
mov qword [rbp - 0x18], r9
movsx r10d, al
sub r10d, 0x30
movzx eax, byte [r9]
test r12b, r12b
je 0x140036cbe
cmp al, 0x30
jl 0x140036d19
cmp al, 0x39
jg 0x140036d19
cmp r10d, 0xccccccc
jb 0x140036ca0
jne 0x140036cf3
cmp al, 0x38
jg 0x140036cf3
inc r9
mov qword [rbp - 0x18], r9
lea ecx, [r10 + r10*4]
movsx eax, al
lea r10d, [rcx - 0x18]
lea r10d, [rax + r10*2]
inc edx
movzx eax, byte [r9]
jmp 0x140036c81
cmp al, 0x30
jl 0x140036d19
cmp al, 0x39
jg 0x140036d19
cmp r10d, 0x19999999
jb 0x140036cd5
jne 0x140036cf3
cmp al, 0x35
jg 0x140036cf3
inc r9
mov qword [rbp - 0x18], r9
lea ecx, [r10 + r10*4]
movsx eax, al
lea r10d, [rcx - 0x18]
lea r10d, [rax + r10*2]
inc edx
movzx eax, byte [r9]
jmp 0x140036cbe
mov r8d, r10d
mov r11b, 1
mov byte [rbp + 0x58], r11b
jmp 0x140036d19
mov rax, r9
sub rax, r15
mov dword [rcx + 0x30], 3
mov qword [rcx + 0x38], rax
cmp dword [rcx + 0x30], edx
jne 0x1400370e5
xor r14b, r14b
test r11b, r11b
je 0x140036dce
movzx eax, byte [r9]
test r12b, r12b
je 0x140036d78
cmp al, 0x30
jl 0x140036dce
movabs rdi, 0xccccccccccccccc
cmp al, 0x39
jg 0x140036dce
cmp r8, rdi
jb 0x140036d53
jne 0x140036dba
cmp al, 0x38
jg 0x140036dba
inc r9
mov qword [rbp - 0x18], 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 0x140036dce
jmp 0x140036d40
cmp al, 0x30
jl 0x140036dce
movabs rdi, 0x1999999999999999
cmp al, 0x39
jg 0x140036dce
cmp r8, rdi
jb 0x140036d95
jne 0x140036dba
cmp al, 0x35
jg 0x140036dba
inc r9
mov qword [rbp - 0x18], 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 0x140036dce
jmp 0x140036d86
xorps xmm1, xmm1
test r8, r8
cvtsi2sd xmm1, r8
jns 0x140036dcb
addsd xmm1, xmm4
mov r14b, 1
test r14b, r14b
je 0x140036e0c
movzx eax, byte [r9]
cmp al, 0x30
jl 0x140036e0c
nop dword [rax + rax]
cmp al, 0x39
jg 0x140036e0c
inc r9
mov qword [rbp - 0x18], r9
movsx eax, al
sub eax, 0x30
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
addsd xmm0, xmm1
movaps xmm1, xmm0
movzx eax, byte [r9]
cmp al, 0x30
jge 0x140036de0
mov edi, ebx
cmp byte [r9], 0x2e
jne 0x140036f00
inc r9
mov qword [rbp - 0x18], r9
movzx eax, byte [r9]
cmp al, 0x30
jl 0x140036e2b
cmp al, 0x39
jle 0x140036e45
mov rax, r9
sub rax, r15
mov dword [rsi + 0x30], select
mov qword [rsi + 0x38], rax
cmp dword [rsi + 0x30], ebx
jne 0x1400370e5
test r14b, r14b
jne 0x140036ebd
mov eax, r10d
test r11b, r11b
cmovne rax, r8
mov r8, rax
movzx ecx, byte [r9]
cmp cl, 0x30
jl 0x140036ea9
movabs r14, 0x1fffffffffffff
nop word [rax + rax]
cmp cl, 0x39
jg 0x140036ea9
cmp r8, r14
ja 0x140036ea9
inc r9
mov qword [rbp - 0x18], 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 0x140036e70
xorps xmm1, xmm1
cvtsi2sd xmm1, r8
test r8, r8
jns 0x140036eba
addsd xmm1, xmm4
mov r14b, 1
movzx eax, byte [r9]
cmp al, 0x30
jl 0x140036f00
cmp al, 0x39
jg 0x140036f00
inc r9
mov qword [rbp - 0x18], r9
cmp edx, 0x11
jge 0x140036ef8
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 0x140036ef8
inc edx
movzx eax, byte [r9]
cmp al, 0x30
jge 0x140036ec5
movzx eax, byte [r9]
cmp al, 0x65
je 0x140036f10
cmp al, 0x45
jne 0x140037050
inc r9
mov qword [rbp - 0x18], r9
test r14b, r14b
jne 0x140036f3b
test r11b, r11b
mov rax, r8
jne 0x140036f27
mov eax, r10d
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
test rax, rax
jns 0x140036f38
addsd xmm1, xmm4
mov r14b, 1
xor r11b, r11b
movzx eax, byte [r9]
cmp al, 0x2b
je 0x140036f4d
cmp al, 0x2d
jne 0x140036f54
mov r11b, 1
inc r9
mov qword [rbp - 0x18], r9
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14003702d
cmp al, 0x39
jg 0x14003702d
inc r9
mov qword [rbp - 0x18], r9
movsx eax, al
sub eax, 0x30
mov ebx, eax
test r11b, r11b
je 0x140036fe4
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 0x140037044
nop
cmp al, 0x39
jg 0x140037044
inc r9
mov qword [rbp - 0x18], r9
lea ebx, [rbx + rbx*4]
movsx eax, al
lea ebx, [rbx - 0x18]
lea ebx, [rax + rbx*2]
cmp ebx, edx
jle 0x140036fda
movzx eax, byte [r9]
cmp al, 0x30
jl 0x140036fda
cmp al, 0x39
jg 0x140036fda
inc r9
mov qword [rbp - 0x18], r9
movzx eax, byte [r9]
cmp al, 0x30
jge 0x140036fc7
movzx eax, byte [r9]
cmp al, 0x30
jge 0x140036fa0
jmp 0x140037044
mov edx, 0x134
sub edx, edi
movzx eax, byte [r9]
cmp al, 0x30
jl 0x14003704b
cmp al, 0x39
jg 0x14003704b
inc r9
mov qword [rbp - 0x18], r9
lea ebx, [rbx + rbx*4]
movsx eax, al
lea ebx, [rbx - 0x18]
lea ebx, [rax + rbx*2]
cmp ebx, edx
jle 0x140037023
mov dword [rsi + 0x30], reloc.WS2_32.dll_listen
mov qword [rsi + 0x38], r13
cmp dword [rsi + 0x30], 0
jne 0x1400370e5
movzx eax, byte [r9]
cmp al, 0x30
jge 0x140036ff3
jmp 0x14003704b
sub r9, r15
mov dword [rsi + 0x30], setsockopt
mov qword [rsi + 0x38], r9
cmp dword [rsi + 0x30], ebx
jne 0x1400370e5
test r11b, r11b
je 0x14003704b
neg ebx
movzx r11d, byte [rbp + 0x58]
test r14b, r14b
je 0x140037095
lea edx, [rbx + rdi]
movaps xmm0, xmm1
call fcn.140002d50
comisd xmm0, xmmword [0x1401bc730]
jbe 0x14003707b
mov dword [rsi + 0x30], reloc.WS2_32.dll_listen
mov qword [rsi + 0x38], r13
cmp dword [rsi + 0x30], 0
jne 0x1400370e5
test r12b, r12b
je 0x140037087
xorps xmm0, xmmword [0x1401bc9b0]
movaps xmm1, xmm0
mov rcx, qword [rbp + 0x50]
call fcn.140003bc0
jmp 0x1400370d6
mov rcx, qword [rbp + 0x50]
test r11b, r11b
je 0x1400370bb
test r12b, r12b
je 0x1400370b1
not r8
lea rdx, [r8 + 1]
call fcn.140003cc0
jmp 0x1400370d6
mov rdx, r8
call fcn.140003c20
jmp 0x1400370d6
test r12b, r12b
je 0x1400370ce
not r10d
lea edx, [r10 + 1]
call fcn.140003d80
jmp 0x1400370d6
mov edx, r10d
call fcn.140003d10
test al, al
jne 0x1400370e5
mov dword [rsi + 0x30], setsockopt
mov qword [rsi + 0x38], r13
movups xmm0, xmmword [rbp - 0x18]
mov rax, qword [rbp + 0x48]
movups xmmword [rax], xmm0
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret