Function at 0x14009d500
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rdi
push r12
push r14
sub rsp, 0x58
mov r14d, dword [r8]
mov rdi, rdx
mov r12, rcx
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x80], 0
mov rbx, rdx
mov dword [rsp + 0x88], r14d
test rdx, rdx
je 0x14009d552
cmp byte [rdx], 0
je 0x14009d54a
inc rbx
cmp byte [rbx], 0
jne 0x14009d542
sub ebx, edx
and ebx, 0x3fffffff
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r15
test r14b, 0x40
jne 0x14009d579
cmp dword [0x14014407c], 0
je 0x14009daf0
cmp ebx, 5
jl 0x14009daf0
mov edx, dword [rdx]
lea rcx, [0x140000000]
cmp edx, dword [rcx + 0x11aa54]
lea rcx, [rcx + 0x11aa54]
jne 0x14009d5a6
mov dl, byte [rdi + 4]
cmp dl, byte [rcx + 4]
jne 0x14009d5a6
xor eax, eax
jmp 0x14009d5ab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x14009daf0
or r14d, 0x40
movsxd r8, ebx
xor esi, esi
xor ebp, ebp
xor r13d, r13d
xor ecx, ecx
cmp r8, 2
lea r12d, [rbx + 2]
mov dword [rsp + 0x88], r14d
jl 0x14009d600
lea rdx, [r8 - 1]
nop dword [rax]
xor eax, eax
cmp byte [rdi + rcx], 0x26
sete al
add esi, eax
xor eax, eax
cmp byte [rdi + rcx + 1], 0x26
sete al
add rcx, 2
add ebp, eax
cmp rcx, rdx
jl 0x14009d5e0
cmp rcx, r8
jge 0x14009d611
xor eax, eax
cmp byte [rcx + rdi], 0x26
sete al
add r12d, eax
call fcn.14009aa50
test eax, eax
jne 0x14009dbac
lea ecx, [rsi + rbp]
add ecx, r12d
call fcn.1400245e0
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14009dbac
cmp byte [rdi + 5], 0x2f
jne 0x14009d6eb
cmp byte [rdi + 6], 0x2f
jne 0x14009d6eb
movzx ecx, byte [rdi + 7]
lea r8, [rdi + 7]
mov r9d, 7
test cl, cl
je 0x14009d6fa
mov rax, r8
cmp cl, 0x2f
je 0x14009d679
mov cl, byte [rax + 1]
inc rax
inc r9d
test cl, cl
jne 0x14009d667
cmp r9d, 7
je 0x14009d703
cmp r9d, 0x10
jne 0x14009d6bd
lea r12, [0x140000000]
mov rcx, r8
mov rdx, qword [r12 + 0x11aa60]
cmp rdx, qword [r8]
jne 0x14009d6b4
mov dl, byte [r12 + 0x11aa68]
add rcx, 8
cmp dl, byte [rcx]
jne 0x14009d6b4
xor eax, eax
jmp 0x14009d6b9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x14009d70a
lea edx, [r9 - 7]
lea rcx, str.invalid_uri_authority:__.s
call fcn.140026530
mov dword [rsp + 0x80], 1
mov r11, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], r11
jmp 0x14009db7b
mov r9d, 5
lea r12, [0x140000000]
jmp 0x14009d70a
lea r12, [0x140000000]
jmp 0x14009d70a
lea r12, [0x140000000]
movsxd rax, r9d
xor r11d, r11d
xor r10d, r10d
mov dl, byte [rax + rdi]
test dl, dl
je 0x14009d8b1
nop
cmp dl, 0x23
je 0x14009d8a1
inc r9d
cmp dl, 0x25
jne 0x14009d805
movsxd rax, r9d
movzx ecx, byte [rax + rdi]
test byte [rcx + r12 + 0x113250], 8
je 0x14009d805
movzx eax, byte [rax + rdi + 1]
test byte [rax + r12 + 0x113250], 8
je 0x14009d805
movsx edx, cl
inc r9d
mov ecx, edx
movsxd rax, r9d
inc r9d
movsx r8d, byte [rax + rdi]
sar ecx, 6
mov al, 7
and cl, 1
imul cl
mov ecx, r8d
sar ecx, 6
sub dl, al
and cl, 1
mov al, 7
and edx, 0xf
shl edx, 4
imul cl
mov cl, r8b
sub cl, al
and ecx, 0xf
add edx, ecx
jne 0x14009d889
movsxd rdx, r9d
movsxd rcx, r11d
movzx eax, byte [rdx + rdi]
test al, al
je 0x14009d893
add rdx, rdi
cmp al, 0x23
je 0x14009d893
test r11d, r11d
jne 0x14009d7cd
cmp al, 0x3f
je 0x14009d893
jmp 0x14009d7f3
cmp rcx, 1
jne 0x14009d7e5
cmp al, 0x3d
je 0x14009d893
cmp al, 0x26
je 0x14009d893
jmp 0x14009d7f3
cmp rcx, 2
jne 0x14009d7f3
cmp al, 0x26
je 0x14009d893
mov al, byte [rdx + 1]
inc rdx
inc r9d
test al, al
jne 0x14009d7b6
jmp 0x14009d893
cmp r11d, 1
jne 0x14009d86a
cmp dl, 0x26
je 0x14009d815
cmp dl, 0x3d
jne 0x14009d889
cmp byte [r10 + rsi - 1], 0
jne 0x14009d84c
movsxd rax, r9d
cmp byte [rax + rdi], 0
je 0x14009d893
movzx ecx, byte [rax + rdi]
nop word [rax + rax]
cmp cl, 0x23
je 0x14009d893
cmp byte [rax + rdi - 1], 0x26
je 0x14009d893
mov cl, byte [rax + rdi + 1]
inc rax
inc r9d
test cl, cl
jne 0x14009d830
jmp 0x14009d893
cmp dl, 0x26
jne 0x14009d860
mov byte [r10 + rsi], 0
inc r10
inc r13d
xor dl, dl
jmp 0x14009d889
mov r11d, 2
xor dl, dl
jmp 0x14009d889
test r11d, r11d
jne 0x14009d876
cmp dl, 0x3f
je 0x14009d881
jmp 0x14009d889
cmp r11d, 2
jne 0x14009d889
cmp dl, 0x26
jne 0x14009d889
xor dl, dl
mov r11d, 1
mov byte [r10 + rsi], dl
inc r13d
inc r10
movsxd rax, r9d
mov dl, byte [rax + rdi]
test dl, dl
jne 0x14009d720
cmp r11d, 1
jne 0x14009d8b1
movsxd rax, r13d
inc r13d
mov byte [rax + rsi], 0
movsxd rax, r13d
mov byte [rax + rsi], 0
mov byte [rax + rsi + 1], 0
cmp byte [rsi], 0
mov rax, rsi
je 0x14009d8cd
inc rax
cmp byte [rax], 0
jne 0x14009d8c5
sub eax, esi
and eax, 0x3fffffff
inc eax
movsxd rdx, eax
add rdx, rsi
cmp byte [rdx], 0
je 0x14009db39
mov r15d, dword [str.mode]
nop dword [rax]
mov rcx, rdx
inc rcx
cmp byte [rcx], 0
jne 0x14009d8f3
sub ecx, edx
and ecx, 0x3fffffff
lea eax, [rcx + 1]
movsxd rbp, eax
add rbp, rdx
mov rbx, rbp
jne 0x14009d915
xor ebx, ebx
jmp 0x14009d930
cmp byte [rbp], 0
je 0x14009d928
nop dword [rax + rax]
inc rbx
cmp byte [rbx], 0
jne 0x14009d920
sub ebx, ebp
and ebx, 0x3fffffff
cmp ecx, 3
jne 0x14009d96e
mov cx, word [r12 + 0x11aa8c]
cmp cx, word [rdx]
jne 0x14009d954
mov cl, byte [r12 + 0x11aa8e]
cmp cl, byte [rdx + 2]
jne 0x14009d954
xor eax, eax
jmp 0x14009d959
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x14009da8c
mov r12, rbp
mov qword [rsp + 0x20], rbp
jmp 0x14009daa6
cmp ecx, 5
jne 0x14009d9b2
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x14009d98c
mov cl, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x14009d98c
xor eax, eax
jmp 0x14009d991
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x14009daa1
mov r12d, 0x60000
lea rsi, str.shared
lea r14, str.cache
mov r13d, r12d
jmp 0x14009d9de
cmp ecx, 4
jne 0x14009da9a
cmp r15d, dword [rdx]
jne 0x14009da93
mov r13d, r14d
mov r12d, 7
lea rsi, [0x1401454d0]
and r13d, r12d
lea r14, str.access
mov rcx, qword [rsi]
xor edi, edi
test rcx, rcx
je 0x14009da2c
mov rax, rcx
test rcx, rcx
je 0x14009da04
cmp byte [rcx], 0
je 0x14009d9fd
inc rax
cmp byte [rax], 0
jne 0x14009d9f5
sub eax, ecx
and eax, 0x3fffffff
cmp ebx, eax
jne 0x14009da1a
mov rdx, rcx
movsxd r8, ebx
mov rcx, rbp
call fcn.1400e72f0
test eax, eax
je 0x14009da5c
inc rdi
mov rax, rdi
add rax, rax
mov rcx, qword [rsi + rax*8]
test rcx, rcx
jne 0x14009d9e8
lea rcx, str.no_such__s_mode:__s
mov r8, rbp
mov rdx, r14
call fcn.140026530
mov dword [rsp + 0x80], 1
mov r11, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], r11
jmp 0x14009db7b
add rdi, rdi
mov eax, dword [rsi + rdi*8 + 8]
test eax, eax
je 0x14009da2c
cmp eax, r13d
jg 0x14009dac0
mov r14d, dword [rsp + 0x88]
not r12d
and r14d, r12d
mov r12, qword [rsp + 0x20]
or r14d, eax
mov dword [rsp + 0x88], r14d
jmp 0x14009daa6
mov r12, qword [rsp + 0x20]
jmp 0x14009daa6
mov r12, qword [rsp + 0x20]
jmp 0x14009daa6
mov r12, qword [rsp + 0x20]
jmp 0x14009daa6
mov r12, qword [rsp + 0x20]
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rbp
cmp byte [rdx], 0
je 0x14009db32
lea r12, [0x140000000]
jmp 0x14009d8f0
lea rcx, str._s_mode_not_allowed:__s
mov r8, rbp
mov rdx, r14
call fcn.140026530
mov dword [rsp + 0x80], 3
mov r11, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], r11
jmp 0x14009db7b
call fcn.14009aa50
test eax, eax
jne 0x14009dbac
lea ecx, [rbx + 2]
call fcn.1400245e0
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14009dbac
movsxd rbx, ebx
mov rdx, rdi
mov rcx, rax
mov r8, rbx
call fcn.1400e0ec0
mov byte [rbx + rsi], 0
mov byte [rbx + rsi + 1], 0
jmp 0x14009db3e
mov rsi, qword [rsp + 0x28]
jmp 0x14009db3e
mov r12, qword [rsp + 0x20]
mov rcx, r12
call fcn.140023b40
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
jne 0x14009db87
lea rcx, str.no_such_vfs:__s
mov rdx, r12
call fcn.140026530
mov rcx, qword [rsp + 0xa8]
mov dword [rsp + 0x80], 1
mov qword [rcx], rax
mov rcx, qword [rsp + 0x28]
call fcn.140024910
xor esi, esi
mov rax, qword [rsp + 0x90]
mov ecx, dword [rsp + 0x88]
mov dword [rax], ecx
mov rcx, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x80]
mov qword [rcx], rsi
jmp 0x14009dbb1
mov eax, 7
mov r15, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
pop r14
pop r12
pop rdi
pop rbx
ret