Function at 0x14008e230
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rdi, r9
mov rbp, r8
mov r15, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x120]
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], r15
cmp byte [rdx], 0
je 0x14008e2e1
movzx r8d, byte [rdx + 1]
mov byte [rdx], 0
test rdi, rdi
je 0x14008e2f2
test r15, r15
je 0x14008e30b
movzx r9d, byte [rbp]
cmp r8b, 0x1f
jbe 0x14008e314
mov rsi, rcx
lea ecx, [r9 + 0x5f]
lea eax, [r8 - 0x20]
cmp cl, 0x5e
jae 0x14008e32b
movzx eax, al
imul rax, rax, 0x5e
movzx r10d, cl
lea r9, [rax + r10]
add r9, 0xfffffffffffffa7e
add rax, r10
cmp r9, 0x92e
jae 0x14008e3e2
lea rcx, [0x1401e743a]
movzx eax, word [rcx + rax*2 - 0xb04]
jmp 0x14008e444
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x28], rcx
xor esi, esi
jmp 0x14008e459
cmp byte [rsp + 0x130], 0
je 0x14008e322
mov word [rcx + 8], 0x102
mov byte [rcx + 0xa], 0
jmp 0x14008ecf8
mov byte [rcx + 8], 1
jmp 0x14008ecf8
lea eax, [r9 + 0x7f]
cmp al, 0x7e
jae 0x14008e341
add r9b, 0xb3
jmp 0x14008e351
mov byte [rcx + 8], 0
jmp 0x14008ecf8
lea ecx, [r9 + 0x7f]
cmp cl, 0x20
jae 0x14008e3f6
lea ecx, [r9 - 0x4d]
jmp 0x14008ec71
lea eax, [r9 - 0x61]
cmp al, 0x1a
jae 0x14008e40c
add r9b, 0xb9
mov eax, r9d
mov r14, rbx
mov rsi, rcx
movzx ecx, r8w
imul ecx, ecx, 0xb2
movzx eax, al
add eax, ecx
mov r8d, 0x437
xor ecx, ecx
lea rbx, [0x1401e9760]
mov r9d, 0x437
nop
shr r8, 1
add r8, rcx
movzx r10d, word [rbx + r8*2]
cmp ax, r10w
je 0x14008e3ce
lea r11, [r8 + 1]
cmp ax, r10w
cmova rcx, r11
cmovb r9, r8
mov r8, r9
sub r8, rcx
ja 0x14008e380
lea r8, [rcx - 1]
cmp r8, 0x437
jae 0x14008eece
lea r8, [0x1401e8ef2]
add ax, word [r8 + rcx*2 - 2]
sub ax, word [rbx + rcx*2 - 2]
jmp 0x14008e3da
lea rax, [0x1401e8ef2]
movzx eax, word [rax + r8*2]
mov rcx, rsi
mov rbx, r14
jmp 0x14008e447
cmp eax, 0xa5
jae 0x14008e421
lea rcx, [0x1401e70f4]
movzx eax, word [rcx + rax*2]
jmp 0x14008e444
lea ecx, [r9 - 0x61]
cmp cl, 0x1a
jae 0x14008ec68
lea ecx, [r9 - 0x47]
jmp 0x14008ec71
lea eax, [r9 - 0x41]
cmp al, 0x1a
jb 0x14008e354
mov byte [rcx + 8], 2
jmp 0x14008eced
lea r9, [rax - 0xf0e]
cmp r9, 0x1318
jae 0x14008ed72
lea rcx, str.OsOGP
movzx eax, word [rcx + rax*2 - 0x1e1c]
mov rcx, rsi
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x28], rcx
mov word [rbx], ax
mov esi, 1
lea rax, [rbx + 0x18]
mov qword [rsp + 0x50], rax
lea rax, [rbp + 8]
mov qword [rsp + 0x48], rax
mov rax, rdi
neg rax
mov qword [rsp + 0x80], rax
lea rax, [rbp + 2]
mov qword [rsp + 0x78], rax
lea rax, [r15 - 2]
mov qword [rsp + 0x70], rax
lea rax, [rbx + 2]
mov qword [rsp + 0x68], rax
mov rax, rsi
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x88], rbp
mov rcx, r15
sub rcx, rsi
jb 0x14008eebc
add rbp, rax
mov qword [rsp + 0x30], rax
sub rdi, rax
mov qword [rsp + 0x38], rsi
lea rsi, [rbx + rsi*2]
cmp rcx, rdi
mov qword [rsp + 0x58], rdi
mov rax, rdi
mov qword [rsp + 0x60], rcx
cmovb rax, rcx
mov edx, esi
sub edx, ebp
sub edx, ebp
test dl, 6
jne 0x14008e5fc
mov edx, ebp
neg edx
and edx, 7
lea rcx, [rdx + 0x10]
mov r15d, 0
cmp rcx, rax
ja 0x14008e750
test rdx, rdx
je 0x14008e604
movzx r14d, byte [rbp]
test r14b, r14b
js 0x14008e781
movzx ecx, r14b
mov word [rsi], cx
mov r15d, 1
cmp edx, 1
je 0x14008e607
movzx r14d, byte [rbp + 1]
test r14b, r14b
js 0x14008e784
movzx ecx, r14b
mov word [rsi + 2], cx
mov r15d, 2
cmp edx, 2
je 0x14008e607
movzx r14d, byte [rbp + 2]
test r14b, r14b
js 0x14008e784
movzx ecx, r14b
mov word [rsi + 4], cx
mov r15d, 3
cmp edx, 3
je 0x14008e607
movzx r14d, byte [rbp + 3]
test r14b, r14b
js 0x14008e784
movzx ecx, r14b
mov word [rsi + 6], cx
mov r15d, 4
cmp edx, 4
je 0x14008e607
movzx r14d, byte [rbp + 4]
test r14b, r14b
js 0x14008e784
movzx ecx, r14b
mov word [rsi + 8], cx
mov r15d, 5
cmp edx, 5
je 0x14008e607
movzx r14d, byte [rbp + 5]
test r14b, r14b
js 0x14008e784
movzx ecx, r14b
mov word [rsi + 0xa], cx
mov r15d, 6
cmp edx, 6
je 0x14008e607
movzx r14d, byte [rbp + 6]
test r14b, r14b
js 0x14008e784
movzx ecx, r14b
mov word [rsi + 0xc], cx
mov r15d, 7
jmp 0x14008e607
xor r15d, r15d
jmp 0x14008e750
xor r15d, r15d
lea rcx, [rax - 0x10]
mov qword [rsp + 0x98], rcx
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
lea r11, [rdx + rcx*2]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x30]
add rdx, rcx
nop
mov rbx, qword [rdx + r15 - 8]
mov r9, qword [rdx + r15]
mov rcx, r9
or rcx, rbx
movabs r8, 0x8080808080808080
test rcx, r8
jne 0x14008e750
mov rcx, rbx
shl rcx, 0x18
movabs r13, 0xff000000000000
and rcx, r13
mov r12, rbx
shl r12, 0x10
movabs r14, 0xff00000000
and r12, r14
mov edi, ebx
shl edi, 8
and edi, 0xff0000
or rdi, rcx
movzx ecx, bl
or rcx, r12
or rcx, rdi
mov rdi, rbx
shr rdi, 8
and rdi, r13
mov r12, rbx
shr r12, 0x10
and r12, r14
or r12, rdi
mov r10, rbx
shr r10, 0x18
and r10d, 0xff0000
shr rbx, 0x20
movzx edi, bl
or rdi, r10
or rdi, r12
mov r10, r9
shl r10, 0x18
and r10, r13
mov r12, r9
shl r12, 0x10
and r12, r14
mov r8d, r9d
shl r8d, 8
and r8d, 0xff0000
or r8, r10
movzx ebx, r9b
or rbx, r12
or rbx, r8
mov r8, r9
shr r8, 8
and r8, r13
mov r10, r9
shr r10, 0x10
and r10, r14
or r10, r8
mov r8, r9
shr r8, 0x18
and r8d, 0xff0000
shr r9, 0x20
movzx r9d, r9b
or r9, r8
or r9, r10
mov qword [r11 + r15*2 - 0x18], rcx
mov qword [r11 + r15*2 - 0x10], rdi
mov qword [r11 + r15*2 - 8], rbx
mov qword [r11 + r15*2], r9
add r15, 0x10
cmp r15, qword [rsp + 0x98]
jbe 0x14008e630
nop word [rax + rax]
cmp r15, rax
jae 0x14008eb9f
nop dword [rax]
movzx r14d, byte [rbp + r15]
test r14b, r14b
js 0x14008e784
movzx ecx, r14b
mov word [rsi + r15*2], cx
inc r15
cmp rax, r15
jne 0x14008e760
jmp 0x14008eb9f
xor r15d, r15d
mov rsi, qword [rsp + 0x38]
add rsi, r15
mov rax, qword [rsp + 0x30]
lea r13, [rax + r15]
inc r13
lea r9d, [r14 + 0x7f]
cmp r9b, 0x7d
mov rdi, qword [rsp + 0x90]
mov r15, qword [rsp + 0x128]
mov rbp, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x120]
lea r11, [0x1401e8ac4]
ja 0x14008ec31
cmp r13, rdi
jae 0x14008ec23
movzx edx, byte [rbp + r13]
lea r12, [r13 + 1]
cmp r9b, 0x1f
jbe 0x14008e830
lea ecx, [rdx + 0x5f]
add r14b, 0x5f
cmp cl, 0x5e
jae 0x14008e845
movzx eax, r14b
imul rax, rax, 0x5e
movzx edx, cl
lea r8, [rax + rdx]
add r8, 0xfffffffffffffa7e
add rax, rdx
cmp r8, 0x92e
jae 0x14008e869
lea rcx, [0x1401e743a]
movzx eax, word [rcx + rax*2 - 0xb04]
jmp 0x14008e9d9
lea eax, [rdx + 0x7f]
cmp al, 0x7e
jae 0x14008e854
add dl, 0xb3
mov eax, edx
lea r14, [0x1401e9760]
jmp 0x14008e8a2
lea eax, [rdx + 0x7f]
cmp al, 0x20
jae 0x14008e884
lea eax, [rdx - 0x4d]
jmp 0x14008e950
lea eax, [rdx - 0x61]
cmp al, 0x1a
lea r14, [0x1401e9760]
jae 0x14008e897
add dl, 0xb9
mov eax, edx
jmp 0x14008e8a2
cmp eax, 0xa5
jae 0x14008e91d
lea rcx, [0x1401e70f4]
movzx eax, word [rcx + rax*2]
jmp 0x14008e9d9
lea eax, [rdx - 0x61]
cmp al, 0x1a
jae 0x14008e945
lea eax, [rdx - 0x47]
jmp 0x14008e950
lea eax, [rdx - 0x41]
cmp al, 0x1a
jae 0x14008ed5a
movzx ecx, r9b
imul ecx, ecx, 0xb2
movzx eax, al
add eax, ecx
mov edx, 0x437
xor ecx, ecx
mov r8d, 0x437
nop
shr rdx, 1
add rdx, rcx
movzx r9d, word [r14 + rdx*2]
cmp ax, r9w
je 0x14008e911
lea r10, [rdx + 1]
cmp ax, r9w
cmova rcx, r10
cmovb r8, rdx
mov rdx, r8
sub rdx, rcx
ja 0x14008e8c0
lea rdx, [rcx - 1]
cmp rdx, 0x437
jae 0x14008eece
lea rdx, [0x1401e8ef2]
add ax, word [rdx + rcx*2 - 2]
sub ax, word [r14 + rcx*2 - 2]
jmp 0x14008e9d9
lea rax, [0x1401e8ef2]
jmp 0x14008e9d5
lea r8, [rax - 0xf0e]
cmp r8, 0x1318
jae 0x14008ea8e
lea rcx, str.OsOGP
movzx eax, word [rcx + rax*2 - 0x1e1c]
jmp 0x14008e9d9
lea eax, [rdx - 0x41]
cmp al, 0x1a
jae 0x14008ed5a
movzx ecx, r14b
imul rcx, rcx, 0x54
movzx eax, al
add rax, rcx
cmp rax, 0xc36
jae 0x14008ed5a
mov edx, 0x217
xor ecx, ecx
mov r8d, 0x217
nop word [rax + rax]
shr rdx, 1
add rdx, rcx
movzx r9d, word [r11 + rdx*2]
cmp r9w, ax
je 0x14008e9ce
lea r10, [rdx + 1]
cmp r9w, ax
cmova r8, rdx
cmovb rcx, r10
mov rdx, r8
sub rdx, rcx
ja 0x14008e980
lea rdx, [rcx - 1]
cmp rdx, 0x217
jae 0x14008eee6
lea rdx, [0x1401e8696]
add ax, word [rdx + rcx*2 - 2]
sub ax, word [r11 + rcx*2 - 2]
jmp 0x14008e9d9
lea rax, [0x1401e8696]
movzx eax, word [rax + rdx*2]
mov word [rbx + rsi*2], ax
lea rcx, [rsi + 1]
cmp r12, rdi
jae 0x14008ec45
cmp rcx, r15
jae 0x14008ec50
movzx r14d, byte [rbp + r13 + 1]
lea rax, [r13 + 2]
test r14b, r14b
js 0x14008ea75
mov rcx, qword [rsp + 0x80]
lea rdx, [rcx + rax]
mov rcx, qword [rsp + 0x78]
lea r8, [rcx + r13]
mov r9, qword [rsp + 0x70]
sub r9, rsi
mov rcx, qword [rsp + 0x68]
lea r11, [rcx + rsi*2]
xor ecx, ecx
nop word [rax + rax]
movzx r10d, r14b
mov word [r11 + rcx*2], r10w
cmp r10b, 0x3b
ja 0x14008eb71
mov r10, rdx
add r10, rcx
je 0x14008ebe3
cmp r9, rcx
je 0x14008ec03
movzx r14d, byte [r8 + rcx]
inc rcx
test r14b, r14b
jns 0x14008ea30
add rax, rcx
add rcx, rsi
inc rcx
lea r11, [0x1401e8ac4]
lea r9d, [r14 + 0x7f]
mov rsi, rcx
mov r13, rax
cmp r9b, 0x7d
jbe 0x14008e7cd
jmp 0x14008ec31
cmp r9b, 0x27
jne 0x14008eab2
cmp cl, 0xf
jae 0x14008eab2
lea rax, [0x1401e741c]
movzx eax, word [rax + rdx*2]
test ax, ax
jne 0x14008e9d9
jmp 0x14008ee5f
cmp r9b, 0x28
jne 0x14008eac9
cmp cl, 0x10
jae 0x14008eac9
lea rax, [0x1401e73fc]
jmp 0x14008e9d5
cmp r9b, 0x25
jne 0x14008eae0
cmp cl, 0x44
jae 0x14008eae0
lea rax, [0x1401e7374]
jmp 0x14008e9d5
add rax, 0xffffffffffffff44
cmp rax, 0x39f
jae 0x14008ee5f
mov edx, 0x4d
xor ecx, ecx
mov r8d, 0x4d
shr rdx, 1
add rdx, rcx
lea r9, [0x1401e72d8]
movzx r9d, word [r9 + rdx*2]
cmp r9w, ax
je 0x14008eb57
lea r10, [rdx + 1]
cmp r9w, ax
cmova r8, rdx
cmovb rcx, r10
mov rdx, r8
sub rdx, rcx
ja 0x14008eaff
lea rdx, [rcx - 1]
cmp rdx, 0x4d
jae 0x14008eefe
lea rdx, [0x1401e723e]
add ax, word [rdx + rcx*2 - 2]
lea rdx, [0x1401e72d8]
sub ax, word [rdx + rcx*2 - 2]
jmp 0x14008eb62
lea rax, [0x1401e723e]
movzx eax, word [rax + rdx*2]
cmp ax, 0x7f
ja 0x14008e9d9
jmp 0x14008ee5f
lea rax, [rcx + r13]
add rax, 2
add rsi, rcx
add rsi, 2
cmp rax, rdi
jbe 0x14008e4a7
add rcx, r13
add rcx, 2
lea r8, [0x1401fe070]
mov rdx, rdi
call sym.core::slice::index::slice_start_index_len_fail::h8d3d56967d6340e8
xor ecx, ecx
mov rdx, qword [rsp + 0x58]
cmp qword [rsp + 0x60], rdx
setb cl
mov r8, qword [rsp + 0x30]
add r8, rax
mov rdx, qword [rsp + 0x38]
add rdx, rax
lea rax, [rsp + 0xa0]
and eax, 0xffff00
or rax, rcx
mov rcx, qword [rsp + 0x28]
mov qword [rcx], r8
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rdx
jmp 0x14008ed07
mov rdx, qword [rsp + 0x28]
mov byte [rdx + 8], 0
mov qword [rdx], rdi
lea rax, [rsi + rcx]
add rax, 2
mov rcx, rdx
mov qword [rdx + 0x10], rax
jmp 0x14008ed07
mov rdx, qword [rsp + 0x28]
mov byte [rdx + 8], 1
lea rax, [rcx + r13]
add rax, 2
mov rcx, rdx
mov qword [rdx], rax
mov qword [rdx + 0x10], r15
jmp 0x14008ed07
cmp byte [rsp + 0x130], 0
je 0x14008ed39
mov rax, qword [rsp + 0x28]
mov word [rax + 8], 0x102
mov byte [rax + 0xa], 0
jmp 0x14008ed4e
mov rax, qword [rsp + 0x28]
mov byte [rax + 8], 0
jmp 0x14008ec59
mov rax, qword [rsp + 0x28]
mov byte [rax + 8], 1
mov qword [rax], r12
mov qword [rax + 0x10], rcx
mov rcx, rax
jmp 0x14008ed07
lea ecx, [r9 - 0x41]
cmp cl, 0x1a
jae 0x14008ece6
movzx eax, al
imul r8, rax, 0x54
movzx eax, cl
add rax, r8
cmp rax, 0xc36
jae 0x14008ece6
mov r14, rbx
mov r8d, 0x217
xor ecx, ecx
lea rbx, [0x1401e8ac4]
mov r9d, 0x217
nop
shr r8, 1
add r8, rcx
movzx r10d, word [rbx + r8*2]
cmp r10w, ax
je 0x14008ed2d
lea r11, [r8 + 1]
cmp r10w, ax
cmova r9, r8
cmovb rcx, r11
mov r8, r9
sub r8, rcx
ja 0x14008eca0
lea r8, [rcx - 1]
cmp r8, 0x217
jae 0x14008eee6
lea r8, [0x1401e8696]
jmp 0x14008e3c1
mov rcx, rsi
mov byte [rsi + 8], 2
test r9b, r9b
js 0x14008ed1e
mov word [rcx + 9], 1
mov qword [rcx], 0
mov qword [rcx + 0x10], 0
mov rax, rcx
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov word [rcx + 9], 2
mov qword [rcx], 1
jmp 0x14008ecff
lea rax, [0x1401e8696]
jmp 0x14008e3d5
mov rax, qword [rsp + 0x40]
mov byte [rax], 1
mov byte [rax + 1], r9b
mov rax, qword [rsp + 0x28]
mov byte [rax + 8], 0
mov qword [rax], r13
mov rcx, rax
mov qword [rax + 0x10], rsi
jmp 0x14008ed07
mov rax, qword [rsp + 0x28]
mov byte [rax + 8], 2
test dl, dl
js 0x14008edbd
mov word [rax + 9], 1
mov qword [rax], r13
jmp 0x14008edc6
cmp r8b, 0x27
jne 0x14008eda1
cmp cl, 0xf
jae 0x14008eda1
lea rax, [0x1401e741c]
movzx eax, word [rax + r10*2]
test ax, ax
mov rcx, rsi
jne 0x14008e447
mov word [rcx + 8], 0x202
mov byte [rcx + 0xa], 0
jmp 0x14008ed24
cmp r8b, 0x28
jne 0x14008edd2
cmp cl, 0x10
jae 0x14008edd2
lea rax, [0x1401e73fc]
movzx eax, word [rax + r10*2]
jmp 0x14008e444
mov word [rax + 9], 2
mov qword [rax], r12
mov qword [rax + 0x10], rsi
mov rcx, rax
jmp 0x14008ed07
cmp r8b, 0x25
jne 0x14008edee
cmp cl, 0x44
jae 0x14008edee
lea rax, [0x1401e7374]
movzx eax, word [rax + r10*2]
jmp 0x14008e444
add rax, 0xffffffffffffff44
cmp rax, 0x39f
jae 0x14008ee7a
mov r14, rbx
mov r8d, 0x4d
xor ecx, ecx
lea rbx, [0x1401e72d8]
mov r9d, 0x4d
shr r8, 1
add r8, rcx
movzx r10d, word [rbx + r8*2]
cmp r10w, ax
je 0x14008ee9b
lea r11, [r8 + 1]
cmp r10w, ax
cmova r9, r8
cmovb rcx, r11
mov r8, r9
sub r8, rcx
ja 0x14008ee14
lea r8, [rcx - 1]
cmp r8, 0x4d
jae 0x14008eefe
lea r8, [0x1401e723e]
add ax, word [r8 + rcx*2 - 2]
sub ax, word [rbx + rcx*2 - 2]
jmp 0x14008eea7
mov rcx, qword [rsp + 0x28]
mov word [rcx + 8], 0x202
mov byte [rcx + 0xa], 0
mov qword [rcx], r12
mov qword [rcx + 0x10], rsi
jmp 0x14008ed07
mov rcx, rsi
mov word [rsi + 8], 0x202
mov byte [rsi + 0xa], 0
mov qword [rsi], 1
mov qword [rsi + 0x10], 0
jmp 0x14008ed07
lea rax, [0x1401e723e]
movzx eax, word [rax + r8*2]
cmp ax, 0x7f
mov rcx, rsi
mov rbx, r14
ja 0x14008e447
jmp 0x14008ed95
lea r8, [0x1401fe058]
mov rcx, rsi
mov rdx, r15
call sym.core::slice::index::slice_start_index_len_fail::h8d3d56967d6340e8
lea r8, str._home_delta_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x437
mov rcx, 0xffffffffffffffff
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, str._home_delta_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x217
mov rcx, 0xffffffffffffffff
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
lea r8, str._home_delta_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x4d
mov rcx, 0xffffffffffffffff
call sym.core::panicking::panic_bounds_check::hf065bc95f1c7a8f7
int3