Function at 0x180007850
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rbx, rcx
xor al, al
mov ecx, dword [rcx + 0x7c]
cmp ecx, 0xffffffff
je 0x180008087
lea r15, vtable.std::_Node_base.0
xor r14d, r14d
lea r13, vtable.std::_Node_back.0
mov r12d, 0xfffd
cmp ecx, 0x7c
je 0x180008087
cmp ecx, 0x29
jne 0x1800078c1
cmp dword [rbx + 0x1c], r14d
jne 0x180008087
test dword [rbx + 0x80], 0x10000000
je 0x1800080b2
jmp 0x180007f47
cmp ecx, 0x2e
jne 0x18000797f
mov ecx, 0x20
call fcn.18000fbc8
test rax, rax
je 0x1800078ee
mov qword [rax], r15
mov qword [rax + 8], 5
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x1800078f1
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18000a460
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180007fa1
cmp word [rax], 0x5c
jne 0x180007973
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x180007970
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180007942
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x180007960
cmp cx, 0x29
je 0x180007960
mov rcx, rax
test r9b, 0x10
jne 0x180007970
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x180007960
mov rdx, rcx
cmp r8w, 0x7d
jne 0x180007970
lea rax, [rdx + 2]
add rax, 2
mov qword [rbx], rax
jmp 0x180007fa1
mov rax, rcx
add rax, 2
mov qword [rbx], rax
jmp 0x180007fa1
cmp ecx, 0x5c
jne 0x180007c49
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x1800079f6
cmp word [rax], cx
jne 0x1800079ef
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x1800079ec
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x1800079c8
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x1800079e6
cmp cx, 0x29
je 0x1800079e6
mov rcx, rax
test r9b, 0x10
jne 0x1800079ec
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x1800079e6
mov rdx, rcx
cmp r8w, 0x7d
jne 0x1800079ec
lea rax, [rdx + 2]
jmp 0x1800079ef
mov rax, rcx
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.18000b070
mov ecx, dword [rbx + 0x80]
test cl, cl
jns 0x180007b29
movzx eax, word [rbx + 0x78]
cmp ax, 0x62
jne 0x180007ae3
mov ecx, 0x20
call fcn.18000fbc8
test rax, rax
je 0x180007a3e
mov qword [rax], r15
mov qword [rax + 8], 4
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180007a41
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18000a460
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180007ef0
cmp word [rax], 0x5c
jne 0x180007e53
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x180007acc
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180007a96
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x180007ab4
cmp cx, 0x29
je 0x180007ab4
mov rcx, rax
test r9b, 0x10
jne 0x180007acc
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x180007ab4
mov rdx, rcx
cmp r8w, 0x7d
jne 0x180007acc
lea rax, [rdx + 2]
mov rcx, rbx
add rax, 2
mov qword [rbx], rax
call fcn.18000b070
jmp 0x180008079
mov rax, rcx
mov rcx, rbx
add rax, 2
mov qword [rbx], rax
call fcn.18000b070
jmp 0x180008079
cmp ax, 0x42
jne 0x180007b29
mov ecx, 0x20
call fcn.18000fbc8
test rax, rax
je 0x180007b0d
mov qword [rax], r15
mov qword [rax + 8], 4
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180007b10
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18000a460
mov rax, qword [rbx + 0x48]
xor dword [rax + 0xc], 1
jmp 0x180007df7
bt ecx, 8
jae 0x180007c04
mov edx, 3
mov rcx, rbx
call fcn.180008be0
test al, al
je 0x180007c04
mov edi, dword [rbx + 0x74]
mov eax, dword [rbx + 0x80]
test edi, edi
jne 0x180007b70
bt eax, 0x14
jae 0x1800080c0
lea rcx, [rbx + 0x40]
movzx edx, di
call fcn.180006dc0
jmp 0x180007fa9
bt eax, 9
jae 0x180007b7f
cmp edi, 9
ja 0x1800080ea
mov eax, edi
movsxd rcx, eax
mov eax, dword [rbx + 0x18]
cmp rax, rcx
jb 0x1800080ea
cmp qword [rbx + 0x38], rcx
jbe 0x1800080ea
mov rdx, qword [rbx + 0x20]
movzx eax, cl
and al, 0x1f
mov r8, rcx
shr r8, 5
movzx ecx, al
mov eax, dword [rdx + r8*4]
bt eax, ecx
jae 0x1800080ea
mov ecx, 0x28
call fcn.18000fbc8
test rax, rax
je 0x180007bf0
mov rdx, rax
mov qword [rax + 8], 0xf
lea rcx, [rbx + 0x40]
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
mov qword [rax], r13
mov dword [rax + 0x20], edi
call fcn.18000a460
jmp 0x180007fa9
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18000a460
jmp 0x180007fa9
mov rcx, rbx
call fcn.180008510
test al, al
je 0x180007c22
movzx edx, word [rbx + 0x74]
lea rcx, [rbx + 0x40]
call fcn.180006dc0
jmp 0x180007fa9
test dword [rbx + 0x80], 0x20000
je 0x1800080c0
mov dl, 1
mov rcx, rbx
call fcn.180008460
test al, al
je 0x1800080c0
jmp 0x180007fa9
cmp ecx, 0x5b
jne 0x180007d20
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x180007cb1
cmp word [rax], 0x5c
jne 0x180007caa
lea r8, [rax + 2]
cmp r8, rcx
je 0x180007caa
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180007c8d
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x180007ca6
cmp dx, 0x29
je 0x180007ca6
test r9b, 0x10
jne 0x180007caa
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x180007ca6
cmp dx, 0x7d
jne 0x180007caa
lea rax, [rcx + 2]
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.18000b070
lea rcx, [rbx + 0x40]
call fcn.180007010
mov eax, dword [rbx + 0x7c]
cmp eax, 0x5e
jne 0x180007cdd
mov rax, qword [rbx + 0x48]
mov rcx, rbx
xor dword [rax + 0xc], 1
call fcn.18000ab40
mov eax, dword [rbx + 0x7c]
test dword [rbx + 0x80], 0x20000000
je 0x180007d01
cmp eax, 0x5d
jne 0x180007d01
mov edx, eax
lea rcx, [rbx + 0x40]
call fcn.180006f70
mov rcx, rbx
call fcn.18000ab40
mov rcx, rbx
call fcn.180008a60
cmp dword [rbx + 0x7c], 0x5d
jne 0x1800080f8
mov rcx, rbx
call fcn.18000ab40
jmp 0x180007fa9
cmp ecx, 0x28
jne 0x180007dbb
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x180007d88
cmp word [rax], 0x5c
jne 0x180007d81
lea r8, [rax + 2]
cmp r8, rcx
je 0x180007d81
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180007d64
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x180007d7d
cmp dx, 0x29
je 0x180007d7d
test r9b, 0x10
jne 0x180007d81
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x180007d7d
cmp dx, 0x7d
jne 0x180007d81
lea rax, [rcx + 2]
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.18000b070
mov rcx, rbx
call fcn.18000b2f0
cmp dword [rbx + 0x7c], 0x29
movzx edi, al
jne 0x1800080b2
mov rcx, rbx
call fcn.18000ab40
test dil, dil
je 0x180008079
jmp 0x180007fa9
cmp ecx, 0x5e
jne 0x180007e67
mov ecx, 0x20
call fcn.18000fbc8
test rax, rax
je 0x180007de8
mov qword [rax], r15
mov qword [rax + 8], 2
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180007deb
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18000a460
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx]
cmp rax, rcx
je 0x180007ef0
cmp word [rax], 0x5c
jne 0x180007e53
lea r8, [rax + 2]
cmp r8, rcx
je 0x180007e53
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180007e36
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x180007e4f
cmp dx, 0x29
je 0x180007e4f
test r9b, 0x10
jne 0x180007e53
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x180007e4f
cmp dx, 0x7d
jne 0x180007e53
lea rax, [rcx + 2]
add rax, 2
mov rcx, rbx
mov qword [rbx], rax
call fcn.18000b070
jmp 0x180008079
cmp ecx, 0x24
jne 0x180007efd
mov ecx, 0x20
call fcn.18000fbc8
test rax, rax
je 0x180007e94
mov qword [rax], r15
mov qword [rax + 8], 3
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180007e97
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18000a460
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180007ef0
cmp word [rax], 0x5c
jne 0x180007eec
lea rcx, [rax + 2]
cmp rcx, rdx
je 0x180007eec
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180007ed6
movzx eax, word [rcx]
sub ax, 0x28
cmp ax, 1
jbe 0x180007ee8
test dl, 0x10
jne 0x180007eec
movzx eax, word [rcx]
sub ax, 0x7b
test r12w, ax
jne 0x180007eec
add qword [rbx], 2
add qword [rbx], 2
mov rcx, rbx
call fcn.18000b070
jmp 0x180008079
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x1800080dc
cmp ecx, 0x3f
je 0x1800080dc
cmp ecx, 0x7b
je 0x1800080dc
cmp ecx, 0x7d
jne 0x180007f32
test dword [rbx + 0x80], 0x10000000
je 0x1800080ce
jmp 0x180007f47
cmp ecx, 0x5d
jne 0x180007f47
test dword [rbx + 0x80], 0x10000000
je 0x1800080f8
movzx edx, word [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.180006dc0
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180007fa1
cmp word [rax], 0x5c
jne 0x180007f9d
lea rcx, [rax + 2]
cmp rcx, rdx
je 0x180007f9d
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180007f87
movzx eax, word [rcx]
sub ax, 0x28
cmp ax, 1
jbe 0x180007f99
test dl, 0x10
jne 0x180007f9d
movzx eax, word [rcx]
sub ax, 0x7b
test r12w, ax
jne 0x180007f9d
add qword [rbx], 2
add qword [rbx], 2
mov rcx, rbx
call fcn.18000b070
mov eax, dword [rbx + 0x7c]
mov ebp, r14d
mov edi, 0xffffffff
cmp eax, 0x2a
je 0x180008035
cmp eax, 0x2b
jne 0x180007fc3
lea ebp, [rdi + 2]
jmp 0x180008035
cmp eax, 0x3f
jne 0x180007fcd
lea edi, [rax - 0x3e]
jmp 0x180008035
cmp eax, 0x7b
jne 0x180008079
mov rcx, rbx
call fcn.18000ab40
mov edx, 7
mov rcx, rbx
call fcn.180008be0
test al, al
je 0x1800080a4
cmp dword [rbx + 0x7c], 0x2c
mov ebp, dword [rbx + 0x74]
je 0x180008000
mov edi, ebp
jmp 0x180008026
mov rcx, rbx
call fcn.18000ab40
cmp dword [rbx + 0x7c], 0x7d
je 0x18000802c
mov edx, 7
mov rcx, rbx
call fcn.180008be0
test al, al
je 0x1800080a4
mov edi, dword [rbx + 0x74]
cmp dword [rbx + 0x7c], 0x7d
jne 0x1800080a4
cmp edi, 0xffffffff
je 0x180008035
cmp edi, ebp
jl 0x1800080a4
mov rax, qword [rbx + 0x48]
mov rcx, rbx
or dword [rax + 0xc], 4
call fcn.18000ab40
test dword [rbx + 0x80], 0x400
je 0x180008064
cmp dword [rbx + 0x7c], 0x3f
jne 0x180008064
xor sil, sil
mov rcx, rbx
call fcn.18000ab40
jmp 0x180008067
mov sil, 1
lea rcx, [rbx + 0x40]
movzx r9d, sil
mov r8d, edi
mov edx, ebp
call fcn.180007590
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x180007894
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov edx, 7
mov rcx, rbx
call fcn.18000a0d0
int3
mov edx, 5
mov rcx, rbx
call fcn.18000a0d0
int3
mov edx, 2
mov rcx, rbx
call fcn.18000a0d0
int3
mov edx, 6
mov rcx, rbx
call fcn.18000a0d0
int3
mov edx, 0xa
mov rcx, rbx
call fcn.18000a0d0
int3
mov edx, 3
mov rcx, rbx
call fcn.18000a0d0
int3
mov edx, 4
mov rcx, rbx
call fcn.18000a0d0
int3