Function at 0x140091990
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0x30
mov rax, qword [rcx + 0x38]
xor ebp, ebp
mov rdi, rcx
mov rdx, qword [rax + 0x20]
cmp byte [rdx], 0x25
jne case.0x1400919d5.2
mov eax, dword [rcx + 0x108]
inc eax
cmp eax, 0x11
ja case.default.0x1400919d5
lea r8, [0x140000000]
cdqe
mov ecx, dword [r8 + rax*4 + 0x91d84]
add rcx, r8
jmp rcx
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 0x12]
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
jmp fcn.140081ab0
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 0x13]
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
jmp fcn.140081ab0
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 0x14]
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
jmp fcn.140081ab0
cmp dword [rdi + 0x8c], ebp
jne 0x140091a34
cmp dword [rdi + 0x40], 1
je case.0x1400919d5.2
movzx eax, byte [rdx + 1]
cmp al, 0x20
ja case.default.0x1400919d5
movabs rcx, 0x100002601
bt rcx, rax
jb case.0x1400919d5.2
mov rcx, rdi
mov qword [rsp + 0x50], rsi
call fcn.1400b9930
mov rcx, rdi
call fcn.14008c0a0
mov rsi, rax
call fcn.1400b55d0
cmp dword [rax], ebp
je 0x140091a97
mov qword [rsp + 0x48], rbx
call fcn.1400b5450
mov rbx, rax
call fcn.1400b5480
mov r8, rsi
lea rdx, str.PEReference:__s_n
mov rcx, qword [rax]
call qword [rbx]
mov rbx, qword [rsp + 0x48]
test rsi, rsi
jne 0x140091aa4
lea edx, [rsi + 0x18]
jmp 0x140091d67
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + 0x20]
cmp byte [rcx], 0x3b
jne 0x140091d62
mov rcx, rdi
call fcn.1400b9930
mov rax, qword [rdi]
test rax, rax
je 0x140091ade
mov r8, qword [rax + 0xc0]
test r8, r8
je 0x140091ade
mov rcx, qword [rdi + 8]
mov rdx, rsi
call r8
mov rbp, rax
cmp dword [rdi + 0x108], 0xffffffff
je 0x140091d72
test rbp, rbp
jne 0x140091bd1
cmp dword [rdi + 0x30], 1
je 0x140091b75
cmp dword [rdi + 0x84], ebp
jne 0x140091b0a
cmp dword [rdi + 0x88], ebp
je 0x140091b75
cmp dword [rdi + 0x94], 0
je 0x140091b49
cmp qword [rdi + 0xa0], 0
je 0x140091b49
mov r9, rsi
mov qword [rsp + 0x20], 0
lea r8, str.PEReference:____s__not_found_n
mov edx, 0x1b
mov rcx, rdi
call fcn.1400c1360
mov dword [rdi + 0x90], 0
jmp 0x140091b8c
mov r9, rsi
mov qword [rsp + 0x20], 0
lea r8, str.PEReference:____s__not_found_n
mov edx, 0x1b
mov rcx, rdi
call fcn.140092cd0
mov dword [rdi + 0x90], 0
jmp 0x140091b8c
mov r9, rsi
lea r8, str.PEReference:____s__not_found_n
mov edx, 0x1a
mov rcx, rdi
call fcn.140082170
test dword [rdi + 0x224], 0x80000
jne 0x140091d72
mov eax, dword [rdi + 0x24c]
cmp eax, 0x59
je 0x140091d72
add eax, 0xffffffe6
cmp eax, 1
ja 0x140091d72
cmp dword [rdi + 0x2a4], 0x2710
jbe 0x140091d72
mov edx, 0x59
jmp 0x140091d67
mov rax, qword [rdi + 0x38]
lea rcx, [0x140080380]
cmp qword [rax + 0x40], rcx
je 0x140091c07
mov rdx, rbp
mov rcx, rdi
call fcn.140082be0
mov rdx, rax
mov rcx, rdi
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
jmp fcn.140091e60
mov ecx, dword [rbp + 0x5c]
lea eax, [rcx - 4]
cmp eax, 1
jbe 0x140091c38
mov r9, rsi
lea r8, str.PEReference:__s_is_not_a_parameter_entity_n
mov edx, 0x1e
mov rcx, rdi
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
jmp fcn.140082170
cmp ecx, 5
jne 0x140091c59
test byte [rdi + 0x224], 0x1e
jne 0x140091c59
cmp dword [rdi + 0x1c], 0
jne 0x140091c59
cmp dword [rdi + 0x94], 0
je 0x140091d72
mov rdx, rbp
mov rcx, rdi
call fcn.1400b9510
mov rdx, rax
mov rcx, rdi
call fcn.140091e60
test eax, eax
js 0x140091d72
cmp dword [rdi + 0x1b4], 0
jne 0x140091c9d
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + 0x28]
sub rcx, qword [rax + 0x20]
cmp rcx, 0xfa
jge 0x140091c9d
mov rcx, rdi
call fcn.140082310
cmp dword [rdi + 0x108], 0xffffffff
je 0x140091d72
mov rdx, qword [rdi + 0x38]
mov rcx, qword [rdx + 0x20]
mov rax, qword [rdx + 0x28]
sub rax, rcx
cmp rax, 4
jl 0x140091d07
movzx eax, byte [rcx]
mov byte [rsp + 0x40], al
mov rax, qword [rdx + 0x20]
movzx ecx, byte [rax + 1]
mov byte [rsp + 0x41], cl
mov rax, qword [rdx + 0x20]
movzx ecx, byte [rax + 2]
mov byte [rsp + 0x42], cl
mov rax, qword [rdx + 0x20]
mov edx, 4
movzx ecx, byte [rax + 3]
mov byte [rsp + 0x43], cl
lea rcx, [rsp + 0x40]
call fcn.1400bfed0
test eax, eax
je 0x140091d07
mov edx, eax
mov rcx, rdi
call fcn.1400ba260
cmp dword [rbp + 0x5c], 5
jne 0x140091d72
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + 0x20]
cmp byte [rcx], 0x3c
jne 0x140091d72
cmp byte [rcx + 1], 0x3f
jne 0x140091d72
cmp byte [rcx + 2], 0x78
jne 0x140091d72
cmp byte [rcx + 3], 0x6d
jne 0x140091d72
cmp byte [rcx + 4], 0x6c
jne 0x140091d72
movzx eax, byte [rcx + 5]
cmp al, 0x20
ja 0x140091d72
movabs rcx, 0x100002600
bt rcx, rax
jae 0x140091d72
mov rcx, rdi
call fcn.140090f30
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
mov edx, 0x19
xor r8d, r8d
mov rcx, rdi
call fcn.140081ab0
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret