Function at 0x1401bc240
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov esi, dword [r8]
mov edi, esi
mov r15, rcx
mov rbx, rdx
and edi, 0x40
test rdx, rdx
mov rbp, r8
mov r14, r9
je 0x1401bc54f
mov rcx, rdx
call sub.msvcrt.dll_strlen
mov r13d, eax
and r13d, 0x3fffffff
test edi, edi
lea r12d, [r13 + 8]
movsxd r12, r12d
je 0x1401bc330
cmp r13d, 4
jle 0x1401bc2a0
cmp dword [rbx], 0x656c6966
je 0x1401bc373
mov eax, dword [0x14025aa34]
test eax, eax
jne 0x1401bc350
call fcn.14014eaf0
test eax, eax
jne 0x1401bc328
call fcn.140198fd0
test eax, eax
jne 0x1401bc328
mov rcx, r12
call fcn.140153820
test rax, rax
je 0x1401bc328
mov dword [rax], 0
lea r12, [rax + 4]
test r13d, r13d
movsxd rdi, r13d
jne 0x1401bc360
mov dword [r12 + rdi], 0
and esi, 0xffffffbf
mov rcx, r15
xor ebx, ebx
call fcn.1401a19f0
test rax, rax
mov qword [r14], rax
je 0x1401bc561
mov rax, qword [rsp + 0xa0]
mov dword [rbp], esi
mov qword [rax], r12
mov eax, ebx
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, 7
jmp 0x1401bc312
movzx eax, byte [0x14025a8e6]
test al, al
jne 0x1401bc28e
mov eax, dword [0x14025aa34]
test eax, eax
je 0x1401bc2ae
nop dword [rax]
lock or qword [rsp], 0
jmp 0x1401bc2c0
mov r8, rdi
mov rdx, rbx
mov rcx, r12
call sub.msvcrt.dll_memcpy
jmp 0x1401bc2e3
cmp byte [rbx + 4], 0x3a
jne 0x1401bc2a0
movsxd rcx, r13d
xor edi, edi
or esi, 0x40
mov rax, rbx
add rcx, rbx
nop dword [rax + rax]
xor edx, edx
cmp byte [rax], 0x26
sete dl
add rax, 1
add r12, rdx
cmp rax, rcx
jne 0x1401bc390
mov edx, dword [0x14025aa34]
test edx, edx
jne 0x1401bc832
call fcn.14014eaf0
test eax, eax
jne 0x1401bc328
call fcn.140198fd0
test eax, eax
jne 0x1401bc328
mov rcx, r12
call fcn.140153820
test rax, rax
je 0x1401bc328
mov dword [rax], 0
lea r12, [rax + 4]
movzx eax, byte [rbx + 5]
cmp al, 0x2f
je 0x1401bc84f
test al, al
mov edx, 5
setne cl
cmp al, 0x23
je 0x1401bc963
test cl, cl
je 0x1401bc963
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x90], rbp
jmp 0x1401bc46e
cmp r9d, 1
je 0x1401bc5d0
test r9d, r9d
jne 0x1401bc5fd
cmp al, 0x3f
jne 0x1401bc5fd
mov r9d, 1
xor eax, eax
add edi, 1
mov byte [r12 + r10], al
mov edx, ecx
movsxd r8, edi
movsxd rax, edx
movzx eax, byte [rbx + rax]
cmp al, 0x23
je 0x1401bc624
test al, al
je 0x1401bc624
lea ecx, [rdx + 1]
cmp al, 0x25
mov r10, r8
jne 0x1401bc428
lea rbp, [0x1403b5780]
movsxd rsi, ecx
movzx r13d, byte [rbx + rsi]
test byte [rbp + r13], 8
je 0x1401bc44b
movzx esi, byte [rbx + rsi + 1]
test byte [rbp + rsi], 8
je 0x1401bc44b
lea ecx, [rdx + 3]
movsx r11d, r13b
add edx, 2
mov eax, r11d
movsxd rdx, edx
sar eax, 6
and eax, 1
lea eax, [rax + rax*8]
add eax, r11d
movsx r11d, byte [rbx + rdx]
and eax, 0xf
shl eax, 4
mov edx, r11d
sar edx, 6
and edx, 1
lea edx, [rdx + rdx*8]
add edx, r11d
and edx, 0xf
add edx, eax
mov eax, edx
jne 0x1401bc44b
movsxd rcx, ecx
movzx eax, byte [rbx + rcx]
cmp al, 0x23
je 0x1401bc624
test al, al
je 0x1401bc624
test r9d, r9d
mov rbp, qword [rsp + 0x90]
setne r10b
jmp 0x1401bc529
cmp r9d, 2
jne 0x1401bc510
cmp al, 0x26
je 0x1401bc542
movzx eax, byte [rbx + rcx + 1]
add rcx, 1
cmp al, 0x23
je 0x1401bc96b
test al, al
je 0x1401bc96b
cmp al, 0x3f
mov edx, ecx
jne 0x1401bc538
test r10b, r10b
je 0x1401bc974
cmp r9d, 1
jne 0x1401bc506
cmp al, 0x3d
jne 0x1401bc50c
mov qword [rsp + 0x90], rbp
jmp 0x1401bc457
test edi, edi
je 0x1401bc5be
mov r12d, 8
xor r13d, r13d
jmp 0x1401bc2a0
lea rcx, str.no_such_vfs:__s
mov rdx, r15
mov ebx, 1
call fcn.14019b910
nop dword [rax]
mov rdx, qword [rsp + 0xa8]
mov qword [rdx], rax
jmp 0x1401bc58c
sub r12, 1
cmp byte [r12 - 1], 0
jne 0x1401bc588
cmp byte [r12 - 2], 0
jne 0x1401bc588
cmp byte [r12 - 3], 0
jne 0x1401bc588
cmp byte [r12 - 4], 0
jne 0x1401bc588
lea rcx, [r12 - 4]
xor r12d, r12d
call fcn.14014fe50
jmp 0x1401bc304
movzx eax, byte [0x14025a8e6]
jmp 0x1401bc553
cmp al, 0x26
je 0x1401bc5dc
cmp al, 0x3d
jne 0x1401bc44b
cmp byte [r12 + r8 - 1], 0
je 0x1401bc8d1
cmp al, 0x26
je 0x1401bc83d
mov r9d, 2
xor eax, eax
jmp 0x1401bc44b
cmp r9d, 2
jne 0x1401bc44b
cmp al, 0x26
mov esi, 1
sete dl
test dl, dl
cmovne r9d, esi
mov esi, 0
cmovne eax, esi
jmp 0x1401bc44b
mov esi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
add r8, r12
cmp r9d, 1
je 0x1401bc925
mov dword [r8], 0
mov rcx, r12
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
lea rdi, [r12 + rax + 1]
cmp byte [rdi], 0
je 0x1401bc2ee
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x98], r14
nop dword [rax]
mov rcx, rdi
call sub.msvcrt.dll_strlen
mov r13d, eax
and r13d, 0x3fffffff
lea ebx, [r13 + 1]
movsxd rbx, ebx
add rbx, rdi
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov r15d, eax
and r15d, 0x3fffffff
cmp r13d, 3
je 0x1401bc7a0
cmp r13d, 5
je 0x1401bc7f8
cmp r13d, 4
jne 0x1401bc765
cmp dword [rdi], 0x65646f6d
jne 0x1401bc765
lea rax, str.access
mov r14d, esi
mov r13d, 0x87
and r14d, 0x87
mov qword [rsp + 0x28], rax
lea rbp, [0x140259760]
mov r12, qword [rbp]
test r12, r12
je 0x1401bc7c8
movsxd rdi, r15d
jmp 0x1401bc721
mov r12, qword [rbp + 0x10]
add rbp, 0x10
test r12, r12
je 0x1401bc7c8
mov rcx, r12
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
cmp r15d, eax
jne 0x1401bc710
mov r8, rdi
mov rdx, r12
mov rcx, rbx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401bc710
mov eax, dword [rbp + 8]
test eax, eax
je 0x1401bc7c8
mov edx, eax
and dl, 0x7f
cmp edx, r14d
jg 0x1401bc938
not r13d
and r13d, esi
or eax, r13d
mov esi, eax
lea r8d, [r15 + 1]
movsxd r8, r8d
lea rdi, [rbx + r8]
cmp byte [rdi], 0
jne 0x1401bc680
mov r12, qword [rsp + 0x20]
mov r15, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x90]
mov r14, qword [rsp + 0x98]
jmp 0x1401bc2ee
cmp word [rdi], 0x6676
jne 0x1401bc765
cmp byte [rdi + 2], 0x73
mov rax, rbx
cmovne rax, qword [rsp + 0x80]
mov qword [rsp + 0x80], rax
jmp 0x1401bc765
mov rdx, qword [rsp + 0x28]
lea rcx, str.no_such__s_mode:__s
mov r8, rbx
mov ebx, 1
mov r12, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
call fcn.14019b910
jmp 0x1401bc578
cmp dword [rdi], 0x68636163
jne 0x1401bc765
cmp byte [rdi + 4], 0x65
jne 0x1401bc765
lea rax, str.cache
mov r13d, 0x60000
mov r14d, 0x60000
mov qword [rsp + 0x28], rax
lea rbp, str.shared
jmp 0x1401bc6fb
lock or qword [rsp], 0
jmp 0x1401bc3cc
add edi, 1
mov byte [r12 + r8], 0
xor eax, eax
movsxd r10, edi
jmp 0x1401bc44b
cmp byte [rbx + 6], 0x2f
mov edx, 5
jne 0x1401bc40d
movzx eax, byte [rbx + 7]
lea r8, [rbx + 7]
test al, al
setne dl
cmp al, 0x2f
mov ecx, edx
je 0x1401bc9ae
test dl, dl
je 0x1401bc9ae
lea rax, [rbx + 8]
mov edx, 7
jmp 0x1401bc88d
cmp cl, 0x2f
je 0x1401bc89e
movzx ecx, byte [rax]
mov r9d, edx
add rax, 1
add edx, 1
test cl, cl
jne 0x1401bc888
cmp edx, 0x10
jne 0x1401bc8b7
movabs rax, 0x736f686c61636f6c
cmp qword [rbx + 7], rax
je 0x1401bc984
lea edx, [r9 - 6]
mov ebx, 1
lea rcx, str.invalid_uri_authority:__.s
call fcn.14019b910
jmp 0x1401bc578
movsxd rax, ecx
add rax, rbx
movzx edx, byte [rax]
test dl, dl
je 0x1401bc99d
cmp dl, 0x23
je 0x1401bc99d
mov rbp, qword [rsp + 0x90]
mov edx, ecx
jmp 0x1401bc905
cmp cl, 0x23
je 0x1401bc91e
cmp byte [rax - 1], 0x26
je 0x1401bc542
movzx ecx, byte [rax + 1]
add edx, 1
add rax, 1
test cl, cl
jne 0x1401bc900
mov esi, dword [rsp + 0x20]
add r8, r12
mov byte [r8], 0
lea r8d, [rdi + 1]
movsxd r8, r8d
add r8, r12
jmp 0x1401bc63d
mov rdx, qword [rsp + 0x28]
lea rcx, str._s_mode_not_allowed:__s
mov r8, rbx
mov ebx, 3
mov r12, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
call fcn.14019b910
jmp 0x1401bc578
mov r8, r12
jmp 0x1401bc63d
mov esi, dword [rsp + 0x20]
jmp 0x1401bc630
mov qword [rsp + 0x90], rbp
xor r9d, r9d
jmp 0x1401bc457
cmp byte [r8 + 8], 0x74
jne 0x1401bc8b7
movzx eax, byte [rbx + 0x10]
test al, al
setne cl
jmp 0x1401bc3fd
mov esi, dword [rsp + 0x20]
mov rbp, qword [rsp + 0x90]
jmp 0x1401bc922
mov edx, 7
jmp 0x1401bc3fd