Function at 0x140018ba0
Capabilities:
Parse credit card information

Disassembly:
mov qword ss:[rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
xor al, al
mov ecx, dword [rcx + 0x7c]
cmp ecx, 0xffffffff
je 0x1400191ff
lea rdi, [rbx + 0x10]
nop dword [rax]
cmp ecx, 0x7c
je 0x1400191ff
cmp ecx, 0x29
jne 0x140018bfd
cmp dword [rbx + 0x1c], 0
jne 0x1400191ff
test dword [rbx + 0x80], 0x10000000
je 0x14001921a
jmp 0x14001918c
nop dword [rax]
cmp ecx, 0x2e
jne 0x140018c99
lea rcx, [rbx + 0x40]
mov edx, 5
call fcn.1400192a0
mov rax, qword ds:[rbx]
mov rdx, qword [rdi]
cmp rax, rdx
je 0x1400191db
cmp byte [rax], 0x5c
jne 0x140018f60
lea r8, [rax + 1]
mov rcx, rax
cmp r8, rdx
je 0x140018c8b
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x140018c5f
movzx ecx, byte [r8]
mov rdx, rax
cmp cl, 0x28
je 0x140018c7c
cmp cl, 0x29
je 0x140018c7c
mov rcx, rax
nop
test r9b, 0x10
jne 0x140018c8b
movzx r8d, byte [r8]
mov rdx, rax
cmp r8b, 0x7b
je 0x140018c7c
mov rdx, rcx
cmp r8b, 0x7d
jne 0x140018c8b
lea rax, [rdx + 1]
inc rax
mov qword [rbx], rax
jmp 0x1400191db
mov rax, rcx
inc rax
mov qword [rbx], rax
jmp 0x1400191db
nop dword [rax]
cmp ecx, 0x5c
jne 0x140018e7b
mov rax, qword [rbx]
mov rdx, qword [rdi]
cmp rax, rdx
je 0x140018d15
cmp byte [rax], cl
jne 0x140018d0f
lea r8, ds:[rax + 1]
mov rcx, rax
cmp r8, rdx
je 0x140018d0c
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x140018ce8
movzx ecx, byte [r8]
mov rdx, rax
cmp cl, 0x28
je 0x140018d06
nop
cmp cl, 0x29
je 0x140018d06
mov rcx, rax
test r9b, 0x10
jne 0x140018d0c
movzx r8d, byte [r8]
mov rdx, rax
cmp r8b, 0x7b
je 0x140018d06
mov rdx, rcx
cmp r8b, 0x7d
jne 0x140018d0c
lea rax, [rdx + 1]
jmp 0x140018d0f
mov rax, rcx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140017820
test byte [rbx + 0x80], 0x80
je 0x140018e6e
movzx eax, byte [rbx + 0x78]
cmp al, 0x62
jne 0x140018de5
lea rcx, ds:[rbx + 0x40]
mov edx, 4
call fcn.1400192a0
mov rax, qword [rbx]
mov rdx, qword [rdi]
cmp rax, rdx
je 0x140018dd3
cmp byte [rax], 0x5c
jne 0x140018dcd
lea r8, [rax + 1]
mov rcx, rax
cmp r8, rdx
je 0x140018dca
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x140018d8d
movzx ecx, byte ds:[r8]
mov rdx, rax
cmp cl, 0x28
je 0x140018daf
cmp cl, 0x29
je 0x140018daf
mov rcx, rax
test r9b, 0x10
jne 0x140018dca
movzx r8d, byte ds:[r8]
mov rdx, rax
cmp r8b, 0x7b
je 0x140018daf
mov rdx, rcx
cmp r8b, 0x7d
jne 0x140018dca
lea rax, ds:[rdx + 1]
mov rcx, rbx
inc rax
mov qword [rbx], rax
call fcn.140017820
jmp 0x1400191f1
mov rax, rcx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140017820
nop dword [rax + rax]
jmp 0x1400191f1
cmp al, 0x42
jne 0x140018e6e
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.1400192a0
mov rax, qword [rbx + 0x48]
xor dword [rax + 0xc], 1
mov rax, qword [rbx]
mov rcx, qword [rdi]
cmp rax, rcx
je 0x140018e61
cmp byte [rax], 0x5c
jne 0x140018e5b
lea r8, [rax + 1]
cmp r8, rcx
je 0x140018e5b
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x140018e3a
movzx edx, byte [r8]
mov rcx, rax
cmp dl, 0x28
je 0x140018e57
cmp dl, 0x29
je 0x140018e57
nop word [rax + rax]
test r9b, 0x10
jne 0x140018e5b
movzx edx, byte [r8]
mov rcx, rax
cmp dl, 0x7b
je 0x140018e57
cmp dl, 0x7d
jne 0x140018e5b
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140017820
jmp 0x1400191f1
mov rcx, rbx
call fcn.140019f20
jmp 0x1400191e5
nop dword [rax + rax]
cmp ecx, 0x5b
jne 0x140018f6b
mov rax, qword [rbx]
mov rcx, qword [rdi]
cmp rax, rcx
je 0x140018ee6
cmp byte [rax], 0x5c
jne 0x140018ee0
lea rdx, ds:[rax + 1]
cmp rdx, rcx
je 0x140018ee0
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x140018ec6
movzx r8d, byte [rdx]
mov rcx, rax
cmp r8b, 0x28
je 0x140018edc
nop
cmp r8b, 0x29
je 0x140018edc
test r9b, 0x10
jne 0x140018ee0
movzx edx, byte [rdx]
mov rcx, rax
cmp dl, 0x7b
je 0x140018edc
cmp dl, 0x7d
jne 0x140018ee0
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140017820
mov rcx, rbx
call fcn.140019de0
cmp dword ds:[rbx + 0x7c], 0x5d
jne 0x14001923c
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x1400191db
cmp byte [rax], 0x5c
jne 0x140018f60
lea rdx, ds:[rax + 1]
cmp rdx, rcx
je 0x140018f60
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x140018f46
movzx r8d, byte [rdx]
mov rcx, rax
cmp r8b, 0x28
je 0x140018f5c
nop
cmp r8b, 0x29
je 0x140018f5c
test r9b, 0x10
jne 0x140018f60
movzx edx, byte [rdx]
mov rcx, rax
cmp dl, 0x7b
je 0x140018f5c
cmp dl, 0x7d
jne 0x140018f60
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
jmp 0x1400191db
cmp ecx, 0x28
jne 0x14001905c
mov rax, qword [rbx]
mov rcx, qword [rdi]
cmp rax, rcx
je 0x140018fcf
cmp byte [rax], 0x5c
jne 0x140018fc9
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x140018fc9
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x140018fad
movzx r8d, byte [rdx]
mov rcx, rax
cmp r8b, 0x28
je 0x140018fc5
cmp r8b, 0x29
je 0x140018fc5
test r9b, 0x10
jne 0x140018fc9
movzx edx, byte [rdx]
mov rcx, rax
cmp dl, 0x7b
je 0x140018fc5
nop
cmp dl, 0x7d
jne 0x140018fc9
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140017820
mov rcx, rbx
call fcn.14001a0c0
cmp dword [rbx + 0x7c], 0x29
movzx esi, al
jne 0x140019247
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x140019046
cmp byte [rax], 0x5c
jne 0x140019040
lea r8, [rax + 1]
cmp r8, rcx
je 0x140019040
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x140019025
movzx edx, byte [r8]
mov rcx, rax
cmp dl, 0x28
je 0x14001903c
nop
cmp dl, 0x29
je 0x14001903c
test r9b, 0x10
jne 0x140019040
movzx edx, byte [r8]
mov rcx, rax
cmp dl, 0x7b
je 0x14001903c
cmp dl, 0x7d
jne 0x140019040
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140017820
test sil, sil
je 0x1400191f1
jmp 0x1400191e5
nop dword [rax]
cmp ecx, 0x5e
jne 0x1400190cf
lea rcx, [rbx + 0x40]
mov edx, 2
call fcn.1400192a0
mov rdx, qword [rbx + 0x10]
lea rdi, [rbx + 0x10]
mov rax, qword [rbx]
cmp rax, rdx
je 0x1400190c2
cmp byte [rax], 0x5c
jne 0x1400190bf
lea rcx, [rax + 1]
cmp rcx, rdx
je 0x1400190bf
mov edx, dword ds:[rbx + 0x80]
test dl, 8
jne 0x1400190ae
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x1400190bc
test dl, 0x10
jne 0x1400190bf
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x1400190bf
inc qword [rbx]
inc qword [rbx]
mov rcx, rbx
call fcn.140017820
jmp 0x1400191f1
cmp ecx, 0x24
jne 0x14001913a
lea rcx, [rbx + 0x40]
mov edx, 3
call fcn.1400192a0
mov rdx, qword [rbx + 0x10]
lea rdi, [rbx + 0x10]
mov rax, qword [rbx]
cmp rax, rdx
je 0x14001912d
cmp byte [rax], 0x5c
jne 0x14001912a
lea rcx, ds:[rax + 1]
cmp rcx, rdx
je 0x14001912a
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x140019119
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x140019127
test dl, 0x10
jne 0x14001912a
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x14001912a
inc qword [rbx]
inc qword [rbx]
mov rcx, rbx
call fcn.140017820
jmp 0x1400191f1
lea eax, ds:[rcx - 0x2a]
cmp eax, 1
jbe 0x140019231
cmp ecx, 0x3f
je 0x140019231
cmp ecx, 0x7b
je 0x140019231
nop dword [rax + rax]
cmp ecx, 0x7d
jne 0x140019177
test dword [rbx + 0x80], 0x10000000
je 0x140019226
jmp 0x14001918c
cmp ecx, 0x5d
jne 0x14001918c
test dword [rbx + 0x80], 0x10000000
je 0x14001920f
movzx edx, byte [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.14001a420
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x1400191db
cmp byte [rax], 0x5c
jne 0x1400191d8
lea rcx, [rax + 1]
cmp rcx, rdx
je 0x1400191d8
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x1400191c7
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x1400191d5
test dl, 0x10
jne 0x1400191d8
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x1400191d8
inc qword [rbx]
inc qword [rbx]
mov rcx, rbx
call fcn.140017820
mov rcx, rbx
call fcn.14001a240
lea rdi, [rbx + 0x10]
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x140018bd0
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, 4
call fcn.140017800
int3
mov edx, 5
call fcn.140017800
int3
mov edx, 6
call fcn.140017800
int3
mov edx, 0xa
call fcn.140017800
int3
mov edx, 4
call fcn.140017800
int3
mov edx, 5
call fcn.140017800
int3