Function at 0x405385
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
or esi, 0xffffffff
mov rbx, rcx
mov rcx, rbx
call qword [rbx + 0x28]
test eax, eax
mov r8d, eax
je 0x405772
cmp r8d, 0x2e
mov r12d, dword [rbx + 0x40]
je 0x405468
ja 0x4053f2
cmp r8d, 0x29
je 0x40543e
ja 0x4053d9
cmp r8d, 0x24
je 0x4054f6
cmp r8d, 0x28
je 0x405446
jmp 0x40575d
cmp r8d, 0x2a
je 0x405492
cmp r8d, 0x2b
je 0x4054be
jmp 0x40575d
cmp r8d, 0x5c
je 0x4056f1
ja 0x405417
cmp r8d, 0x3f
je 0x4054d1
cmp r8d, 0x5b
je 0x40560f
jmp 0x40575d
cmp r8d, 0x7b
je 0x4054fe
cmp r8d, 0x7c
je 0x40543e
cmp r8d, 0x5e
jne 0x40575d
xor r8d, r8d
mov edx, 0x12
jmp 0x405762
dec dword [rbx + 8]
jmp 0x405772
mov rcx, rbx
call sym.re_subcompile_re
test rax, rax
jne 0x4057ce
mov rcx, rbx
call sym.rePeek
cmp al, 0x29
je 0x40548a
jmp 0x405776
mov rcx, rbx
call sym.rePeek
xor r8d, r8d
mov edx, 2
cmp al, 0x2a
jne 0x405762
mov edx, 3
call sym.re_append
inc dword [rbx + 8]
jmp 0x40576a
test esi, esi
js 0x40577f
lea r9d, [r12 + 1]
mov r8d, 5
mov edx, esi
sub r9d, esi
mov rcx, rbx
call sym.re_insert
sub esi, dword [rbx + 0x40]
lea r8d, [rsi + 1]
jmp 0x405605
test esi, esi
js 0x405788
sub esi, r12d
mov r8d, esi
jmp 0x405605
test esi, esi
js 0x405791
lea r9d, [r12 + 1]
mov r8d, 4
mov edx, esi
sub r9d, esi
mov rcx, rbx
call sym.re_insert
jmp 0x40576a
xor r8d, r8d
jmp 0x40575d
test esi, esi
js 0x40579a
xor ebp, ebp
mov rcx, rbx
call sym.rePeek
movzx eax, al
cmp eax, 0x2f
jbe 0x40552d
cmp eax, 0x39
ja 0x4057be
inc dword [rbx + 8]
imul ebp, ebp, 0xa
lea ebp, [rax + rbp - 0x30]
jmp 0x405508
cmp eax, 0x2c
je 0x40553e
lea rax, str.unmatched_
jmp 0x4057ce
inc dword [rbx + 8]
xor edi, edi
mov rcx, rbx
call sym.rePeek
movzx eax, al
cmp eax, 0x2f
jbe 0x405532
cmp eax, 0x39
ja 0x405564
inc dword [rbx + 8]
imul edi, edi, 0xa
lea edi, [rax + rdi - 0x30]
jmp 0x405543
cmp eax, 0x7d
jne 0x405532
test edi, edi
jle 0x405575
cmp ebp, edi
jg 0x4057a3
inc dword [rbx + 8]
mov r13d, r12d
sub r13d, esi
test ebp, ebp
jne 0x4055a4
test edi, edi
je 0x4057ac
mov edx, esi
mov r8d, 4
mov rcx, rbx
lea r9d, [r13 + 1]
inc esi
dec edi
call sym.re_insert
jmp 0x4055c1
mov r14d, 1
cmp ebp, r14d
jle 0x4055c1
mov r8d, r13d
mov edx, esi
mov rcx, rbx
call sym.re_copy
inc r14d
jmp 0x4055aa
lea r15d, [r13 + 1]
mov r14d, ebp
cmp edi, r14d
jle 0x4055ef
mov r8d, r15d
mov edx, 4
mov rcx, rbx
call sym.re_append
mov r8d, r13d
mov edx, esi
mov rcx, rbx
call sym.re_copy
inc r14d
jmp 0x4055c8
test edi, edi
jne 0x40576a
test ebp, ebp
jle 0x40576a
mov r8d, r13d
neg r8d
mov edx, 4
jmp 0x405762
mov rcx, rbx
call sym.rePeek
xor r8d, r8d
cmp al, 0x5e
jne 0x40562d
mov edx, 8
call sym.re_append
inc dword [rbx + 8]
jmp 0x405676
mov edx, 7
call sym.re_append
jmp 0x405676
cmp esi, 0x5b
jne 0x405684
mov rcx, rbx
call sym.rePeek
cmp al, 0x3a
je 0x4057b5
mov rcx, rbx
call sym.rePeek
mov r8d, esi
mov edx, 9
cmp al, 0x2d
je 0x405695
mov rcx, rbx
call sym.re_append
mov rcx, rbx
call sym.rePeek
cmp al, 0x5d
je 0x4056c3
mov rcx, rbx
call qword [rbx + 0x28]
test eax, eax
mov esi, eax
jne 0x405639
jmp 0x4056ca
cmp esi, 0x5c
jne 0x40564e
mov rcx, rbx
call sym.re_esc_char
mov esi, eax
jmp 0x40564e
mov edx, 0xa
call sym.re_append
mov rcx, rbx
inc dword [rbx + 8]
call qword [rbx + 0x28]
cmp eax, 0x5c
mov esi, eax
jne 0x4056b9
mov rcx, rbx
call sym.re_esc_char
mov esi, eax
mov r8d, esi
mov edx, 0xa
jmp 0x405662
inc dword [rbx + 8]
test esi, esi
jne 0x4056d6
lea rax, str.unclosed__
jmp 0x4057ce
mov eax, dword [rbx + 0x40]
cmp r12d, eax
jae 0x40576a
mov rdx, qword [rbx + 0x20]
mov ecx, r12d
sub eax, r12d
mov dword [rdx + rcx*4], eax
jmp 0x40576a
mov rcx, rbx
call sym.rePeek
cmp al, 0x62
je 0x405726
ja 0x40570d
cmp al, 0x53
je 0x40572d
cmp al, 0x57
je 0x405734
cmp al, 0x44
jne 0x405719
jmp 0x40573b
cmp al, 0x73
je 0x405742
cmp al, 0x77
je 0x405749
cmp al, 0x64
je 0x405750
mov rcx, rbx
call sym.re_esc_char
mov r8d, eax
jmp 0x40575d
mov edx, 0x11
jmp 0x405755
mov edx, 0x10
jmp 0x405755
mov edx, 0xc
jmp 0x405755
mov edx, 0xe
jmp 0x405755
mov edx, 0xf
jmp 0x405755
mov edx, 0xb
jmp 0x405755
mov edx, 0xd
inc dword [rbx + 8]
xor r8d, r8d
jmp 0x405762
mov edx, 1
mov rcx, rbx
call sym.re_append
mov esi, r12d
jmp 0x40539b
xor eax, eax
jmp 0x4057ce
lea rax, str.unmatched__
jmp 0x4057ce
lea rax, [0x004d43c0]
jmp 0x4057ce
lea rax, str._without_operand
jmp 0x4057ce
lea rax, str.__without_operand
jmp 0x4057ce
lea rax, str.m_n_without_operand
jmp 0x4057ce
lea rax, str.n_less_than_m_in_m_n
jmp 0x4057ce
lea rax, str.both_m_and_n_are_zero_in_m_n
jmp 0x4057ce
lea rax, str.POSIX_character_classes_not_supported
jmp 0x4057ce
cmp eax, 0x7d
jne 0x405532
mov edi, ebp
jmp 0x405575
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret