Function at 0x14009f250
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rsi
push r13
push r14
sub rsp, 0x58
mov r14d, dword [r8]
mov rsi, rdx
mov dword [rsp + 0x20], 0
mov r13, rcx
mov rbx, rdx
test rdx, rdx
je 0x14009f292
cmp byte [rdx], 0
je 0x14009f28a
inc rbx
cmp byte [rbx], 0
jne 0x14009f282
sub ebx, esi
and ebx, 0x3fffffff
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r15
test r14b, 0x40
jne 0x14009f2b9
cmp dword [0x1400e3fcc], 0
je 0x14009f7f2
cmp ebx, 5
jb 0x14009f7f2
cmp dword [rdx], 0x656c6966
jne 0x14009f7f2
cmp byte [rdx + 4], 0x3a
jne 0x14009f7f2
or r14d, 0x40
mov r10d, ebx
xor edx, edx
mov dword [rsp + 0x88], r14d
xor r8d, r8d
lea edi, [rbx + 2]
xor ebp, ebp
xor ecx, ecx
cmp r10, 2
jb 0x14009f321
lea r9, [rbx - 1]
nop dword [rax]
xor eax, eax
cmp byte [rcx + rsi], 0x26
sete al
add edx, eax
xor eax, eax
cmp byte [rcx + rsi + 1], 0x26
sete al
add rcx, 2
add r8d, eax
cmp rcx, r9
jl 0x14009f300
cmp rcx, r10
jge 0x14009f331
xor eax, eax
cmp byte [rcx + rsi], 0x26
sete al
add edi, eax
lea eax, [r8 + rdx]
add edi, eax
call fcn.14009be90
test eax, eax
jne 0x14009f917
test edi, edi
jle 0x14009f917
movsxd rcx, edi
call fcn.14000cbd0
mov r8, rax
test rax, rax
je 0x14009f917
cmp byte [rsi + 5], 0x2f
mov ecx, 5
mov r15, rax
jne 0x14009f3da
cmp byte [rsi + 6], 0x2f
jne 0x14009f3da
movzx eax, byte [rsi + 7]
mov ecx, 7
test al, al
je 0x14009f3da
lea rdx, [rsi + 7]
cmp al, 0x2f
je 0x14009f396
movzx eax, byte [rdx + 1]
inc rdx
inc ecx
test al, al
jne 0x14009f385
cmp ecx, 7
je 0x14009f3da
cmp ecx, 0x10
jne 0x14009f3ba
movabs rax, 0x736f686c61636f6c
cmp rax, qword [rsi + 7]
jne 0x14009f3ba
mov eax, 0x74
cmp al, byte [rsi + 0xf]
je 0x14009f3da
lea edx, [rcx - 7]
mov dword [rsp + 0x20], 1
lea rcx, str.invalid_uri_authority:__.s
lea r8, [rsi + 7]
call fcn.14000f4a0
jmp 0x14009f869
movsxd rax, ecx
xor r9d, r9d
movzx edx, byte [rax + rsi]
test dl, dl
je 0x14009f571
mov rdi, r15
lea r12, [0x1400cd000]
nop word [rax + rax]
movsxd rbx, ecx
cmp dl, 0x23
je 0x14009f561
inc ecx
cmp dl, 0x25
jne 0x14009f4d1
movsxd rax, ecx
movzx r11d, byte [rax + rsi]
test byte [r11 + r12], 8
je 0x14009f4d1
movzx r10d, byte [rbx + rsi + 2]
test byte [r10 + r12], 8
je 0x14009f4d1
movzx edx, r11b
movsx eax, r11b
sar eax, 6
and al, 1
movsx r8d, r10b
movzx eax, al
imul ecx, eax, 7
sar r8d, 6
and r8b, 1
movzx eax, r8b
sub dl, cl
imul ecx, eax, 7
movzx eax, r10b
and edx, 0xf
shl edx, 4
sub al, cl
lea ecx, [rbx + 3]
and eax, 0xf
add edx, eax
jne 0x14009f54b
movsxd rdx, ecx
add rdx, rsi
movzx eax, byte [rdx]
test al, al
je 0x14009f552
nop
cmp al, 0x23
je 0x14009f552
test r9d, r9d
jne 0x14009f4a1
cmp al, 0x3f
jmp 0x14009f4b9
cmp r9d, 1
jne 0x14009f4b1
cmp al, 0x3d
je 0x14009f552
jmp 0x14009f4b7
cmp r9d, 2
jne 0x14009f4bf
cmp al, 0x26
je 0x14009f552
movzx eax, byte [rdx + 1]
inc rdx
inc ecx
test al, al
jne 0x14009f490
jmp 0x14009f552
cmp r9d, 1
jne 0x14009f52c
cmp dl, 0x26
je 0x14009f4e1
cmp dl, 0x3d
jne 0x14009f54b
cmp byte [rdi - 1], 0
jne 0x14009f515
movsxd rdx, ecx
add rdx, rsi
movzx r8d, byte [rdx]
test r8b, r8b
je 0x14009f552
cmp r8b, 0x23
je 0x14009f552
cmp byte [rdx - 1], 0x26
je 0x14009f552
movzx eax, byte [rdx + 1]
inc rdx
inc ecx
movzx r8d, al
test al, al
jne 0x14009f4f6
jmp 0x14009f552
cmp dl, 0x26
jne 0x14009f524
inc ebp
mov byte [rdi], 0
inc rdi
jmp 0x14009f549
mov r9d, 2
jmp 0x14009f549
test r9d, r9d
jne 0x14009f538
cmp dl, 0x3f
je 0x14009f543
jmp 0x14009f54b
cmp r9d, 2
jne 0x14009f54b
cmp dl, 0x26
jne 0x14009f54b
mov r9d, 1
xor dl, dl
inc ebp
mov byte [rdi], dl
inc rdi
movsxd rax, ecx
movzx edx, byte [rax + rsi]
test dl, dl
jne 0x14009f400
cmp r9d, 1
jne 0x14009f571
movsxd rax, ebp
inc ebp
mov byte [rax + r15], 0
movsxd rax, ebp
mov word [rax + r15], 0
mov rax, r15
cmp byte [r15], 0
je 0x14009f58c
inc rax
cmp byte [rax], 0
jne 0x14009f584
sub eax, r15d
and eax, 0x3fffffff
lea r8d, [rax + 1]
add r8, r15
cmp byte [r8], 0
je 0x14009f836
mov esi, 0x73
mov rdx, r8
mov r14d, 0x6676
lea ebp, [rsi - 0xe]
nop word [rax + rax]
mov r10d, dword [rsp + 0x88]
inc rdx
cmp byte [rdx], 0
jne 0x14009f5c0
sub edx, r8d
mov dword [rsp + 0x88], r10d
and edx, 0x3fffffff
mov rdi, r13
lea r12d, [rdx + 1]
add r12, r8
mov rbx, r12
jne 0x14009f5fc
xor ebx, ebx
mov qword [rsp + 0x80], r13
jmp 0x14009f641
cmp byte [r12], 0
mov qword [rsp + 0x80], rdi
je 0x14009f62a
mov dword [rsp + 0x88], r10d
mov qword [rsp + 0x80], rdi
nop dword [rax + rax]
inc rbx
cmp byte [rbx], 0
jne 0x14009f620
jmp 0x14009f632
mov r10d, dword [rsp + 0x88]
sub ebx, r12d
mov r14d, 0x6676
and ebx, 0x3fffffff
cmp edx, 3
jne 0x14009f662
cmp r14w, word [r8]
jne 0x14009f782
cmp sil, byte [r8 + 2]
jne 0x14009f782
mov r13, r12
jmp 0x14009f78a
cmp edx, 5
jne 0x14009f69d
mov eax, 0x68636163
cmp eax, dword [r8]
jne 0x14009f782
cmp bpl, byte [r8 + 4]
jne 0x14009f782
mov dword [rsp + 0x24], 0x60000
lea r14, str.LW_r_
lea rax, str.cache
mov r13d, 0x60000
jmp 0x14009f6d4
cmp edx, 4
jne 0x14009f782
mov eax, 0x65646f6d
cmp eax, dword [r8]
jne 0x14009f782
mov r13d, r10d
mov dword [rsp + 0x24], 0x87
and r13d, 0x87
lea r14, str._W_r_
lea rax, str.access
mov rcx, qword [r14]
xor ebp, ebp
mov qword [rsp + 0x28], rax
test rcx, rcx
je 0x14009f7cc
cmp byte [rcx], 0
mov rax, rcx
je 0x14009f6f8
nop
inc rax
cmp byte [rax], 0
jne 0x14009f6f0
sub eax, ecx
mov qword [rsp + 0x80], rdi
and eax, 0x3fffffff
mov edi, r10d
cmp ebx, eax
jne 0x14009f720
mov rdx, rcx
mov r8d, ebx
mov rcx, r12
call fcn.1400c23a0
test eax, eax
je 0x14009f74a
inc rbp
mov dword [rsp + 0x88], edi
mov rax, rbp
add rax, rax
mov rcx, qword [r14 + rax*8]
test rcx, rcx
je 0x14009f7cc
mov r10d, edi
mov rdi, qword [rsp + 0x80]
jmp 0x14009f6e7
add rbp, rbp
mov ecx, dword [r14 + rbp*8 + 8]
mov r14d, edi
test ecx, ecx
je 0x14009f7d4
mov eax, ecx
btr eax, 7
cmp eax, r13d
jg 0x14009f7ab
mov r10d, dword [rsp + 0x24]
mov esi, 0x73
not r10d
and r10d, edi
or r10d, ecx
mov dword [rsp + 0x88], r10d
lea ebp, [rsi - 0xe]
mov r13, qword [rsp + 0x80]
mov r8d, ebx
inc r8
add r8, r12
mov rdx, r8
cmp byte [r8], 0
je 0x14009f82e
mov r14d, 0x6676
jmp 0x14009f5c8
mov rdx, qword [rsp + 0x28]
lea rcx, str._s_mode_not_allowed:__s
mov r8, r12
mov dword [rsp + 0x20], 3
call fcn.14000f4a0
jmp 0x14009f869
mov r14d, dword [rsp + 0x88]
mov rdx, qword [rsp + 0x28]
lea rcx, str.no_such__s_mode:__s
mov r8, r12
mov dword [rsp + 0x20], 1
call fcn.14000f4a0
jmp 0x14009f869
call fcn.14009be90
test eax, eax
jne 0x14009f917
lea ecx, [rbx + 2]
call fcn.14000cbd0
mov r15, rax
test rax, rax
je 0x14009f917
mov r8, rbx
mov rdx, rsi
mov rcx, rax
call fcn.1400c1d20
and r14d, 0xffffffbf
mov word [rbx + r15], 0
jmp 0x14009f836
mov r14d, dword [rsp + 0x88]
mov rcx, r13
call fcn.14000c490
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
jne 0x14009f8fb
mov rdx, r13
mov dword [rsp + 0x20], 1
lea rcx, str.no_such_vfs:__s
call fcn.14000f4a0
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
cmp dword [0x1400e3fc0], 0
je 0x14009f8ef
mov rcx, qword [0x1400e7358]
test rcx, rcx
je 0x14009f88f
call qword [0x1400e4048]
mov rcx, r15
call qword [0x1400e4000]
mov edx, dword [0x1400e71d0]
neg eax
add edx, eax
cmp edx, dword [0x1400e71f8]
mov dword [0x1400e71d0], edx
jle 0x14009f8b6
mov dword [0x1400e71f8], edx
mov eax, dword [0x1400e71f4]
dec eax
cmp eax, dword [0x1400e721c]
mov dword [0x1400e71f4], eax
jle 0x14009f8d2
mov dword [0x1400e721c], eax
mov rcx, r15
call qword [0x1400e3ff0]
mov rcx, qword [0x1400e7358]
test rcx, rcx
je 0x14009f8f8
call qword [0x1400e4058]
jmp 0x14009f8f8
mov rcx, r15
call qword [0x1400e3ff0]
xor r15d, r15d
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xa0]
mov dword [rax], r14d
mov eax, dword [rsp + 0x20]
mov qword [rcx], r15
jmp 0x14009f91c
mov eax, 7
mov r15, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
pop r14
pop r13
pop rsi
pop rbx
ret