Function at 0x1400318a0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
sub rsp, 0x20
mov eax, dword [rcx + 0x8c]
mov rsi, qword [rcx + 0x98]
mov edi, dword [rcx + 0x94]
dec eax
xor ebp, ebp
mov rbx, rcx
mov dword [rcx + 0x88], eax
mov dword [rsi], ebp
mov rax, qword [rsi + 8]
mov r8d, dword [rax + 4]
test r8d, r8d
js 0x1400318fd
test byte [rax + 0xc], 2
jne 0x140031911
cmp dword [rax + 8], ebp
jle 0x140031911
test r8d, 0xfffffffe
jle 0x140031911
xor r9d, r9d
xor edx, edx
lea ecx, [rdx + 0x14]
lea r8d, [r9 + 4]
call fcn.1400464e0
mov r8d, eax
lea rcx, [rsi + 8]
xor edx, edx
call fcn.140028850
mov byte [rsi + 0x10], bpl
movsxd rax, dword [rbx + 0x8c]
mov r9d, dword [rbx + 0x90]
or r12d, 0xffffffff
mov qword [rbx + 0xa0], rbp
cmp eax, r9d
jne 0x140031943
mov edx, r12d
jmp 0x140031959
mov rcx, qword [rbx + 0x80]
mov rdx, rax
inc eax
mov dword [rbx + 0x8c], eax
movzx edx, word [rcx + rdx*2]
lea eax, [rdi + 1]
mov dword [rbx + 0x94], edx
cmp eax, 0x7e
ja case.0x140031988.0
lea r8, [0x140000000]
cdqe
movzx eax, byte [r8 + rax + 0x31dc4]
mov ecx, dword [r8 + rax*4 + 0x31d84]
add rcx, r8
jmp rcx
mov eax, dword [rbx + 0x8c]
mov dword [rbx + 0x88], eax
xor eax, eax
jmp 0x140031d67
mov eax, 1
jmp 0x140031d67
cmp edx, 0x3f
jne 0x140031a41
movsxd rax, dword [rbx + 0x8c]
cmp eax, r9d
jne 0x1400319c1
mov r8d, r12d
jmp 0x1400319d8
mov rcx, qword [rbx + 0x80]
mov rdx, rax
inc eax
mov dword [rbx + 0x8c], eax
movzx r8d, word [rcx + rdx*2]
movsxd rax, dword [rbx + 0x8c]
cmp eax, r9d
je 0x1400319fb
mov rcx, qword [rbx + 0x80]
mov rdx, rax
inc eax
mov dword [rbx + 0x8c], eax
movzx r12d, word [rcx + rdx*2]
mov dword [rbx + 0x94], r12d
cmp r8d, 0x21
je 0x140031a37
cmp r8d, 0x3a
je 0x140031a23
cmp r8d, 0x3d
je 0x140031a2d
lea rdx, [0x141559710]
mov rcx, rbx
call fcn.1400287f0
mov eax, 3
jmp 0x140031d67
mov eax, 4
jmp 0x140031d67
mov eax, 5
jmp 0x140031d67
mov eax, 2
jmp 0x140031d67
mov eax, 6
jmp 0x140031d67
mov dword [rbx + 0xa0], ebp
mov dword [rbx + 0xa4], 0x401
mov eax, 9
jmp 0x140031d67
mov dword [rbx + 0xa0], 1
mov dword [rbx + 0xa4], 0x401
mov eax, 9
jmp 0x140031d67
mov rcx, qword [rbx + 0x98]
mov dl, 1
call fcn.1400294d0
mov eax, 7
jmp 0x140031d67
mov dword [rbx + 0xa0], ebp
mov dword [rbx + 0xa4], 1
mov eax, 9
jmp 0x140031d67
cmp edx, 0x5e
jne 0x140031ae0
mov rcx, qword [rbx + 0x98]
mov dl, 1
call fcn.1400294d0
mov rcx, rbx
call fcn.140027a60
mov dword [rbx + 0x94], eax
xor sil, sil
xor dil, dil
cmp dword [rbx + 0x94], 0x2d
jne 0x140031b0f
test sil, sil
je 0x140031b2f
test dil, dil
jne 0x140031b0f
mov rcx, rbx
mov dil, 1
call fcn.140027a60
mov dword [rbx + 0x94], eax
jmp 0x140031c0e
test sil, sil
je 0x140031b2f
test dil, dil
jne 0x140031b2f
mov rcx, qword [rbx + 0x98]
movzx r8d, bp
movzx edx, bp
call fcn.140030230
xor sil, sil
mov r8d, dword [rbx + 0x94]
movsxd rax, dword [rbx + 0x8c]
cmp r8d, 0x5c
jne 0x140031b97
cmp eax, dword [rbx + 0x90]
jne 0x140031b50
mov eax, r12d
jmp 0x140031b66
mov rcx, qword [rbx + 0x80]
mov rdx, rax
inc eax
mov dword [rbx + 0x8c], eax
movzx eax, word [rcx + rdx*2]
mov rcx, rbx
mov dword [rbx + 0x94], eax
call fcn.1400307b0
mov r8d, eax
cmp eax, 0xb
jne 0x140031bc5
mov r8d, 8
bt r8d, 0x10
jae 0x140031bff
test dil, dil
jne 0x140031be8
movzx ebp, r8w
mov sil, 1
jmp 0x140031c0e
bts r8d, 0x10
cmp eax, dword [rbx + 0x90]
jne 0x140031ba9
mov eax, r12d
jmp 0x140031bbf
mov rcx, qword [rbx + 0x80]
mov rdx, rax
inc eax
mov dword [rbx + 0x8c], eax
movzx eax, word [rcx + rdx*2]
mov dword [rbx + 0x94], eax
cmp r8d, 7
jne 0x140031b82
test dil, dil
je 0x140031c0e
mov rcx, qword [rbx + 0x98]
mov edx, 0x2d
mov r8d, edx
call fcn.140030230
movzx r8d, bp
mov rcx, qword [rbx + 0x98]
movzx edx, bp
call fcn.140030230
xor sil, sil
xor dil, dil
jmp 0x140031c0e
lea rdx, [0x141559690]
mov rcx, rbx
call fcn.1400287f0
mov eax, dword [rbx + 0x94]
cmp eax, 0x5d
je 0x140031c22
cmp eax, 0xffffffff
jne 0x140031ae6
test dil, dil
je 0x140031c3b
mov rcx, qword [rbx + 0x98]
mov edx, 0x2d
mov r8d, edx
call fcn.140030230
test sil, sil
je 0x140031c53
mov rcx, qword [rbx + 0x98]
movzx r8d, bp
movzx edx, bp
call fcn.140030230
cmp dword [rbx + 0x94], 0xffffffff
mov rcx, rbx
jne 0x140031c75
lea rdx, [0x1415596c0]
call fcn.1400287f0
mov eax, 7
jmp 0x140031d67
call fcn.140027a60
mov dword [rbx + 0x94], eax
mov eax, 7
jmp 0x140031d67
mov rcx, rbx
call fcn.1400307b0
jmp 0x140031d67
lea rdx, [0x1415596f8]
mov rcx, rbx
call fcn.1400287f0
mov eax, 0x1005d
jmp 0x140031d67
mov eax, 8
jmp 0x140031d67
xor edx, edx
mov rcx, rbx
call fcn.140028bc0
cmp dword [rbx + 0x94], 0x2c
mov dword [rbx + 0xa0], eax
mov dword [rbx + 0xa4], eax
jne 0x140031cfa
mov rcx, rbx
call fcn.140027a60
mov edx, 0x401
mov rcx, rbx
mov dword [rbx + 0x94], eax
call fcn.140028bc0
mov dword [rbx + 0xa4], eax
mov eax, dword [rbx + 0xa0]
cmp dword [rbx + 0xa4], eax
jge 0x140031d17
lea rdx, [0x1415596e0]
mov rcx, rbx
call fcn.1400287f0
cmp dword [rbx + 0x94], 0x7d
je 0x140031d2f
lea rdx, [0x1415583a0]
mov rcx, rbx
call fcn.1400287f0
mov rcx, rbx
call fcn.140027a60
mov dword [rbx + 0x94], eax
mov eax, 9
jmp 0x140031d67
mov eax, 0xa
jmp 0x140031d67
lea rdx, [0x1415596f8]
mov rcx, rbx
call fcn.1400287f0
mov eax, 0x1007d
jmp 0x140031d67
bts edi, 0x10
mov eax, edi
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r12
ret