Function at 0x14004c9f0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r13
push r14
sub rsp, 0x48
test rdx, rdx
mov r14d, dword [r8]
mov r13, r9
mov rbx, rdx
mov rbp, rcx
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x80], 0
jne 0x14004ca2b
xor esi, esi
jmp 0x14004ca43
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea rsi, [rcx - 1]
and esi, 0x3fffffff
test r14b, 0x40
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r15
jne 0x14004ca60
cmp dword [0x1400bf01c], 0
je 0x14004d023
cmp esi, 5
jl 0x14004d023
mov edx, dword [rdx]
lea r15, [0x140000000]
cmp edx, dword [r15 + 0xb0c74]
jne 0x14004ca8b
mov dl, byte [rbx + 4]
cmp dl, byte [r15 + 0xb0c78]
jne 0x14004ca8b
xor eax, eax
jmp 0x14004ca90
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x14004d023
or r14d, 0x40
lea eax, [rsi + 2]
xor ebp, ebp
xor ecx, ecx
test esi, esi
movsxd rdx, esi
movsxd rdi, eax
mov dword [rsp + 0x88], r14d
jle 0x14004cad5
nop
nop
nop
xor eax, eax
cmp byte [rcx + rbx], 0x26
sete al
add rcx, 1
add rdi, rax
cmp rcx, rdx
jl 0x14004cac0
call fcn.140047020
test eax, eax
jne 0x14004d22b
test rdi, rdi
je 0x14004cb52
cmp rdi, 0x7fffff00
jae 0x14004cb52
cmp dword [0x1400bf010], ebp
je 0x14004cb40
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14004cb0a
call qword [0x1400bf098]
lea rdx, [rsp + 0x20]
mov ecx, edi
call fcn.140011830
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14004cb34
call qword [0x1400bf0a8]
mov r12, qword [rsp + 0x20]
mov qword [rsp + 0x20], r12
jmp 0x14004cb5a
mov r12, qword [rsp + 0x20]
mov qword [rsp + 0x20], r12
jmp 0x14004cb5a
mov ecx, edi
call qword [0x1400bf038]
mov r12, rax
mov qword [rsp + 0x20], rax
jmp 0x14004cb5a
xor r12d, r12d
mov qword [rsp + 0x20], r12
test r12, r12
je 0x14004d22b
cmp byte [rbx + 5], 0x2f
mov r8d, 5
jne 0x14004cc11
cmp byte [rbx + 6], 0x2f
jne 0x14004cc11
movzx eax, byte [rbx + 7]
mov r8d, 7
test al, al
je 0x14004cc11
lea rcx, [rbx + 7]
cmp al, 0x2f
je 0x14004cba6
mov al, byte [rcx + 1]
add rcx, 1
add r8d, 1
test al, al
jne 0x14004cb93
cmp r8d, 7
je 0x14004cc11
cmp r8d, 0x10
jne 0x14004cbdf
mov rdx, qword [r15 + 0xb0c80]
lea rcx, [rbx + 7]
cmp rdx, qword [rbx + 7]
jne 0x14004cbd6
mov dl, byte [r15 + 0xb0c88]
add rcx, 8
cmp dl, byte [rcx]
jne 0x14004cbd6
xor eax, eax
jmp 0x14004cbdb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x14004cc11
lea edx, [r8 - 7]
lea rcx, str.invalid_uri_authority:__.s
lea r8, [rbx + 7]
call fcn.14004c9a0
mov dword [rsp + 0x80], 1
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x14004d1a0
movsxd rax, r8d
xor r10d, r10d
xor r9d, r9d
mov dl, byte [rax + rbx]
test dl, dl
je 0x14004cdbc
cmp dl, 0x23
je 0x14004cdab
add r8d, 1
cmp dl, 0x25
jne 0x14004cd11
movsxd rax, r8d
movzx ecx, byte [rax + rbx]
test byte [rcx + r15 + 0xab930], 8
je 0x14004cd11
movzx eax, byte [rax + rbx + 1]
test byte [rax + r15 + 0xab930], 8
je 0x14004cd11
movsx edx, cl
add r8d, 1
mov ecx, edx
movsxd rax, r8d
add r8d, 1
movsx edi, byte [rax + rbx]
sar ecx, 6
mov al, 7
and cl, 1
imul cl
mov ecx, edi
sar ecx, 6
sub dl, al
and cl, 1
mov al, 7
and edx, 0xf
shl edx, 4
imul cl
mov cl, dil
sub cl, al
and ecx, 0xf
add edx, ecx
jne 0x14004cd92
movsxd rdx, r8d
movsxd rcx, r10d
movzx eax, byte [rdx + rbx]
test al, al
je 0x14004cd9d
add rdx, rbx
nop
cmp al, 0x23
je 0x14004cd9d
test r10d, r10d
jne 0x14004ccd7
cmp al, 0x3f
je 0x14004cd9d
jmp 0x14004ccfd
cmp rcx, 1
jne 0x14004ccef
cmp al, 0x3d
je 0x14004cd9d
cmp al, 0x26
je 0x14004cd9d
jmp 0x14004ccfd
cmp rcx, 2
jne 0x14004ccfd
cmp al, 0x26
je 0x14004cd9d
mov al, byte [rdx + 1]
add rdx, 1
add r8d, 1
test al, al
jne 0x14004ccc0
jmp 0x14004cd9d
cmp r10d, 1
jne 0x14004cd73
cmp dl, 0x26
je 0x14004cd21
cmp dl, 0x3d
jne 0x14004cd92
cmp byte [r9 + r12 - 1], 0
jne 0x14004cd54
movsxd rax, r8d
cmp byte [rax + rbx], 0
je 0x14004cd9d
movzx ecx, byte [rax + rbx]
cmp cl, 0x23
je 0x14004cd9d
cmp byte [rax + rbx - 1], 0x26
je 0x14004cd9d
mov cl, byte [rax + rbx + 1]
add rax, 1
add r8d, 1
test cl, cl
jne 0x14004cd36
jmp 0x14004cd9d
cmp dl, 0x26
jne 0x14004cd69
mov byte [r9 + r12], 0
add r9, 1
add ebp, 1
xor dl, dl
jmp 0x14004cd92
mov r10d, 2
xor dl, dl
jmp 0x14004cd92
test r10d, r10d
jne 0x14004cd7f
cmp dl, 0x3f
je 0x14004cd8a
jmp 0x14004cd92
cmp r10d, 2
jne 0x14004cd92
cmp dl, 0x26
jne 0x14004cd92
xor dl, dl
mov r10d, 1
mov byte [r9 + r12], dl
add ebp, 1
add r9, 1
movsxd rax, r8d
mov dl, byte [rax + rbx]
test dl, dl
jne 0x14004cc25
cmp r10d, 1
jne 0x14004cdbc
movsxd rax, ebp
add ebp, r10d
mov byte [rax + r12], 0
movsxd rax, ebp
or rcx, 0xffffffffffffffff
mov rdi, r12
mov byte [rax + r12], 0
mov byte [rax + r12 + 1], 0
xor eax, eax
repne scasb al, byte [rdi]
not rcx
lea rax, [rcx - 1]
and eax, 0x3fffffff
add eax, 1
movsxd rdx, eax
add rdx, r12
cmp byte [rdx], 0
je 0x14004d0ea
nop
nop
nop
nop
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
and r8d, 0x3fffffff
lea eax, [r8 + 1]
movsxd r13, eax
add r13, rdx
jne 0x14004ce29
xor esi, esi
jmp 0x14004ce41
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r13
repne scasb al, byte [rdi]
not rcx
lea rsi, [rcx - 1]
and esi, 0x3fffffff
cmp r8d, 3
jne 0x14004ce7e
mov cx, word [r15 + 0xb0cac]
cmp cx, word [rdx]
jne 0x14004ce64
mov cl, byte [r15 + 0xb0cae]
cmp cl, byte [rdx + 2]
jne 0x14004ce64
xor eax, eax
jmp 0x14004ce69
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x14004cfb5
mov rbp, r13
mov qword [rsp + 0x28], r13
jmp 0x14004cfcf
cmp r8d, 5
jne 0x14004cec3
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x14004ce9d
mov cl, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x14004ce9d
xor eax, eax
jmp 0x14004cea2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x14004cfca
mov r12d, 0x60000
lea rbp, str.shared
lea r15, str.cache
mov r14d, r12d
jmp 0x14004cef2
cmp r8d, 4
jne 0x14004cfc3
mov eax, dword [str.mode]
cmp eax, dword [rdx]
jne 0x14004cfbc
mov r12d, 0x87
lea rbp, [0x1400c0b90]
lea r15, str.access
and r14d, r12d
mov rdx, qword [rbp]
xor ebx, ebx
test rdx, rdx
je 0x14004cf48
nop
test rdx, rdx
jne 0x14004cf09
xor ecx, ecx
jmp 0x14004cf21
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
and ecx, 0x3fffffff
cmp esi, ecx
jne 0x14004cf34
movsxd r8, esi
mov rcx, r13
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x14004cf78
add rbx, 1
mov rax, rbx
add rax, rax
mov rdx, qword [rbp + rax*8]
test rdx, rdx
jne 0x14004cf00
lea rcx, str.no_such__s_mode:__s
mov r8, r13
mov rdx, r15
call fcn.14004c9a0
mov dword [rsp + 0x80], 1
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x14004d1a0
add rbx, rbx
mov ecx, dword [rbp + rbx*8 + 8]
test ecx, ecx
je 0x14004cf48
mov eax, ecx
btr eax, 7
cmp eax, r14d
jg 0x14004cff3
mov r14d, dword [rsp + 0x88]
mov rbp, qword [rsp + 0x28]
not r12d
and r14d, r12d
lea r15, [0x140000000]
or r14d, ecx
mov dword [rsp + 0x88], r14d
jmp 0x14004cfcf
mov rbp, qword [rsp + 0x28]
jmp 0x14004cfcf
mov rbp, qword [rsp + 0x28]
jmp 0x14004cfcf
mov rbp, qword [rsp + 0x28]
jmp 0x14004cfcf
mov rbp, qword [rsp + 0x28]
lea eax, [rsi + 1]
movsxd rdx, eax
add rdx, r13
cmp byte [rdx], 0
jne 0x14004ce00
mov r12, qword [rsp + 0x20]
mov r13, qword [rsp + 0x98]
jmp 0x14004d0ef
lea rcx, str._s_mode_not_allowed:__s
mov r8, r13
mov rdx, r15
call fcn.14004c9a0
mov dword [rsp + 0x80], 3
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x14004d1a0
lea eax, [rsi + 2]
movsxd rdi, eax
call fcn.140047020
test eax, eax
jne 0x14004d22b
test rdi, rdi
je 0x14004d0af
cmp rdi, 0x7fffff00
jae 0x14004d0af
cmp dword [0x1400bf010], eax
je 0x14004d09d
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14004d05e
call qword [0x1400bf098]
lea rdx, [rsp + 0x88]
mov ecx, edi
call fcn.140011830
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14004d08e
call qword [0x1400bf0a8]
mov r12, qword [rsp + 0x88]
mov qword [rsp + 0x20], r12
jmp 0x14004d0b7
mov r12, qword [rsp + 0x88]
mov qword [rsp + 0x20], r12
jmp 0x14004d0b7
mov ecx, edi
call qword [0x1400bf038]
mov r12, rax
mov qword [rsp + 0x20], rax
jmp 0x14004d0b7
xor r12d, r12d
mov qword [rsp + 0x20], r12
test r12, r12
je 0x14004d22b
movsxd rdi, esi
mov rdx, rbx
mov rcx, r12
mov r8, rdi
call sub.msvcrt.dll_memcpy
and r14d, 0xffffffbf
mov byte [rdi + r12], 0
mov dword [rsp + 0x88], r14d
mov byte [rdi + r12 + 1], 0
jmp 0x14004d0ef
mov rbp, qword [rsp + 0x28]
call fcn.140047020
test eax, eax
je 0x14004d0fc
xor ebx, ebx
jmp 0x14004d16e
cmp dword [0x1400bf014], 0
jne 0x14004d109
xor esi, esi
jmp 0x14004d125
mov ecx, 2
call qword [0x1400bf088]
test rax, rax
mov rsi, rax
je 0x14004d125
mov rcx, rax
call qword [0x1400bf098]
mov rbx, qword [0x1400c4fc8]
test rbx, rbx
je 0x14004d160
test rbp, rbp
je 0x14004d160
mov rdi, qword [rbx + 0x18]
mov rax, rbp
sub rdi, rbp
movzx edx, byte [rax]
movzx ecx, byte [rax + rdi]
sub edx, ecx
jne 0x14004d153
add rax, 1
test ecx, ecx
jne 0x14004d140
test edx, edx
je 0x14004d160
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x14004d131
test rsi, rsi
je 0x14004d16e
mov rcx, rsi
call qword [0x1400bf0a8]
test rbx, rbx
mov qword [r13], rbx
jne 0x14004d206
lea rcx, str.no_such_vfs:__s
mov rdx, rbp
call fcn.14004c9a0
mov rcx, qword [rsp + 0xa8]
mov dword [rsp + 0x80], 1
mov qword [rcx], rax
cmp dword [0x1400bf010], 0
je 0x14004d1f8
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14004d1bb
call qword [0x1400bf098]
mov rdi, qword [rsp + 0x20]
mov rcx, rdi
call qword [0x1400bf050]
sub qword [0x1400c5018], 1
mov rcx, rdi
movsxd rdx, eax
sub qword [0x1400c4fd0], rdx
call qword [0x1400bf040]
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14004d203
call qword [0x1400bf0a8]
jmp 0x14004d203
mov rcx, qword [rsp + 0x20]
call qword [0x1400bf040]
xor r12d, r12d
mov rcx, qword [rsp + 0x90]
mov eax, dword [rsp + 0x88]
mov dword [rcx], eax
mov rcx, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x80]
mov qword [rcx], r12
jmp 0x14004d230
mov eax, 7
mov r15, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
add rsp, 0x48
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret