Function at 0x14008fb00
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 r13, r8
mov rbx, rdx
mov rsi, rcx
mov rdx, qword [rsp + 0x128]
mov rbp, qword [rsp + 0x120]
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0xa8], rdx
cmp byte [rbx], 0
je 0x14008fbb0
movzx r10d, byte [rbx + 1]
mov byte [rbx], 0
test r9, r9
je 0x14008fbc2
test rdx, rdx
je 0x14008fbe2
movzx eax, byte [r13]
cmp r10b, 0x1f
jbe 0x14008fbf2
lea ecx, [rax + 0x5f]
lea r8d, [r10 - 0x20]
cmp cl, 0x5e
jae 0x14008fc0e
movzx eax, r8b
imul rdi, rax, 0x5e
movzx eax, cl
lea r8, [rdi + rax]
add r8, 0xfffffffffffffa7e
add rdi, rax
cmp r8, 0x92e
jae 0x1400904aa
lea rax, [0x1402cc9a0]
movzx edi, word [rax + rdi*2 - 0xb04]
jmp 0x14008fcba
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x28], rsi
xor r8d, r8d
jmp 0x14008fcce
cmp byte [rsp + 0x130], 0
je 0x14008fbfe
mov word [rsi + 8], 0x102
mov byte [rsi + 0xa], 0
mov qword [rsi], 0
jmp 0x1400905ce
mov byte [rsi + 8], 1
mov qword [rsi], 0
jmp 0x1400905ce
lea ecx, [rax + 0x7f]
cmp cl, 0x7e
jae 0x14008fc22
add al, 0xb3
jmp 0x14008fc30
mov byte [rsi + 8], 0
mov qword [rsi], 0
jmp 0x1400905ce
lea ecx, [rax + 0x7f]
cmp cl, 0x20
jae 0x1400904c5
lea ecx, [rax - 0x4d]
jmp 0x140090534
lea ecx, [rax - 0x61]
cmp cl, 0x1a
jae 0x1400904d2
add al, 0xb9
mov ecx, eax
movzx eax, r10w
imul eax, eax, 0xb2
movzx edi, cl
add edi, eax
mov r8d, 0x437
xor eax, eax
lea rcx, [0x1402cb068]
mov r14d, 0x437
nop word cs:[rax + rax]
shr r8, 1
add r8, rax
movzx r10d, word [rcx + r8*2]
cmp di, r10w
je 0x14008fcae
lea r11, [r8 + 1]
cmp di, r10w
cmova rax, r11
cmovb r14, r8
mov r8, r14
sub r8, rax
ja 0x14008fc60
lea r8, [rax - 1]
cmp r8, 0x437
jae 0x140090788
lea r8, [0x1402cb8d6]
add di, word [r8 + rax*2 - 2]
sub di, word [rcx + rax*2 - 2]
jmp 0x14008fcba
lea rax, [0x1402cb8d6]
movzx edi, word [rax + r8*2]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x28], rsi
mov word [rbp], di
mov r8d, 1
lea rax, [rbp + 0x18]
mov qword [rsp + 0x50], rax
lea rax, [r13 + 8]
mov qword [rsp + 0x48], rax
mov eax, 1
sub rax, rdx
mov qword [rsp + 0x90], rax
lea rax, [rbp + 2]
mov qword [rsp + 0x88], rax
lea rax, [r9 - 2]
mov qword [rsp + 0x80], rax
lea rax, [r13 + 1]
mov qword [rsp + 0x78], rax
mov rcx, r8
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], r13
lea r11, [r8 + r13]
mov r15, r9
mov qword [rsp + 0x30], r8
sub r15, r8
sub rdx, rcx
mov qword [rsp + 0x38], rcx
lea rbx, [rcx*2]
add rbx, rbp
cmp rdx, r15
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x68], rdx
cmovb r15, rdx
mov ecx, ebx
sub ecx, r11d
sub ecx, r11d
test cl, 6
jne 0x14008fe6b
mov r10d, r11d
neg r10d
and r10d, 7
lea rax, [r10 + 0x10]
mov edi, 0
cmp rax, r15
ja 0x14008ffc0
test r10, r10
je 0x14008fe72
movzx eax, byte [r11]
test al, al
js 0x14008fffd
movzx eax, al
mov word [rbx], ax
mov edi, 1
cmp r10d, 1
mov r8, qword [rsp + 0x38]
je 0x14008fe79
movzx eax, byte [r11 + 1]
test al, al
js 0x140090004
movzx eax, al
mov word [rbx + 2], ax
mov edi, 2
cmp r10d, 2
je 0x14008fe79
movzx eax, byte [r11 + 2]
test al, al
js 0x140090004
movzx eax, al
mov word [rbx + 4], ax
mov edi, 3
cmp r10d, 3
je 0x14008fe79
movzx eax, byte [r11 + 3]
test al, al
js 0x140090004
movzx eax, al
mov word [rbx + 6], ax
mov edi, 4
cmp r10d, 4
je 0x14008fe79
movzx eax, byte [r11 + 4]
test al, al
js 0x140090004
movzx eax, al
mov word [rbx + 8], ax
mov edi, 5
cmp r10d, 5
je 0x14008fe79
movzx eax, byte [r11 + 5]
test al, al
js 0x140090004
movzx eax, al
mov word [rbx + 0xa], ax
mov edi, 6
cmp r10d, 6
je 0x14008fe79
movzx eax, byte [r11 + 6]
test al, al
js 0x140090004
movzx eax, al
mov word [rbx + 0xc], ax
mov edi, 7
jmp 0x14008fe79
xor edi, edi
jmp 0x14008ffc0
xor edi, edi
mov r8, qword [rsp + 0x38]
lea rax, [r15 - 0x10]
mov qword [rsp + 0x98], rax
mov rcx, qword [rsp + 0x50]
lea r13, [rcx + r8*2]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
lea rbp, [rcx + rax]
nop dword [rax]
mov rsi, qword [rbp + rdi - 8]
mov rdx, qword [rbp + rdi]
mov r8, rdx
or r8, rsi
movabs rax, 0x8080808080808080
test r8, rax
jne 0x14008ffc0
mov r8, rsi
shl r8, 0x18
movabs r14, 0xff000000000000
and r8, r14
mov r12, rsi
shl r12, 0x10
movabs rax, 0xff00000000
and r12, rax
mov ecx, esi
shl ecx, 8
and ecx, 0xff0000
or rcx, r8
movzx r8d, sil
or r8, r12
or r8, rcx
mov rcx, rsi
shr rcx, 8
and rcx, r14
mov r12, rsi
shr r12, 0x10
and r12, rax
or r12, rcx
mov r9, rsi
shr r9, 0x18
and r9d, 0xff0000
shr rsi, 0x20
movzx ecx, sil
or rcx, r9
or rcx, r12
mov r9, rdx
shl r9, 0x18
and r9, r14
mov r12, rdx
shl r12, 0x10
and r12, rax
mov r10d, edx
shl r10d, 8
and r10d, 0xff0000
or r10, r9
movzx esi, dl
or rsi, r12
or rsi, r10
mov r9, rdx
shr r9, 8
and r9, r14
mov r10, rdx
shr r10, 0x10
and r10, rax
or r10, r9
mov r9, rdx
shr r9, 0x18
and r9d, 0xff0000
shr rdx, 0x20
movzx edx, dl
or rdx, r9
or rdx, r10
mov qword [r13 + rdi*2 - 0x18], r8
mov qword [r13 + rdi*2 - 0x10], rcx
mov qword [r13 + rdi*2 - 8], rsi
mov qword [r13 + rdi*2], rdx
add rdi, 0x10
cmp rdi, qword [rsp + 0x98]
jbe 0x14008fea0
nop dword [rax]
cmp rdi, r15
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
jae 0x140090436
nop word cs:[rax + rax]
movzx eax, byte [r11 + rdi]
test al, al
js 0x140090009
movzx eax, al
mov word [rbx + rdi*2], ax
inc rdi
cmp r15, rdi
jne 0x14008ffe0
jmp 0x140090436
xor edi, edi
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
add r8, rdi
lea rcx, [rdx + rdi]
inc rcx
lea r10d, [rax + 0x7f]
cmp r10b, 0x7d
mov rdx, qword [rsp + 0x128]
mov r9, qword [rsp + 0x60]
mov r13, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x120]
lea rbx, [0x1402cc144]
ja 0x140090694
mov r12, rcx
mov r15, r8
cmp rcx, r9
jae 0x1400904e3
movzx r11d, byte [r13 + r12]
lea r14, [r12 + 1]
cmp r10b, 0x1f
jbe 0x1400900b0
lea ecx, [r11 + 0x5f]
add al, 0x5f
cmp cl, 0x5e
jae 0x1400900c5
movzx eax, al
imul rsi, rax, 0x5e
movzx eax, cl
lea r8, [rsi + rax]
add r8, 0xfffffffffffffa7e
add rsi, rax
cmp r8, 0x92e
jae 0x1400900e8
lea rax, [0x1402cc9a0]
movzx esi, word [rax + rsi*2 - 0xb04]
jmp 0x140090268
lea eax, [r11 + 0x7f]
cmp al, 0x7e
lea rdi, [0x1402cb068]
jae 0x1400900d7
add r11b, 0xb3
jmp 0x1400900e3
lea ecx, [r11 + 0x7f]
cmp cl, 0x20
jae 0x140090104
lea ecx, [r11 - 0x4d]
jmp 0x1400901e1
lea eax, [r11 - 0x61]
cmp al, 0x1a
jae 0x14009011a
add r11b, 0xb9
mov eax, r11d
jmp 0x140090126
cmp esi, 0xa5
jae 0x1400901ac
lea rax, [0x1402d022c]
movzx esi, word [rax + rsi*2]
jmp 0x140090268
lea ecx, [r11 - 0x61]
cmp cl, 0x1a
jae 0x1400901d4
lea ecx, [r11 - 0x47]
jmp 0x1400901e1
lea eax, [r11 - 0x41]
cmp al, 0x1a
jae 0x140090651
movzx ecx, r10b
imul ecx, ecx, 0xb2
movzx esi, al
add esi, ecx
mov ecx, 0x437
xor eax, eax
mov r8d, 0x437
nop word cs:[rax + rax]
shr rcx, 1
add rcx, rax
movzx r11d, word [rdi + rcx*2]
cmp si, r11w
je 0x1400901a0
lea r10, [rcx + 1]
cmp si, r11w
cmova rax, r10
cmovb r8, rcx
mov rcx, r8
sub rcx, rax
ja 0x140090150
lea rcx, [rax - 1]
cmp rcx, 0x437
jae 0x140090788
lea rcx, [0x1402cb8d6]
add si, word [rcx + rax*2 - 2]
sub si, word [rdi + rax*2 - 2]
jmp 0x140090268
lea rax, [0x1402cb8d6]
jmp 0x140090264
lea r8, [rsi - 0xf0e]
cmp r8, 0x1318
jae 0x140090315
lea rax, str.OsOGP
movzx esi, word [rax + rsi*2 - 0x1e1c]
jmp 0x140090268
lea ecx, [r11 - 0x41]
cmp cl, 0x1a
jae 0x140090651
movzx eax, al
imul rax, rax, 0x54
movzx esi, cl
add rsi, rax
cmp rsi, 0xc36
jae 0x140090651
mov ecx, 0x217
xor eax, eax
mov r8d, 0x217
nop dword [rax + rax]
shr rcx, 1
add rcx, rax
movzx r11d, word [rbx + rcx*2]
cmp r11w, si
je 0x14009025d
lea r10, [rcx + 1]
cmp r11w, si
cmova r8, rcx
cmovb rax, r10
mov rcx, r8
sub rcx, rax
ja 0x140090210
lea rcx, [rax - 1]
cmp rcx, 0x217
jae 0x1400907a0
lea rcx, [0x1402cc572]
add si, word [rcx + rax*2 - 2]
sub si, word [rbx + rax*2 - 2]
jmp 0x140090268
lea rax, [0x1402cc572]
movzx esi, word [rax + rcx*2]
mov word [rbp + r15*2], si
lea rax, [r15 + 1]
cmp r14, r9
jae 0x1400905ed
cmp rax, rdx
jae 0x1400905f8
mov rax, qword [rsp + 0x90]
lea rcx, [rax + r15]
mov rax, qword [rsp + 0x88]
lea r8, [rax + r15*2]
mov rsi, qword [rsp + 0x80]
sub rsi, r12
mov rax, qword [rsp + 0x78]
lea r10, [rax + r12]
xor edi, edi
nop word cs:[rax + rax]
movzx eax, byte [r10 + rdi]
test al, al
js 0x1400902f3
movzx r11d, al
mov word [r8 + rdi*2], r11w
cmp al, 0x3b
ja 0x140090402
cmp rsi, rdi
je 0x140090471
inc rdi
mov rax, rcx
add rax, rdi
jne 0x1400902c0
jmp 0x14009048e
lea r10d, [rax + 0x7f]
lea r8, [r15 + rdi]
inc r8
lea rcx, [r12 + rdi]
add rcx, 2
cmp r10b, 0x7d
jbe 0x140090042
jmp 0x140090685
cmp r10b, 0x27
jne 0x140090339
cmp cl, 0xf
jae 0x140090339
lea rcx, [0x1402d0376]
movzx esi, word [rcx + rax*2]
test si, si
jne 0x140090268
jmp 0x14009074f
cmp r10b, 0x28
jne 0x140090354
cmp cl, 0x10
jae 0x140090354
lea rcx, [0x1402d0394]
movzx esi, word [rcx + rax*2]
jmp 0x140090268
cmp r10b, 0x25
jne 0x14009036f
cmp cl, 0x44
jae 0x14009036f
lea rcx, [0x1402d03b4]
movzx esi, word [rcx + rax*2]
jmp 0x140090268
add rsi, 0xffffffffffffff44
cmp rsi, 0x39f
jae 0x14009074f
mov ecx, 0x4d
xor eax, eax
mov r8d, 0x4d
shr rcx, 1
add rcx, rax
lea r10, [0x1402d043c]
movzx r11d, word [r10 + rcx*2]
cmp r11w, si
je 0x1400903e8
lea r10, [rcx + 1]
cmp r11w, si
cmova r8, rcx
cmovb rax, r10
mov rcx, r8
sub rcx, rax
ja 0x140090390
lea rcx, [rax - 1]
cmp rcx, 0x4d
jae 0x1400907b8
lea rcx, [0x1402d04d8]
add si, word [rcx + rax*2 - 2]
lea rcx, [0x1402d043c]
sub si, word [rcx + rax*2 - 2]
jmp 0x1400903f3
lea rax, [0x1402d04d8]
movzx esi, word [rax + rcx*2]
cmp si, 0x7f
ja 0x140090268
jmp 0x14009074f
lea rax, [r15 + rdi]
inc rax
lea rcx, [r15 + rdi]
add rcx, 2
lea r8, [r12 + rdi]
add r8, 2
cmp rax, rdx
jb 0x14008fd1e
lea rcx, [r15 + rdi]
add rcx, 2
lea r8, [0x1402dd7f8]
call fcn.1401b2670
xor eax, eax
mov rcx, qword [rsp + 0x68]
cmp rcx, qword [rsp + 0x70]
setb al
add rdx, r15
add r8, r15
lea rcx, [rsp + 0xa0]
and ecx, 0xffff00
or rcx, rax
mov rsi, qword [rsp + 0x28]
mov qword [rsi], rdx
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], r8
jmp 0x1400905d6
mov rsi, qword [rsp + 0x28]
mov byte [rsi + 8], 0
mov qword [rsi], r9
lea rax, [r15 + rdi]
add rax, 2
mov qword [rsi + 0x10], rax
jmp 0x1400905d6
mov rsi, qword [rsp + 0x28]
mov byte [rsi + 8], 1
lea rax, [r12 + rdi]
inc rax
mov qword [rsi], rax
mov qword [rsi + 0x10], rdx
jmp 0x1400905d6
cmp edi, 0xa5
jae 0x140090505
lea rax, [0x1402d022c]
lea rax, [rax + rdi*2]
movzx edi, word [rax]
jmp 0x14008fcba
lea ecx, [rax - 0x61]
cmp cl, 0x1a
jae 0x14009052c
lea ecx, [rax - 0x47]
jmp 0x140090534
lea ecx, [rax - 0x41]
cmp cl, 0x1a
jb 0x14008fc32
jmp 0x1400905aa
cmp byte [rsp + 0x130], 0
je 0x140090616
mov rsi, qword [rsp + 0x28]
mov word [rsi + 8], 0x102
mov byte [rsi + 0xa], 0
jmp 0x140090665
lea r8, [rdi - 0xf0e]
cmp r8, 0x1318
jae 0x14009062d
lea rax, str.OsOGP
lea rax, [rax + r8*2]
movzx edi, word [rax]
jmp 0x14008fcba
lea ecx, [rax - 0x41]
cmp cl, 0x1a
jae 0x1400905aa
movzx r8d, r8b
imul r8, r8, 0x54
movzx edi, cl
add rdi, r8
cmp rdi, 0xc36
jae 0x1400905aa
mov r8d, 0x217
xor eax, eax
lea rcx, [0x1402cc144]
mov r14d, 0x217
shr r8, 1
add r8, rax
movzx r10d, word [rcx + r8*2]
cmp r10w, di
je 0x14009060a
lea r11, [r8 + 1]
cmp r10w, di
cmova r14, r8
cmovb rax, r11
mov r8, r14
sub r8, rax
ja 0x140090560
lea r8, [rax - 1]
cmp r8, 0x217
jae 0x1400907a0
lea r8, [0x1402cc572]
jmp 0x14008fca1
mov byte [rsi + 8], 2
test al, al
js 0x1400905c1
mov word [rsi + 9], 1
mov qword [rsi], 0
jmp 0x1400905ce
mov word [rsi + 9], 2
mov qword [rsi], 1
mov qword [rsi + 0x10], 0
mov rax, rsi
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rsp + 0x28]
mov byte [rsi + 8], 0
jmp 0x140090601
mov rsi, qword [rsp + 0x28]
mov byte [rsi + 8], 1
mov qword [rsi], r14
mov qword [rsi + 0x10], rax
jmp 0x1400905d6
lea rax, [0x1402cc572]
jmp 0x14008fcb5
mov rax, qword [rsp + 0x40]
mov byte [rax], 1
mov byte [rax + 1], r10b
mov rsi, qword [rsp + 0x28]
mov byte [rsi + 8], 0
jmp 0x140090665
cmp r10b, 0x27
jne 0x140090671
cmp cl, 0xf
jae 0x140090671
lea rcx, [0x1402d0376]
movzx edi, word [rcx + rax*2]
test di, di
jne 0x14008fcba
jmp 0x140090779
mov rsi, qword [rsp + 0x28]
mov byte [rsi + 8], 2
test r11b, r11b
js 0x1400906af
mov word [rsi + 9], 1
mov qword [rsi], r12
mov qword [rsi + 0x10], r15
jmp 0x1400905d6
cmp r10b, 0x28
jne 0x1400906c1
cmp cl, 0x10
jae 0x1400906c1
lea rcx, [0x1402d0394]
jmp 0x1400906d3
lea r8, [r15 + rdi]
inc r8
lea rcx, [r12 + rdi]
add rcx, 2
mov rsi, qword [rsp + 0x28]
mov word [rsi + 8], 0x102
mov byte [rsi + 0xa], 0
mov qword [rsi], rcx
mov qword [rsi + 0x10], r8
jmp 0x1400905d6
mov word [rsi + 9], 2
mov qword [rsi], r14
mov qword [rsi + 0x10], r15
jmp 0x1400905d6
cmp r10b, 0x25
jne 0x1400906df
cmp cl, 0x44
jae 0x1400906df
lea rcx, [0x1402d03b4]
lea rax, [rcx + rax*2]
movzx edi, word [rax]
jmp 0x14008fcba
add rdi, 0xffffffffffffff44
cmp rdi, 0x39f
jae 0x140090779
mov r8d, 0x4d
xor eax, eax
lea rcx, [0x1402d043c]
mov r14d, 0x4d
shr r8, 1
add r8, rax
movzx r10d, word [rcx + r8*2]
cmp r10w, di
je 0x140090763
lea r11, [r8 + 1]
cmp r10w, di
cmova r14, r8
cmovb rax, r11
mov r8, r14
sub r8, rax
ja 0x140090708
lea r8, [rax - 1]
cmp r8, 0x4d
jae 0x1400907b8
lea r8, [0x1402d04d8]
add di, word [r8 + rax*2 - 2]
sub di, word [rcx + rax*2 - 2]
jmp 0x14009076f
mov rsi, qword [rsp + 0x28]
mov word [rsi + 8], 0x202
mov byte [rsi + 0xa], 0
jmp 0x1400906b5
lea rax, [0x1402d04d8]
movzx edi, word [rax + r8*2]
cmp di, 0x7f
ja 0x14008fcba
mov word [rsi + 8], 0x202
mov byte [rsi + 0xa], 0
jmp 0x1400905c7
lea r8, str._home_zuzu_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x437
mov rcx, 0xffffffffffffffff
call fcn.1401ac3e0
lea r8, str._home_zuzu_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x217
mov rcx, 0xffffffffffffffff
call fcn.1401ac3e0
lea r8, str._home_zuzu_.cargo_registry_src_index.crates.io_6f17d22bba15001f_encoding_rs_0.8.34_src_data.rs
mov edx, 0x4d
mov rcx, 0xffffffffffffffff
call fcn.1401ac3e0
int3