Function at 0x180012180
Capabilities:
Parse credit card information

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
xor cl, cl
cmp dword [rbx + 0x60], 0xffff
je 0x180012661
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], rsi
xor esi, esi
mov qword [rsp + 0x40], rdi
lea rbp, vtable.std::tr1::_Node_base.0
mov eax, dword [rbx + 0x60]
cmp eax, 0x7c
je 0x180012649
cmp eax, 0x29
jne 0x1800121db
cmp dword [rbx + 0x1c], esi
jne 0x180012649
test dword [rbx + 0x64], 0x10000000
jne 0x1800121db
lea ecx, [rax - 0x24]
jmp 0x18001262c
cmp eax, 0x2e
jne 0x180012296
lea ecx, [rax - 0xe]
call sub.MSVCR100.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov r11, rax
test rax, rax
je 0x180012209
mov qword [rax], rbp
mov qword [rax + 8], 5
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rsi
jmp 0x18001220c
mov r11, rsi
mov rax, qword [rbx + 0x30]
mov qword [r11 + 0x18], rax
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x180012231
mov qword [r11 + 0x10], rcx
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x10]
mov qword [rcx + 0x18], r11
mov rax, qword [rbx + 0x30]
mov qword [rax + 0x10], r11
mov qword [rbx + 0x30], r11
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x180012289
cmp word [rax], 0x5c
jne 0x180012285
add rax, 2
cmp rax, rcx
je 0x18001226d
test byte [rbx + 0x64], 8
jne 0x18001226d
movzx ecx, word [rax]
cmp cx, 0x28
je 0x180012282
cmp cx, 0x29
je 0x180012282
test byte [rbx + 0x64], 0x10
jne 0x180012285
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x180012282
cmp cx, 0x7d
jne 0x180012285
mov qword [rbx], rax
add qword [rbx], 2
mov rcx, rbx
call fcn.180003d60
jmp 0x180012632
cmp eax, 0x5c
jne 0x1800123f3
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x1800122eb
cmp word [rax], 0x5c
jne 0x1800122e7
add rax, 2
cmp rax, rcx
je 0x1800122cf
test byte [rbx + 0x64], 8
jne 0x1800122cf
movzx ecx, word [rax]
cmp cx, 0x28
je 0x1800122e4
cmp cx, 0x29
je 0x1800122e4
test byte [rbx + 0x64], 0x10
jne 0x1800122e7
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x1800122e4
cmp cx, 0x7d
jne 0x1800122e7
mov qword [rbx], rax
add qword [rbx], 2
mov rcx, rbx
call fcn.180003d60
mov eax, dword [rbx + 0x64]
and eax, 0x80
je 0x18001236b
cmp word [rbx + 0x5e], 0x62
jne 0x18001236b
lea rcx, [rbx + 0x28]
mov edx, 4
call fcn.180001be0
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x18001235e
cmp word [rax], 0x5c
jne 0x18001235a
add rax, 2
cmp rax, rcx
je 0x180012342
test byte [rbx + 0x64], 8
jne 0x180012342
movzx ecx, word [rax]
cmp cx, 0x28
je 0x180012357
cmp cx, 0x29
je 0x180012357
test byte [rbx + 0x64], 0x10
jne 0x18001235a
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x180012357
cmp cx, 0x7d
jne 0x18001235a
mov qword [rbx], rax
add qword [rbx], 2
mov rcx, rbx
call fcn.180003d60
jmp 0x18001263a
test eax, eax
je 0x1800123e6
cmp word [rbx + 0x5e], 0x42
jne 0x1800123e6
lea rcx, [rbx + 0x28]
mov edx, 4
call fcn.180001be0
mov r11, qword [rbx + 0x30]
xor dword [r11 + 0xc], 1
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x1800123d9
cmp word [rax], 0x5c
jne 0x1800123d5
add rax, 2
cmp rax, rcx
je 0x1800123bd
test byte [rbx + 0x64], 8
jne 0x1800123bd
movzx ecx, word [rax]
cmp cx, 0x28
je 0x1800123d2
cmp cx, 0x29
je 0x1800123d2
test byte [rbx + 0x64], 0x10
jne 0x1800123d5
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x1800123d2
cmp cx, 0x7d
jne 0x1800123d5
mov qword [rbx], rax
add qword [rbx], 2
mov rcx, rbx
call fcn.180003d60
jmp 0x18001263a
mov rcx, rbx
call fcn.18000e0d0
jmp 0x180012632
cmp eax, 0x5b
jne 0x1800124c2
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x180012448
cmp word [rax], 0x5c
jne 0x180012444
add rax, 2
cmp rax, rcx
je 0x18001242c
test byte [rbx + 0x64], 8
jne 0x18001242c
movzx ecx, word [rax]
cmp cx, 0x28
je 0x180012441
cmp cx, 0x29
je 0x180012441
test byte [rbx + 0x64], 0x10
jne 0x180012444
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x180012441
cmp cx, 0x7d
jne 0x180012444
mov qword [rbx], rax
add qword [rbx], 2
mov rcx, rbx
call fcn.180003d60
mov rcx, rbx
call fcn.180011060
cmp dword [rbx + 0x60], 0x5d
je 0x180012469
mov ecx, 4
call qword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x1800124b5
cmp word [rax], 0x5c
jne 0x1800124b1
add rax, 2
cmp rax, rcx
je 0x180012499
test byte [rbx + 0x64], 8
jne 0x180012499
movzx ecx, word [rax]
cmp cx, 0x28
je 0x1800124ae
cmp cx, 0x29
je 0x1800124ae
test byte [rbx + 0x64], 0x10
jne 0x1800124b1
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x1800124ae
cmp cx, 0x7d
jne 0x1800124b1
mov qword [rbx], rax
add qword [rbx], 2
mov rcx, rbx
call fcn.180003d60
jmp 0x180012632
cmp eax, 0x28
jne 0x18001259d
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x180012517
cmp word [rax], 0x5c
jne 0x180012513
add rax, 2
cmp rax, rcx
je 0x1800124fb
test byte [rbx + 0x64], 8
jne 0x1800124fb
movzx ecx, word [rax]
cmp cx, 0x28
je 0x180012510
cmp cx, 0x29
je 0x180012510
test byte [rbx + 0x64], 0x10
jne 0x180012513
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x180012510
cmp cx, 0x7d
jne 0x180012513
mov qword [rbx], rax
add qword [rbx], 2
mov rcx, rbx
call fcn.180003d60
mov rcx, rbx
call fcn.1800040d0
cmp dword [rbx + 0x60], 0x29
movzx edi, al
je 0x18001253b
mov ecx, 5
call qword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
mov rcx, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rcx, rdx
je 0x180012587
cmp word [rcx], 0x5c
jne 0x180012583
add rcx, 2
cmp rcx, rdx
je 0x18001256b
test byte [rbx + 0x64], 8
jne 0x18001256b
movzx eax, word [rcx]
cmp ax, 0x28
je 0x180012580
cmp ax, 0x29
je 0x180012580
test byte [rbx + 0x64], 0x10
jne 0x180012583
movzx eax, word [rcx]
cmp ax, 0x7b
je 0x180012580
cmp ax, 0x7d
jne 0x180012583
mov qword [rbx], rcx
add qword [rbx], 2
mov rcx, rbx
call fcn.180003d60
test dil, dil
je 0x18001263a
jmp 0x180012632
cmp eax, 0x5e
jne 0x1800125bb
lea rcx, [rbx + 0x28]
lea edx, [rax - 0x5c]
call fcn.180001be0
mov rcx, rbx
call fcn.180003f60
jmp 0x18001263a
cmp eax, 0x24
jne 0x1800125d6
lea rcx, [rbx + 0x28]
lea edx, [rax - 0x21]
call fcn.180001be0
mov rcx, rbx
call fcn.180003f60
jmp 0x18001263a
cmp eax, 0x2a
je 0x180012627
cmp eax, 0x2b
je 0x180012627
cmp eax, 0x3f
je 0x180012627
cmp eax, 0x7b
je 0x180012627
cmp eax, 0x7d
jne 0x1800125fd
test dword [rbx + 0x64], 0x10000000
jne 0x1800125fd
lea ecx, [rax - 0x77]
jmp 0x18001262c
cmp eax, 0x5d
jne 0x180012610
test dword [rbx + 0x64], 0x10000000
jne 0x180012610
lea ecx, [rax - 0x59]
jmp 0x18001262c
movzx edx, word [rbx + 0x5e]
lea rcx, [rbx + 0x28]
call fcn.18000d560
mov rcx, rbx
call fcn.180003f60
jmp 0x180012632
mov ecx, 0xa
call qword [sym.imp.MSVCP100.dll_void___cdecl_std::tr1::_Xbad_enum_std::tr1::regex_constants::error_type_]
mov rcx, rbx
call fcn.18000e1a0
cmp dword [rbx + 0x60], 0xffff
mov cl, 1
jne 0x1800121b0
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
movzx eax, cl
add rsp, 0x20
pop rbx
ret
movzx eax, cl
add rsp, 0x20
pop rbx
ret