Function at 0x1400e0990
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, qword [rdx + 8]
xor eax, eax
test r14, r14
je 0x1400e0d3c
mov rbx, qword [r14 + 0xd0]
test rbx, rbx
je 0x1400e0d3c
mov rdi, rdx
mov rsi, rcx
mov rax, qword [rdx + 0x20]
mov ecx, dword [rdx + 0x28]
imul rcx, rcx, 0x38
lea r11, [rax + rcx]
add r11, 0xffffffffffffffc8
cmp byte [rax + rcx - 3], 0
jns 0x1400e09ea
cmp byte [r14 + 0x44], 0x14
jne 0x1400e0b35
mov edx, dword [r11 + 8]
mov ecx, dword [r11 + 0xc]
cmp ecx, edx
mov ebp, edx
cmova ebp, ecx
lea rax, [r11 + 8]
mov qword [rsp + 0x40], rax
mov eax, dword [rsi + 0xa0]
add ebp, eax
mov r13, r14
nop dword [rax]
mov r13, qword [r13 + 0xd0]
test r13, r13
je 0x1400e0a24
cmp word [r13 + 0x10], 4
je 0x1400e0a10
mov r12, rbx
nop word [rax + rax]
mov r12, qword [r12 + 0xd8]
test r12, r12
je 0x1400e0a48
cmp word [r12 + 0x10], 4
je 0x1400e0a30
jmp 0x1400e0a4b
mov r12, r14
movzx r8d, byte [rsi + 0x174]
cmp r8d, 0xa
je 0x1400e0aa5
cmp r8d, 3
jne 0x1400e0ba5
mov r9, qword [rsi + 0x308]
mov r15, qword [r9 + 0x110]
mov r9, qword [r9 + 0x118]
test r9, r9
je 0x1400e0b63
mov qword [rsp + 0x38], r15
mov r8, r11
movzx r11d, word [r14 + 0x10]
lea r10d, [r11 - 7]
cmp r10w, 6
jae 0x1400e0b41
xor r10d, r10d
jmp 0x1400e0b52
mov rax, qword [rsi + 0x308]
mov rcx, rbx
nop
mov rcx, qword [rcx + 0xd8]
test rcx, rcx
je 0x1400e0ac3
cmp word [rcx + 0x10], 4
je 0x1400e0ab0
cmp byte [rbx + 0x44], 0x2a
je 0x1400e0bb9
movzx edx, word [rbx + 0x10]
test rcx, rcx
je 0x1400e0b7d
cmp dx, 0x52
jne 0x1400e0b7d
mov edx, dword [rcx + 0x10]
add edx, 0xffffffc3
cmp dx, 2
jb 0x1400e0ba5
mov rdx, qword [rax + 0x320]
mov r8, qword [rax + 0x460]
mov r9, qword [rax + 0x490]
mov r10, qword [rax + 0x500]
mov rax, qword [rax + 0x590]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r10
mov r15, r11
call fcn.1400cff70
mov r11, r15
test al, al
jne 0x1400e0ba5
jmp 0x1400e0bb9
mov eax, dword [r11 + 0x1c]
add eax, 2
jmp 0x1400e0d3c
xor r10d, r10d
lea r15d, [r11 - 0xd]
cmp r15d, 6
jae 0x1400e0d6e
mov r11, r8
cmp r10, r9
mov r15, qword [rsp + 0x38]
je 0x1400e0c8e
test r15, r15
je 0x1400e0ba5
movzx r10d, word [r14 + 0x10]
lea r9d, [r10 - 7]
cmp r9w, 6
jae 0x1400e0b85
xor r9d, r9d
jmp 0x1400e0b9c
cmp dx, 0x52
jne 0x1400e0ba5
jmp 0x1400e0bb9
mov r8, r11
xor r9d, r9d
lea r11d, [r10 - 0xd]
cmp r11d, 6
jae 0x1400e0d84
mov r11, r8
cmp r9, r15
je 0x1400e0c8e
cmp byte [rsi + 0x68], 5
jne 0x1400e0bd4
mov rax, qword [rdi + 0x70]
mov rax, qword [rax]
cmp word [rax + 0x10], 0x56
jne 0x1400e0bd4
mov rax, qword [rdi + 0x70]
mov rax, qword [rax]
mov eax, dword [rax + 0x80]
inc eax
imul eax, dword [rsi + 0x148]
jmp 0x1400e0d3c
movzx edx, word [r12 + 0x10]
cmp edx, 0x17
jne 0x1400e0c09
mov eax, 0xc000
and eax, dword [r12 + 0x40]
cmp eax, 0x4000
jne 0x1400e0c09
add rdi, 0x6c
cmp dword [r14 + 0x7c], 0
mov rax, qword [rsp + 0x40]
cmove rax, rdi
mov eax, dword [rax]
jmp 0x1400e0d3c
movzx ecx, word [r14 + 0x10]
lea eax, [rcx - 0x14]
cmp eax, 0x1f
ja case.0x1400e0c28.21
lea r8, [0x1400e1274]
movsxd rax, dword [r8 + rax*4]
add rax, r8
jmp rax
mov eax, dword [rdi + 0x28]
cmp eax, 2
jb 0x1400e0c9a
cmp byte [r14 + 0x44], 0x66
jne 0x1400e0c58
cmp qword [r14 + 0x20], 0
je 0x1400e0c49
mov rdx, qword [r14 + 0x18]
cmp byte [rdx], 0x7d
je 0x1400e0c7b
cmp ecx, 0x18
ja 0x1400e0c58
mov edx, 0x1500000
bt edx, ecx
jb 0x1400e0c7b
mov rcx, qword [r14 + 0xc8]
test rcx, rcx
je 0x1400e0e97
mov rdx, rsi
call fcn.1400fba70
test al, al
je 0x1400e0e77
mov eax, dword [rdi + 0x28]
mov eax, eax
imul rax, rax, 0x38
mov rcx, qword [rdi + 0x20]
mov eax, dword [rax + rcx - 0x60]
jmp 0x1400e0d3c
add eax, edx
cmp ecx, eax
cmova eax, ecx
jmp 0x1400e0d3c
cmp cx, 0x16
je 0x1400e0cd6
jmp case.0x1400e0c28.21
mov eax, dword [rdi + 0x28]
cmp rax, 2
jb 0x1400e0cd6
mov r8, qword [r14 + 0xd8]
test r8, r8
je 0x1400e0d30
movzx r8d, word [r8 + 0x10]
add r8d, 0xffffffe9
cmp r8d, 0x39
ja 0x1400e0cd6
movabs r9, 0x200008000000001
bt r9, r8
jb 0x1400e0d30
cmp byte [rsi + 8], 3
jne case.0x1400e0c28.21
mov eax, dword [rdi + 0x28]
cmp rax, 2
jb case.0x1400e0c28.21
jmp 0x1400e0d30
movzx eax, byte [rsi + 0x174]
cmp eax, 9
je case.0x1400e0c28.20
cmp eax, 7
je case.0x1400e0c28.20
movzx r8d, byte [r12 + 0x44]
cmp r8d, 0x66
jne 0x1400e0d4d
cmp qword [r12 + 0x20], 0
je 0x1400e0d1e
mov rax, qword [r12 + 0x18]
cmp byte [rax], 0x7d
je 0x1400e0d2d
cmp edx, 0x18
ja 0x1400e0d4d
mov eax, 0x1500000
bt eax, edx
jae 0x1400e0d4d
mov eax, dword [rdi + 0x28]
imul rax, rax, 0x38
mov rcx, qword [rdi + 0x20]
mov eax, dword [rax + rcx - 0x64]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp cx, 5
jne 0x1400e0dbc
mov rax, qword [r14 + 0xd8]
test rax, rax
je 0x1400e0dbc
cmp byte [rax + 0x44], 0x1f
jne 0x1400e0d9a
mov rax, qword [rsp + 0x40]
mov eax, dword [rax]
jmp 0x1400e0d3c
cmp r11d, 1
mov r11, r8
je 0x1400e0b55
mov r10, qword [r14 + 8]
jmp 0x1400e0b55
cmp r10d, 1
mov r11, r8
je 0x1400e0b9c
mov r9, qword [r14 + 8]
jmp 0x1400e0b9c
movzx r9d, byte [rsi + 0x174]
cmp r9d, 9
je 0x1400e0dae
cmp r9d, 7
jne 0x1400e0dbc
movzx eax, word [rax + 0x10]
cmp eax, 0x2e
je 0x1400e0d65
cmp eax, 0x17
je 0x1400e0d65
cmp r8b, 0x50
jne 0x1400e0dd0
mov eax, dword [rdi + 0x1c]
test eax, eax
je 0x1400e0dd0
dec eax
jmp 0x1400e0d3c
cmp edx, 0x12
ja 0x1400e0e9f
mov eax, 0x76000
bt eax, edx
jae 0x1400e0e9f
mov eax, dword [rdi + 0x1c]
test eax, eax
jne 0x1400e0d3c
lea eax, [rdx - 0x19]
cmp eax, 0x2d
ja 0x1400e0e2d
movabs r9, 0x200000000801
bt r9, rax
jae 0x1400e0e2d
lea eax, [r8 - 0x3c]
cmp eax, 0x2c
ja 0x1400e0e23
movabs r9, 0x100000000009
bt r9, rax
jb 0x1400e0e2d
cmp r8d, 0x1e
jne 0x1400e0f66
mov eax, dword [r11 + 0x18]
test eax, eax
je 0x1400e0f2c
cmp dx, 0x3d
jne 0x1400e0eba
cmp r8b, 0xd
je 0x1400e0e4f
cmp byte [rbx + 0x44], 0xd
jne 0x1400e0f2c
mov rcx, qword [r12 + 0xd8]
test rcx, rcx
je 0x1400e0ec0
mov edx, dword [rcx + 0xa0]
test rdx, rdx
je 0x1400e0ec0
mov rcx, qword [rcx + 0x98]
cmp dword [rcx + rdx*4 - 4], 3
jne 0x1400e0ec0
jmp 0x1400e0eed
mov rax, qword [r14 + 0xc8]
test rax, rax
je 0x1400e0e97
mov ecx, 0xc000
and ecx, dword [rax + 0x40]
cmp ecx, 0x8000
je 0x1400e0d2d
mov eax, dword [rdi + 0x6c]
jmp 0x1400e0d3c
cmp dx, 0x2f
jne 0x1400e0df2
mov eax, dword [r11 + 0x14]
test eax, eax
jne 0x1400e0d3c
jmp 0x1400e0df2
cmp byte [rbx + 0x44], 0xd
jne 0x1400e0f2c
cmp word [rbx + 0x10], 0x3d
jne 0x1400e0d3c
mov ecx, dword [r14 + 0xa0]
test rcx, rcx
je 0x1400e0d3c
mov rdx, qword [r14 + 0x98]
cmp dword [rdx + rcx*4 - 4], 3
jne 0x1400e0d3c
movzx ecx, byte [r11 + 0x36]
test cl, 2
jne 0x1400e0d3c
mov rax, qword [rsp + 0x40]
mov eax, dword [rax]
xor edx, edx
cmp byte [rsi + 0x1f], 0
je 0x1400e0f10
mov edx, dword [rsi + 0xa0]
sub eax, edx
cmp byte [rsi + 0x6b], 0
je 0x1400e0d3c
lea edx, [rax - 2]
test cl, 4
cmove edx, eax
mov eax, edx
jmp 0x1400e0d3c
movzx r9d, word [rbx + 0x10]
cmp r9w, 0x41
jne 0x1400e0f44
mov eax, dword [r11 + 0x30]
test eax, eax
jne 0x1400e0d3c
cmp byte [r14 + 0x44], 0x59
jne 0x1400e0f88
cmp byte [rsi + 0x146], 0
je 0x1400e0f76
mov eax, dword [rsi + 0x148]
mov rcx, qword [rsp + 0x40]
add eax, dword [rcx]
jmp 0x1400e0d3c
mov eax, dword [r11 + 0x2c]
test eax, eax
cmovne ebp, eax
mov eax, ebp
jmp 0x1400e0d3c
movsx eax, byte [rsi + 0x24c]
test eax, 0xfffffffd
je 0x1400e0d65
cmp r8d, 0x2e
ja 0x1400e0faf
mov eax, r8d
movabs r10, 0x600008000000
bt r10, rax
jae 0x1400e0faf
mov eax, dword [rsi + 0x9c]
add eax, dword [rdi + 0x6c]
jmp 0x1400e0d3c
test r13, r13
je 0x1400e0fe8
movzx eax, word [r13 + 0x40]
test eax, 0x1040
jne 0x1400e0fdb
movzx eax, byte [r13 + 0x44]
cmp rax, 0x3f
ja 0x1400e0fe8
movabs r10, 0x8004001000000030
bt r10, rax
jae 0x1400e0fe8
mov eax, dword [r11 + 8]
mov ecx, dword [r11 + 0xc]
jmp 0x1400e0c90
movzx r10d, byte [rsi + 0x14c]
test r10b, r10b
jne 0x1400e1003
cmp edx, 0x89
je 0x1400e0fdb
cmp r8b, 0x25
je 0x1400e0fdb
mov r15, qword [rsp + 0x40]
cmp r8b, 0x5e
jne 0x1400e1052
movzx eax, byte [r11 + 0x35]
test al, 8
jne 0x1400e1070
mov eax, dword [r15]
test r10b, r10b
jne 0x1400e1029
mov rcx, qword [rdi + 0x70]
cmp dword [rcx + 0x20], 3
jne 0x1400e1037
mov ecx, dword [rsi + 0xa0]
add ecx, dword [rdi + 0x6c]
cmp eax, ecx
cmovbe eax, ecx
mov ecx, dword [r12 + 0x54]
mov edx, dword [r12 + 0x88]
cmp edx, ecx
cmovbe edx, ecx
sub eax, ecx
add eax, edx
jmp 0x1400e0d3c
mov qword [rsp + 0x38], r11
cmp dx, 0x3d
jne 0x1400e108e
cmp r8b, 0x4d
jne 0x1400e108e
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x1c]
jmp 0x1400e0d3c
test al, 4
je 0x1400e1086
mov rcx, r11
mov eax, dword [r11 + 0x1c]
sub eax, dword [r12 + 0x54]
ja 0x1400e0d3c
mov eax, dword [r15]
jmp 0x1400e0d3c
cmp r8b, 1
jne 0x1400e10b2
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x24]
test eax, eax
jne 0x1400e0d3c
cmp byte [rsi + 0x174], 2
jne 0x1400e10ee
mov ebp, dword [r15]
jmp 0x1400e10ee
mov rax, qword [rdi + 0x70]
cmp byte [rax + 0x41], 0
je 0x1400e10ca
mov eax, dword [rsi + 0xa0]
add eax, dword [r15]
jmp 0x1400e0d3c
cmp dx, 5
jne 0x1400e10db
cmp dword [r12 + 0xb8], 0
je 0x1400e10f5
cmp r8b, 0x53
je 0x1400e10ee
cmp r8d, 0x5f
je 0x1400e10ee
cmp r9w, 0x47
jne 0x1400e110e
mov eax, ebp
jmp 0x1400e0d3c
mov rax, qword [r12 + 0xd8]
test rax, rax
je 0x1400e10db
cmp byte [rax + 0x44], 0x4d
je 0x1400e1086
jmp 0x1400e10db
cmp r9w, 0x3f
je 0x1400e10ee
cmp byte [rbx + 0x44], 0x39
je 0x1400e10ee
test r13, r13
je 0x1400e1167
cmp word [r13 + 0x10], 0x3d
jne 0x1400e1137
movzx eax, byte [r13 + 0x44]
cmp eax, 0x1f
je 0x1400e10ee
cmp eax, 0x4d
je 0x1400e10ee
cmp r8b, 0x1c
je 0x1400e1086
movzx eax, byte [r13 + 0x44]
cmp al, 0x1b
jne 0x1400e1154
cmp byte [rsi + 0x6c], 2
je 0x1400e1086
cmp al, 0x2d
jne 0x1400e1171
cmp byte [rsi + 0x98], 2
je 0x1400e1086
jmp 0x1400e1171
cmp r8b, 0x1c
je 0x1400e1086
cmp r9w, 0x16
jne 0x1400e11a4
mov eax, dword [r14 + 0x48]
test eax, eax
jne 0x1400e118a
mov dl, 1
mov r8b, 1
call fcn.140126f70
cmp eax, 1
jg 0x1400e11a4
movzx ecx, word [r14 + 0x10]
cmp ecx, 0x3d
je 0x1400e11a4
mov eax, ebp
cmp ecx, 4
jne 0x1400e0d3c
cmp byte [r14 + 0x44], 0x54
je 0x1400e1086
mov eax, dword [r14 + 0x48]
test eax, eax
jne 0x1400e11c6
movzx ecx, word [r14 + 0x10]
mov dl, 1
mov r8b, 1
call fcn.140126f70
cmp eax, 2
jl 0x1400e11d6
mov rax, qword [rsp + 0x38]
test byte [rax + 0x36], 4
jne 0x1400e124d
cmp word [r14 + 0x10], 4
je 0x1400e11ed
movzx eax, byte [r14 + 0x44]
cmp eax, 0x40
je 0x1400e11ed
cmp eax, 8
jne 0x1400e1216
mov eax, dword [r12 + 0x48]
test eax, eax
jne 0x1400e1206
movzx ecx, word [r12 + 0x10]
mov dl, 1
mov r8b, 1
call fcn.140126f70
cmp eax, 2
jl 0x1400e1216
mov rax, qword [rsp + 0x38]
test byte [rax + 0x36], 4
jne 0x1400e125f
mov eax, dword [r15]
test r13, r13
je 0x1400e0d3c
cmp eax, dword [rdi + 0x6c]
jne 0x1400e0d3c
cmp word [r13 + 0x10], 0x18
je 0x1400e0d3c
cmp byte [r13 + 0x44], 0x1c
je 0x1400e0d3c
add eax, dword [rsi + 0xa0]
jmp 0x1400e0d3c
mov eax, dword [r15]
mov ecx, dword [r14 + 4]
add ecx, dword [r14 + 0x5c]
sub eax, ecx
jmp 0x1400e0d3c
mov eax, dword [r15]
mov ecx, dword [r12 + 4]
add ecx, dword [r12 + 0x5c]
sub eax, ecx
jmp 0x1400e0d3c