Function at 0x18005e9dc
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rdx
movzx edx, byte [rcx]
mov r10, rcx
cmp edx, 0x2e
lea r11, [0x180064a30]
mov dil, 4
jg 0x18005eb85
je 0x18005eb6f
cmp edx, 0x26
jg 0x18005ead1
je 0x18005eac9
cmp edx, 0x21
jg 0x18005eaa0
je 0x18005ea7e
cmp edx, 9
jl 0x18005ef7d
cmp edx, 0xa
jle 0x18005ea48
cmp edx, 0xb
jle 0x18005ef7d
cmp edx, 0xd
jle 0x18005ea48
cmp edx, 0x20
jne 0x18005ef7d
inc r10
lea r11, [0x180064a30]
mov ecx, 1
movzx eax, byte [r10]
test byte [rax + r11], cl
je 0x18005ea71
inc r10
inc ecx
movzx eax, byte [r10]
test byte [rax + r11], 1
jne 0x18005ea61
mov dword [rbx], 0x97
mov eax, ecx
jmp 0x18005f062
cmp byte [rcx + 1], 0x3d
mov eax, 2
je 0x18005ea95
mov ecx, 0x96
mov dword [rbx], ecx
jmp 0x18005f062
mov dword [rbx], 0x4e
jmp 0x18005f062
cmp edx, 0x22
je 0x18005ee55
jle 0x18005ef7d
cmp edx, 0x24
jle 0x18005efcc
cmp edx, 0x25
jne 0x18005ef7d
mov dword [rbx], 0x5d
jmp 0x18005eb3d
mov dword [rbx], 0x55
jmp 0x18005eb3d
mov ecx, edx
sub ecx, 0x27
je 0x18005ee55
sub ecx, 1
je 0x18005eb67
sub ecx, 1
je 0x18005eb5f
sub ecx, 1
je 0x18005eb57
sub ecx, 1
je 0x18005eb4f
sub ecx, 1
je 0x18005eb47
cmp ecx, 1
jne 0x18005ef7d
cmp byte [r10 + 1], 0x2d
jne 0x18005eb37
lea r8d, [rcx + 1]
add r10, r8
xor r9d, r9d
jmp 0x18005eb20
cmp eax, 0xa
je 0x18005eb29
inc r8d
inc r10
movzx eax, byte [r10]
cmp eax, r9d
jne 0x18005eb15
mov dword [rbx], 0x97
mov eax, r8d
jmp 0x18005f062
mov dword [rbx], 0x5a
mov eax, 1
jmp 0x18005f062
mov dword [rbx], 0x1a
jmp 0x18005eb3d
mov dword [rbx], 0x59
jmp 0x18005eb3d
mov dword [rbx], 0x5b
jmp 0x18005eb3d
mov dword [rbx], 0x17
jmp 0x18005eb3d
mov dword [rbx], 0x16
jmp 0x18005eb3d
movzx eax, byte [rcx + 1]
test byte [rax + r11], dil
jne 0x18005ec5d
mov dword [rbx], 0x7a
jmp 0x18005eb3d
cmp edx, 0x3f
jg 0x18005edf7
je 0x18005edbd
cmp edx, 0x2f
je 0x18005ed71
jle 0x18005ef7d
cmp edx, 0x39
jle 0x18005ec5d
cmp edx, 0x3a
je 0x18005efcc
cmp edx, 0x3b
je 0x18005ec52
cmp edx, 0x3c
je 0x18005ec14
cmp edx, 0x3d
je 0x18005ebfa
cmp edx, 0x3e
jne 0x18005ef7d
movzx eax, byte [rcx + 1]
cmp eax, 0x3d
jne 0x18005ebe2
mov dword [rbx], 0x53
jmp 0x18005ec23
cmp eax, 0x3e
jne 0x18005ebef
mov dword [rbx], 0x58
jmp 0x18005ec23
mov dword [rbx], 0x50
jmp 0x18005eb3d
xor r9d, r9d
cmp byte [rcx + 1], 0x3d
mov dword [rbx], 0x4f
sete r9b
lea eax, [r9 + 1]
jmp 0x18005f062
movzx eax, byte [rcx + 1]
cmp eax, 0x3d
jne 0x18005ec2d
mov dword [rbx], 0x51
mov eax, 2
jmp 0x18005f062
cmp eax, 0x3e
jne 0x18005ec3a
mov dword [rbx], 0x4e
jmp 0x18005ec23
cmp eax, 0x3c
jne 0x18005ec47
mov dword [rbx], 0x57
jmp 0x18005ec23
mov dword [rbx], 0x52
jmp 0x18005eb3d
mov dword [rbx], 1
jmp 0x18005eb3d
mov dword [rbx], 0x84
cmp dl, 0x30
jne 0x18005ec9e
mov al, byte [rcx + 1]
cmp al, 0x78
je 0x18005ec73
cmp al, 0x58
jne 0x18005ec9e
movzx eax, byte [rcx + 2]
mov r9b, 8
test byte [rax + r11], r9b
je 0x18005ec9e
mov ecx, 3
add r10, rcx
jmp 0x18005ec8f
inc ecx
inc r10
movzx eax, byte [r10]
test byte [rax + r11], r9b
jne 0x18005ec8a
jmp 0x18005ea77
xor r9d, r9d
test byte [rdx + r11], dil
je 0x18005ecb6
inc rcx
inc r9d
movzx eax, byte [rcx]
test byte [rax + r11], dil
jne 0x18005eca7
movsxd rax, r9d
mov edx, 0x85
cmp byte [rax + r10], 0x2e
jne 0x18005ecea
inc r9d
movsxd rcx, r9d
movzx eax, byte [rcx + r10]
test byte [rax + r11], dil
je 0x18005ece8
add rcx, r10
inc rcx
inc r9d
movzx eax, byte [rcx]
test byte [rax + r11], dil
jne 0x18005ecd9
mov dword [rbx], edx
movsxd rcx, r9d
mov al, byte [rcx + r10]
cmp al, 0x65
je 0x18005ecf9
cmp al, 0x45
jne 0x18005ed3f
movzx eax, byte [rcx + r10 + 1]
test byte [rax + r11], dil
jne 0x18005ed19
cmp al, 0x2b
je 0x18005ed0d
cmp al, 0x2d
jne 0x18005ed3f
movzx eax, byte [rcx + r10 + 2]
test byte [rax + r11], dil
je 0x18005ed3f
add r9d, 2
movsxd rcx, r9d
movzx eax, byte [rcx + r10]
test byte [rax + r11], dil
je 0x18005ed3d
add rcx, r10
inc rcx
inc r9d
movzx eax, byte [rcx]
test byte [rax + r11], dil
jne 0x18005ed2e
mov dword [rbx], edx
movsxd rcx, r9d
movzx eax, byte [rcx + r10]
test byte [rax + r11], 0x46
je 0x18005ed69
lea rax, [rcx + r10]
inc rax
inc r9d
movzx ecx, byte [rax]
test byte [rcx + r11], 0x46
jne 0x18005ed52
mov ecx, 0x96
mov dword [rbx], ecx
mov eax, r9d
jmp 0x18005f062
cmp byte [rcx + 1], 0x2a
jne 0x18005edb2
xor r9d, r9d
cmp byte [rcx + 2], r9b
je 0x18005edb2
movzx eax, byte [r10 + 2]
lea ecx, [r9 + 3]
add r10, rcx
cmp eax, 0x2a
jne 0x18005ed97
cmp byte [r10], 0x2f
je 0x18005edab
movzx eax, byte [r10]
cmp eax, r9d
je 0x18005ea71
inc ecx
inc r10
jmp 0x18005ed8c
inc ecx
jmp 0x18005ea71
mov dword [rbx], 0x5c
jmp 0x18005eb3d
inc r10
lea r11, [0x180064a30]
mov dil, 4
movzx eax, byte [r10]
mov dword [rbx], 0x87
mov edx, 1
test byte [rax + r11], dil
je 0x18005f060
inc r10
inc edx
movzx ecx, byte [r10]
test byte [rcx + r11], dil
jne 0x18005ede3
jmp 0x18005f060
cmp edx, 0x40
je 0x18005efcc
cmp edx, 0x58
je 0x18005eef9
cmp edx, 0x5b
je 0x18005eec4
cmp edx, 0x60
je 0x18005ee55
cmp edx, 0x78
je 0x18005eef9
cmp edx, 0x7c
je 0x18005ee39
cmp edx, 0x7e
jne 0x18005ef7d
mov dword [rbx], 0x60
jmp 0x18005eb3d
cmp byte [rcx + 1], 0x7c
je 0x18005ee4a
mov dword [rbx], 0x56
jmp 0x18005eb3d
mov dword [rbx], 0x5e
jmp 0x18005ec23
lea r11, [r10 + 1]
xor r9d, r9d
mov r8d, 1
movzx ecx, byte [r11]
cmp ecx, r9d
je 0x18005ee96
add r10, 2
cmp ecx, edx
jne 0x18005ee84
movzx eax, byte [r10]
cmp eax, edx
jne 0x18005ee96
inc r8d
inc r10
inc r11
inc r11
inc r8d
inc r10
movzx ecx, byte [r11]
cmp ecx, r9d
jne 0x18005ee6f
cmp ecx, 0x27
jne 0x18005eeaa
mov dword [rbx], 0x61
lea eax, [r8 + 1]
jmp 0x18005f062
cmp ecx, r9d
je 0x18005eeb8
mov eax, 0x1b
mov dword [rbx], eax
jmp 0x18005eea1
mov ecx, 0x96
mov dword [rbx], ecx
jmp 0x18005eb2f
mov r8d, 1
cmp edx, 0x5d
je 0x18005eee9
inc r10
xor r9d, r9d
movzx edx, byte [r10]
cmp edx, r9d
je 0x18005eee9
inc r8d
inc r10
cmp edx, 0x5d
jne 0x18005eed5
mov ecx, 0x96
cmp edx, 0x5d
lea eax, [rcx - 0x7b]
cmove ecx, eax
jmp 0x18005eebd
cmp byte [rcx + 1], 0x27
jne 0x18005ef7d
mov r8d, 2
mov dword [rbx], 0x86
lea r11, [0x180064a30]
add rcx, r8
mov r9b, 8
jmp 0x18005ef20
inc r8d
inc rcx
movzx eax, byte [rcx]
test byte [rax + r11], r9b
jne 0x18005ef1a
movsxd r11, r8d
xor r9d, r9d
cmp byte [r11 + r10], 0x27
jne 0x18005ef43
mov eax, r8d
cdq
and eax, 1
xor eax, edx
cmp eax, edx
je 0x18005ef68
mov ecx, 0x96
mov dword [rbx], ecx
cmp byte [r11 + r10], r9b
je 0x18005ef68
lea rax, [r11 + r10]
mov cl, byte [rax]
cmp cl, 0x27
je 0x18005ef68
inc rax
inc r8d
mov cl, byte [rax]
cmp cl, r9b
jne 0x18005ef56
movsxd rcx, r8d
cmp byte [rcx + r10], r9b
je 0x18005eb2f
inc r8d
jmp 0x18005eb2f
lea r11, [0x180064a30]
test byte [rdx + r11], 0x46
jne 0x18005ef97
mov ecx, 0x96
mov dword [rbx], ecx
jmp 0x18005eb3d
lea rdx, [r10 + 1]
mov edi, 1
movzx eax, byte [rdx]
test byte [rax + r11], 0x46
je 0x18005efb9
inc rdx
inc edi
movzx ecx, byte [rdx]
test byte [rcx + r11], 0x46
jne 0x18005efaa
mov edx, edi
mov rcx, r10
call fcn.18005e8f4
mov dword [rbx], eax
mov eax, edi
jmp 0x18005f062
movzx edi, byte [rcx + 1]
xor r9d, r9d
mov dword [rbx], 0x87
lea edx, [r9 + 1]
mov esi, r9d
mov ecx, 0x96
mov r8, rdx
cmp edi, r9d
je 0x18005f05e
lea r11, [0x180064a30]
movzx eax, dil
test byte [rax + r11], 0x46
je 0x18005f003
inc esi
jmp 0x18005f01e
cmp edi, 0x28
jne 0x18005f00d
cmp esi, r9d
jg 0x18005f02f
cmp edi, 0x3a
jne 0x18005f059
cmp byte [r10 + r8 + 1], dil
jne 0x18005f059
inc edx
inc r8
inc r8
inc edx
movzx edi, byte [r8 + r10]
cmp edi, r9d
je 0x18005f059
jmp 0x18005eff4
add r10, r8
inc r10
inc edx
movzx r8d, byte [r10]
cmp r8d, r9d
je 0x18005f04d
test byte [r8 + r11], 1
jne 0x18005f04d
cmp r8d, 0x29
jne 0x18005f032
cmp r8d, 0x29
jne 0x18005f057
inc edx
jmp 0x18005f059
mov dword [rbx], ecx
cmp esi, r9d
jne 0x18005f060
mov dword [rbx], ecx
mov eax, edx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret