Function at 0x1800091a0
Capabilities:
Parse credit card information

Disassembly:
jmp 0x18005cce8
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x180134128]
xor r12d, r12d
mov r15, r8
mov qword [rbp - 0x50], r12
mov rdi, rcx
mov dword [rbp - 0x48], r12d
mov r8b, 0x41
mov qword [rbp - 0x40], r12
mov cl, byte [rax]
lea rbx, [rax + 1]
mov dword [rbp - 0x38], r12d
mov esi, r12d
mov qword [0x180134128], rbx
cmp cl, r8b
jg 0x18005cf43
je 0x18005d426
test cl, cl
je 0x18005cf21
cmp cl, 0x2f
jle 0x18005d06d
cmp cl, 0x31
jle 0x18005cde0
cmp cl, 0x39
jg 0x18005d06d
movsx rdx, byte [rbx - 1]
lea rbx, [0x180000000]
mov rdx, qword [rbx + rdx*8 + 0x1100b0]
lea rcx, [rbp - 0x50]
call fcn.180005ee0
cmp qword [rbp - 0x50], r12
je 0x18005cdb7
lea rdx, str.operator
lea rcx, [rbp - 0x10]
call fcn.180008550
mov rcx, rax
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x20]
call fcn.1800056f0
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x50], rax
mov eax, dword [rbp - 0x18]
mov dword [rbp - 0x48], eax
mov rax, qword [rbp - 0x50]
mov qword [rdi], rax
mov eax, dword [rbp - 0x48]
mov dword [rdi + 8], eax
lea r11, [rsp + 0x70]
mov rax, rdi
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov qword [rbp - 0x40], r12
mov r14, r12
mov dword [rbp - 0x38], r12d
mov esi, 1
test dl, dl
je 0x18005ce9e
lea rcx, [rbp - 0x10]
call fcn.180007670
mov r8d, esi
mov byte [rbp + 0x48], 0x3c
lea rdx, [rbp + 0x48]
mov qword [rbp - 0x30], r12
lea rcx, [rbp - 0x30]
mov dword [rbp - 0x28], r12d
mov rbx, rax
call fcn.180004fb0
mov r8, rbx
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x30]
call fcn.1800056f0
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x40]
call fcn.180003bc0
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x18005ce62
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x180140010]
cmp al, 0x3e
jne 0x18005ce62
mov dl, 0x20
lea rcx, [rbp - 0x40]
call fcn.180003f60
mov dl, 0x3e
lea rcx, [rbp - 0x40]
call fcn.180003f60
test r15, r15
je 0x18005ce75
mov byte [r15], sil
mov rbx, qword [0x180134128]
cmp byte [rbx], r12b
jne 0x18005ce90
mov rax, qword [rbp - 0x40]
mov qword [rdi], rax
mov eax, dword [rbp - 0x38]
jmp 0x18005cdc1
mov r14, qword [rbp - 0x40]
add rbx, rsi
mov qword [0x180134128], rbx
xor r8d, r8d
lea rcx, [rbp - 0x10]
xor edx, edx
call fcn.180004670
mov rcx, qword [rax]
mov eax, dword [rax + 8]
mov qword [rbp - 0x50], rcx
mov dword [rbp - 0x48], eax
mov qword [0x180134128], rbx
test rcx, rcx
je 0x18005cf06
cmp byte [rbx - 1], 0x31
jne 0x18005cf06
mov r8d, esi
mov byte [rbp + 0x48], 0x7e
lea rdx, [rbp + 0x48]
mov qword [rbp - 0x30], r12
lea rcx, [rbp - 0x30]
mov dword [rbp - 0x28], r12d
call fcn.180004fb0
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x30]
call fcn.1800056f0
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x50], rax
mov eax, dword [rbp - 0x18]
mov dword [rbp - 0x48], eax
test r14, r14
je 0x18005cdb7
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x50]
call fcn.180003bc0
jmp 0x18005cdb7
lea rax, [rbx - 1]
mov qword [0x180134128], rax
lea rax, [0x1801112f0]
mov dword [rdi + 8], r12d
mov qword [rdi], rax
mov byte [rdi + 8], r12b
jmp 0x18005cdc4
cmp cl, 0x42
je 0x18005d421
jle 0x18005d06d
cmp cl, 0x5a
jle 0x18005d426
cmp cl, 0x5f
jne 0x18005d06d
movsx ecx, byte [rbx]
lea rdx, [rbx + 1]
mov qword [0x180134128], rdx
cmp ecx, 0x4f
jg 0x18005d089
cmp ecx, 0x44
jge 0x18005d3ef
cmp ecx, 0x39
jg 0x18005d020
je 0x18005cfed
test ecx, ecx
je 0x18005cfe4
cmp ecx, 0x2f
jle 0x18005d06d
cmp ecx, 0x36
jle 0x18005cfcb
cmp ecx, 0x38
jg 0x18005d06d
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
mov rdx, qword [rbx + rdx*8 + 0x1101d0]
mov rcx, rdi
call fcn.180008550
jmp 0x18005cdc4
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
mov rdx, qword [rbx + rdx*8 + 0x1101d0]
jmp 0x18005cd7a
lea rax, [rdx - 1]
jmp 0x18005cf25
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
lea rcx, [rbp - 0x20]
mov rdx, qword [rbx + rdx*8 + 0x1101d0]
call fcn.180008550
mov ecx, dword [rbp - 0x18]
bts ecx, 0xf
mov rax, qword [rbp - 0x20]
mov qword [rdi], rax
mov dword [rdi + 8], ecx
jmp 0x18005cdc4
cmp ecx, 0x3f
je 0x18005d055
cmp ecx, 0x40
jle 0x18005d06d
cmp ecx, 0x42
jle 0x18005d3ef
cmp ecx, 0x43
jne 0x18005d06d
lea r8d, [rcx - 0x42]
lea rdx, str._string
lea rcx, [rbp - 0x20]
call fcn.1800013c0
mov ecx, dword [rbp - 0x18]
bts ecx, 0xc
jmp 0x18005d011
mov al, byte [rdx]
inc rdx
mov qword [0x180134128], rdx
test al, al
je 0x18005cfe4
cmp al, 0x30
je 0x18005d07d
mov dword [rdi + 8], r12d
mov byte [rdi + 8], 2
mov qword [rdi], r12
jmp 0x18005cdc4
xor r8d, r8d
lea rdx, str._anonymous_namespace
jmp 0x18005d043
cmp ecx, 0x54
jg 0x18005d29e
cmp ecx, 0x53
jge 0x18005d3ef
sub ecx, 0x50
je 0x18005d24e
sub ecx, 1
je 0x18005cd83
cmp ecx, 1
jne 0x18005d06d
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
lea rcx, [rbp - 0x50]
mov rdx, qword [rbx + rdx*8 + 0x110198]
call fcn.180005ee0
mov rax, qword [0x180134128]
mov cl, byte [rax]
test cl, cl
jne 0x18005d0f3
mov r8d, 1
lea rcx, [rbp - 0x50]
mov rdx, rdi
call fcn.180002ed0
jmp 0x18005cdc4
cmp cl, 0x30
jl 0x18005d06d
movsx rdx, cl
add rdx, 0xffffffffffffffd0
cmp rdx, 5
jae 0x18005d06d
mov rdx, qword [rbx + rdx*8 + 0x110218]
lea rcx, [rbp - 0x40]
call fcn.180005ee0
mov rax, qword [0x180134128]
mov cl, byte [rax]
inc rax
mov qword [0x180134128], rax
cmp cl, 0x30
je 0x18005d21b
cmp cl, 0x31
je 0x18005d164
jle 0x18005d15c
cmp cl, 0x34
jg 0x18005d15c
lea rcx, [rbp - 0x50]
mov rdx, rdi
lea r8, [rbp - 0x40]
call fcn.1800056f0
jmp 0x18005cdc4
dec rax
jmp 0x18005cf25
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x50]
call fcn.1800056f0
lea rcx, [rbp - 0x10]
call fcn.180007940
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x2c
call fcn.180001120
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.180003bc0
lea rcx, [rbp - 0x10]
call fcn.180007940
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x2c
call fcn.180001120
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.180003bc0
lea rcx, [rbp - 0x10]
call fcn.180007940
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x2c
call fcn.180001120
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.180003bc0
xor edx, edx
lea rcx, [rbp - 0x10]
call fcn.180002fe0
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x29
call fcn.180001120
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.180003bc0
mov r8b, 0x27
lea rcx, [rbp - 0x30]
mov rdx, rdi
call fcn.180001120
jmp 0x18005cdc4
xor edx, edx
lea rcx, [rbp - 0x20]
call fcn.180005980
mov r8b, 0x20
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x20]
call fcn.180001120
mov rcx, rax
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x30]
call fcn.1800056f0
mov rcx, rax
jmp 0x18005d14b
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
lea rcx, [rbp - 0x50]
mov rdx, qword [rbx + rdx*8 + 0x110198]
call fcn.180005ee0
xor r8d, r8d
lea rcx, [rbp - 0x10]
xor edx, edx
call fcn.1800091a0
mov rcx, qword [rax]
mov edx, dword [rax + 8]
mov qword [rbp - 0x40], rcx
mov dword [rbp - 0x38], edx
test rcx, rcx
je 0x18005d147
bt edx, 0xa
jb 0x18005d06d
jmp 0x18005d147
cmp ecx, 0x56
jle 0x18005d408
cmp ecx, 0x57
jle 0x18005d06d
cmp ecx, 0x59
jle 0x18005d3ef
cmp ecx, 0x5f
jne 0x18005d06d
mov al, byte [rdx]
lea esi, [rcx - 0x5e]
add rdx, rsi
mov qword [0x180134128], rdx
cmp al, r8b
jl 0x18005d06d
cmp al, 0x44
jle 0x18005d2f6
cmp al, 0x46
jle 0x18005d373
cmp al, 0x4a
jle 0x18005d2f6
cmp al, 0x4b
je 0x18005d30f
cmp al, 0x4c
jne 0x18005d06d
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
mov rdx, qword [rbx + rdx*8 + 0x110260]
jmp 0x18005cfbe
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
lea rcx, [rbp - 0x30]
mov rdx, qword [rbx + rdx*8 + 0x110260]
call fcn.180008550
jmp 0x18005d348
cmp cl, 0x40
je 0x18005d35a
add rax, rsi
mov dl, cl
lea rcx, [rbp - 0x30]
mov qword [0x180134128], rax
call fcn.180003f60
mov rax, qword [0x180134128]
mov cl, byte [rax]
test cl, cl
jne 0x18005d32e
cmp cl, 0x40
jne 0x18005d364
add rax, rsi
mov qword [0x180134128], rax
mov rax, qword [rbp - 0x30]
mov qword [rdi], rax
mov eax, dword [rbp - 0x28]
jmp 0x18005cdc1
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
lea rcx, [rbp - 0x30]
mov rdx, qword [rbx + rdx*8 + 0x110260]
call fcn.180008550
mov rax, qword [0x180134128]
lea rcx, [rbp - 0x10]
cmp byte [rax], 0x3f
jne 0x18005d3c9
call fcn.180001a90
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.180003bc0
mov rax, qword [0x180134128]
cmp byte [rax], 0x40
jne 0x18005d3da
add rax, rsi
mov qword [0x180134128], rax
jmp 0x18005d3da
call fcn.180009fe0
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.180003bc0
lea rdx, [0x180110d54]
lea rcx, [rbp - 0x30]
call fcn.1800062c0
jmp 0x18005d364
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
mov rdx, qword [rbx + rdx*8 + 0x110198]
jmp 0x18005cfbe
movsx rdx, byte [rdx - 1]
lea rbx, [0x180000000]
mov rdx, qword [rbx + rdx*8 + 0x110198]
jmp 0x18005cd7a
mov esi, 1
movsx rdx, byte [rbx - 1]
lea rcx, [rbp - 0x50]
lea rbx, [0x180000000]
mov rdx, qword [rbx + rdx*8 + 0x110078]
call fcn.180005ee0
test esi, esi
je 0x18005cd83
cmp qword [rbp - 0x50], r12
je 0x18005cdb7
bts dword [rbp - 0x48], 9
jmp 0x18005cdb7