Function at 0x14006f0d0
Capabilities:
Parse credit card information
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
sub rsp, 0x20
mov rbp, r8
mov rsi, rdx
mov rbx, rcx
test r9d, r9d
je 0x14006f101
mov dword [0x140110740], 0x76c
mov dword [0x1401106f4], 0xffffffff
movzx eax, byte [rdx]
mov qword [rsp + 0x30], rdi
test al, al
je 0x14006f87b
movzx ecx, al
xor edi, edi
call fcn.1400871a4
test eax, eax
je 0x14006f148
movzx ecx, byte [rbx]
call fcn.1400871a4
test eax, eax
je 0x14006f140
nop dword [rax + rax]
movzx ecx, byte [rbx + 1]
inc rbx
call fcn.1400871a4
test eax, eax
jne 0x14006f130
inc rsi
jmp 0x14006f870
movzx edx, byte [rsi]
inc rsi
cmp dl, 0x25
jne case.0x14006f184.37
lea r8, [0x140000000]
nop
movzx edx, byte [rsi]
inc rsi
lea eax, [rdx - 0x25]
cmp eax, 0x54
ja case.0x14006f184.59
cdqe
movzx eax, byte [r8 + rax + 0x6f934]
mov ecx, dword [r8 + rax*4 + 0x6f8d8]
add rcx, r8
jmp rcx
test edi, edi
jne case.0x14006f184.59
mov edi, 1
jmp 0x14006f160
test edi, edi
jne case.0x14006f184.59
mov edi, 2
jmp 0x14006f160
test edi, edi
jne case.0x14006f184.59
xor r9d, r9d
lea rdx, str._m__d__y
mov r8, rbp
mov rcx, rbx
call fcn.14006f0d0
mov rbx, rax
test rax, rax
jne 0x14006f870
xor eax, eax
jmp 0x14006f8c2
test edi, edi
jne case.0x14006f184.59
xor r9d, r9d
lea rdx, str._H:_M
mov r8, rbp
mov rcx, rbx
call fcn.14006f0d0
mov rbx, rax
test rax, rax
je case.0x14006f184.59
jmp 0x14006f870
test edi, edi
jne case.0x14006f184.59
xor r9d, r9d
lea rdx, str._I:_M:_S__p
mov r8, rbp
mov rcx, rbx
call fcn.14006f0d0
mov rbx, rax
test rax, rax
je case.0x14006f184.59
jmp 0x14006f870
test edi, edi
jne case.0x14006f184.59
xor r9d, r9d
lea rdx, str._H:_M:_S
mov r8, rbp
mov rcx, rbx
call fcn.14006f0d0
mov rbx, rax
test rax, rax
je case.0x14006f184.59
jmp 0x14006f870
test edi, 0xfffffffe
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, 0x63
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
nop dword [rax]
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0x63
jg 0x14006f2a2
test r8d, r8d
je 0x14006f2a2
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f2a2
cmp cl, 0x39
jbe 0x14006f260
cmp r9d, 0x63
ja case.0x14006f184.59
imul eax, r9d, 0x64
mov dword [0x140110740], eax
jmp 0x14006f870
test edi, 0xfffffffd
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, 0x1f
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
nop dword [rax]
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0x1f
jg 0x14006f322
test r8d, r8d
je 0x14006f322
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f322
cmp cl, 0x39
jbe 0x14006f2e0
lea eax, [r9 - 1]
cmp eax, 0x1e
ja case.0x14006f184.59
mov dword [rbp + 0xc], r9d
jmp 0x14006f870
test edi, edi
jne case.0x14006f184.59
test edi, 0xfffffffd
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, reloc.WS2_32.dll_socket
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0x17
jg 0x14006f3a4
test r8d, r8d
je 0x14006f3a4
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f3a4
cmp cl, 0x39
jbe 0x14006f362
cmp r9d, 0x17
ja case.0x14006f184.59
mov dword [rbp + 8], r9d
jmp 0x14006f870
test edi, edi
jne case.0x14006f184.59
test edi, 0xfffffffd
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, reloc.WS2_32.dll_inet_ntoa
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0xc
jg 0x14006f423
test r8d, r8d
je 0x14006f423
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f423
cmp cl, 0x39
jbe 0x14006f3e1
lea eax, [r9 - 1]
cmp eax, 0xb
ja case.0x14006f184.59
mov dword [rbp + 8], r9d
jmp 0x14006f870
test edi, edi
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, 0x16e
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
nop word [rax + rax]
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0x16e
jg 0x14006f4a5
test r8d, r8d
je 0x14006f4a5
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f4a5
cmp cl, 0x39
jbe 0x14006f460
lea eax, [r9 - 1]
cmp eax, 0x16d
ja case.0x14006f184.59
mov dword [rbp + 0x1c], eax
jmp 0x14006f870
test edi, 0xfffffffd
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, 0x3b
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
nop
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0x3b
jg 0x14006f522
test r8d, r8d
je 0x14006f522
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f522
cmp cl, 0x39
jbe 0x14006f4e0
cmp r9d, 0x3b
ja case.0x14006f184.59
mov dword [rbp + 4], r9d
jmp 0x14006f870
test edi, 0xfffffffd
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, reloc.WS2_32.dll_inet_ntoa
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
nop word [rax + rax]
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0xc
jg 0x14006f5a2
test r8d, r8d
je 0x14006f5a2
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f5a2
cmp cl, 0x39
jbe 0x14006f560
lea eax, [r9 - 1]
cmp eax, 0xb
ja case.0x14006f184.59
mov dword [rbp + 0x10], eax
jmp 0x14006f870
test edi, 0xfffffffd
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, 0x3d
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
nop dword [rax]
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0x3d
jg 0x14006f622
test r8d, r8d
je 0x14006f622
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f622
cmp cl, 0x39
jbe 0x14006f5e0
cmp r9d, 0x3d
ja case.0x14006f184.59
mov dword [rbp], r9d
jmp 0x14006f870
test edi, 0xfffffffd
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, getservbyname
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
nop word [rax + rax]
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0x35
jg 0x14006f6a2
test r8d, r8d
je 0x14006f6a2
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f6a2
cmp cl, 0x39
jbe 0x14006f660
cmp r9d, 0x35
ja case.0x14006f184.59
jmp 0x14006f870
test edi, 0xfffffffd
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, 6
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 6
jg 0x14006f715
test r8d, r8d
je 0x14006f715
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f715
cmp cl, 0x39
jbe 0x14006f6d3
cmp r9d, 6
ja case.0x14006f184.59
mov dword [rbp + 0x18], r9d
jmp 0x14006f870
test edi, 0xfffffffe
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, 0x270f
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
nop word [rax + rax]
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0x270f
jg 0x14006f795
test r8d, r8d
je 0x14006f795
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f795
cmp cl, 0x39
jbe 0x14006f750
cmp r9d, 0x270f
ja case.0x14006f184.59
lea eax, [r9 - 0x76c]
mov dword [0x1401106f4], 0xffffffff
mov dword [rbp + 0x14], eax
jmp 0x14006f870
test edi, 0xfffffffc
jne case.0x14006f184.59
movzx ecx, byte [rbx]
mov r8d, 0x63
lea eax, [rcx - 0x30]
cmp al, 9
ja case.0x14006f184.59
xor edx, edx
nop dword [rax]
lea r9d, [rdx - 0x30]
movzx eax, cl
add r9d, eax
inc rbx
mov eax, 0x66666667
imul r8d
mov r8d, edx
lea edx, [r9 + r9*4]
sar r8d, 2
add edx, edx
mov eax, r8d
shr eax, 0x1f
add r8d, eax
cmp edx, 0x63
jg 0x14006f822
test r8d, r8d
je 0x14006f822
movzx ecx, byte [rbx]
cmp cl, 0x30
jb 0x14006f822
cmp cl, 0x39
jbe 0x14006f7e0
cmp r9d, 0x63
ja case.0x14006f184.59
mov dword [0x1401106f4], r9d
jmp 0x14006f870
test edi, edi
jne case.0x14006f184.59
movzx ecx, byte [rbx]
call fcn.1400871a4
test eax, eax
je 0x14006f870
nop dword [rax]
movzx ecx, byte [rbx + 1]
inc rbx
call fcn.1400871a4
test eax, eax
jne 0x14006f850
jmp 0x14006f870
movzx eax, byte [rbx]
inc rbx
cmp dl, al
jne case.0x14006f184.59
movzx eax, byte [rsi]
test al, al
jne 0x14006f111
mov eax, dword [0x1401106f4]
cmp eax, 0xffffffff
je 0x14006f8bf
cmp dword [0x140110740], 0x76c
jne 0x14006f8aa
cmp eax, 0x44
jg 0x14006f89f
add eax, 0x64
mov dword [rbp + 0x14], eax
jmp 0x14006f8bf
mov eax, dword [0x1401106f4]
mov dword [rbp + 0x14], eax
jmp 0x14006f8bf
mov ecx, dword [0x140110740]
add ecx, 0xfffff894
add ecx, dword [0x1401106f4]
mov dword [rbp + 0x14], ecx
mov rax, rbx
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret