Function at 0x140085980
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [rcx + 0x118]
mov rbx, rcx
mov qword [rcx + 0x120], rax
lea rax, [rdx + r8]
mov qword [rcx + 0x128], rdx
mov qword [rcx + 0x130], rdx
mov qword [rcx + 0x138], rax
cmp rdx, rax
jae 0x140085d1f
mov rcx, rax
lea r12, [0x14049b8b0]
xor r13d, r13d
nop
cmp byte [rdx], 0x3c
jne 0x140085c70
lea rdx, [rbp - 0x20]
mov rcx, rbx
mov r15d, r13d
mov r14d, r13d
call fcn.140085e80
cmp eax, 0x43
je 0x140085d05
cmp eax, 0x44
jne 0x140085a26
mov rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x18]
add rdx, 9
add r8, 0xfffffffffffffffd
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x18], r8
jmp 0x140085cf1
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.140085e80
cmp eax, 0x2f
jne 0x140085a7a
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.140085e80
cmp eax, 0x49
jne 0x140085d4e
mov rdx, qword [rbp - 0x20]
mov rcx, rbx
mov r8, qword [rbp - 0x18]
sub r8, rdx
call fcn.140085780
test eax, eax
jne 0x140085d6d
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.140085e80
mov edi, eax
jmp 0x140085c3e
cmp eax, 0x21
jne 0x140085a93
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.140085e80
mov r14d, 1
jmp 0x140085aaa
cmp eax, 0x3f
jne 0x140085aaa
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.140085e80
mov r15d, 1
cmp eax, 0x49
jne 0x140085dc0
mov rdx, qword [rbp - 0x20]
mov rcx, rbx
mov r8, qword [rbp - 0x18]
sub r8, rdx
mov dword [rbx + 4], r13d
call fcn.140085580
test eax, eax
jne 0x140085d6d
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.140085e80
mov edi, eax
cmp eax, 0x49
je 0x140085af7
cmp eax, 0x53
jne 0x140085bcb
test r14d, r14d
je 0x140085bf3
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.140085e80
mov edi, eax
cmp eax, 0x3d
jne 0x140085b94
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.140085e80
cmp eax, 0x49
je 0x140085b28
cmp eax, 0x53
jne 0x140085d74
mov rsi, qword [rbp - 0x20]
mov rcx, rbx
mov rdi, qword [rbp - 0x18]
mov rdx, rsi
sub rdi, rsi
mov dword [rbx + 4], 1
mov r8, rdi
call fcn.140085580
test eax, eax
jne 0x140085d6d
mov rax, qword [rbx + 0x150]
test rax, rax
je 0x140085b74
mov rdx, qword [rbp - 0x10]
mov rcx, rbx
mov r8, qword [rbp - 8]
sub r8, rdx
call rax
test eax, eax
jne 0x140085d6d
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.140085780
test eax, eax
je 0x140085ad2
mov eax, 1
jmp 0x140085de8
cmp eax, 0x49
jne 0x140085bbb
mov rsi, qword [rbp - 0x20]
mov rcx, rbx
mov rdi, qword [rbp - 0x18]
mov rdx, rsi
sub rdi, rsi
mov dword [rbx + 4], 1
mov r8, rdi
call fcn.140085580
jmp 0x140085b6c
cmp eax, 0x53
jne 0x140085bcb
test r14d, r14d
jne 0x140085ad2
jmp 0x140085bf3
cmp edi, 0x2f
jne 0x140085bf3
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.140085780
test eax, eax
jne 0x140085d6d
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.140085e80
mov edi, eax
test r15d, r15d
je 0x140085c24
cmp edi, 0x3f
jne 0x140085d9a
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.140085780
test eax, eax
jne 0x140085d6d
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.140085e80
mov edi, eax
test r14d, r14d
je 0x140085c3e
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.140085780
test eax, eax
jne 0x140085d6d
cmp edi, 0x3e
je 0x140085d05
mov ecx, edi
call fcn.140085480
mov r9, rax
lea rcx, [rbx + 8]
mov edx, 0x80
lea r8, str._s_unexpected____wanted_
call fcn.140022700
mov eax, 1
jmp 0x140085de8
mov qword [rbp - 0x20], rdx
mov r8, rdx
cmp rdx, rax
jae 0x140085c9b
mov rax, rdx
nop
cmp byte [rax], 0x3c
mov r8, rax
je 0x140085c9b
lea r8, [rax + 1]
mov qword [rbx + 0x130], r8
mov rax, r8
cmp r8, rcx
jb 0x140085c80
test byte [rbx], 2
mov qword [rbp - 0x18], r8
jne 0x140085cec
cmp rdx, r8
jae 0x140085cef
nop dword [rax]
movzx eax, byte [rdx]
test byte [rax + r12], 8
je 0x140085cc8
inc rdx
mov qword [rbp - 0x20], rdx
cmp rdx, r8
jb 0x140085cb0
jmp 0x140085cec
cmp rdx, r8
jae 0x140085cef
nop dword [rax]
movzx eax, byte [r8 - 1]
lea rcx, [r8 - 1]
test byte [rax + r12], 8
je 0x140085cec
mov qword [rbp - 0x18], rcx
mov r8, rcx
cmp rdx, rcx
jb 0x140085cd0
cmp rdx, r8
je 0x140085d05
mov rax, qword [rbx + 0x150]
test rax, rax
je 0x140085d05
sub r8, rdx
mov rcx, rbx
call rax
mov rax, qword [rbx + 0x138]
mov rdx, qword [rbx + 0x130]
mov rcx, rax
cmp rdx, rax
jb 0x1400859e0
mov rax, qword [rbx + 0x118]
cmp byte [rax], 0
je 0x140085de6
lea rcx, [rbx + 8]
mov edx, 0x80
lea r8, str.unexpected_END_OF_INPUT
call fcn.140022700
mov eax, 1
jmp 0x140085de8
mov ecx, eax
call fcn.140085480
mov r9, rax
lea rcx, [rbx + 8]
mov edx, 0x80
lea r8, str._s_unexpected__ident_wanted_
call fcn.140022700
mov eax, 1
jmp 0x140085de8
mov ecx, eax
call fcn.140085480
mov r9, rax
lea rcx, [rbx + 8]
mov edx, 0x80
lea r8, str._s_unexpected__ident_or_string_wanted_
call fcn.140022700
mov eax, 1
jmp 0x140085de8
mov ecx, edi
call fcn.140085480
mov r9, rax
lea rcx, [rbx + 8]
mov edx, 0x80
lea r8, [0x1402b9688]
call fcn.140022700
mov eax, 1
jmp 0x140085de8
mov ecx, eax
call fcn.140085480
mov r9, rax
lea rcx, [rbx + 8]
mov edx, 0x80
lea r8, str._s_unexpected__ident_or___wanted_
call fcn.140022700
mov eax, 1
jmp 0x140085de8
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rbp
ret