Function at 0x140107ba0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rdi
push r14
push r15
sub rsp, 0x58
mov r14d, dword [r8]
mov rbx, rdx
mov r15, rcx
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x80], 0
test rdx, rdx
jne 0x140107bd6
xor edi, edi
jmp 0x140107bee
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea rdi, [rcx - 1]
and edi, 0x3fffffff
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r13
test r14b, 0x40
jne 0x140107c15
cmp dword [0x14017d29c], 0
je 0x1401081a4
cmp edi, 5
jl 0x1401081a4
mov edx, dword [rdx]
lea rcx, [0x140000000]
cmp edx, dword [rcx + 0x147234]
lea rcx, [rcx + 0x147234]
jne 0x140107c42
mov dl, byte [rbx + 4]
cmp dl, byte [rcx + 4]
jne 0x140107c42
xor eax, eax
jmp 0x140107c47
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1401081a4
lea eax, [rdi + 2]
or r14d, 0x40
movsxd rdi, edi
xor esi, esi
xor ebp, ebp
xor r13d, r13d
xor ecx, ecx
cmp rdi, 2
movsxd r12, eax
mov dword [rsp + 0x88], r14d
jl 0x140107ca2
lea rdx, [rdi - 1]
nop word [rax + rax]
xor eax, eax
cmp byte [rbx + rcx], 0x26
sete al
add rsi, rax
xor eax, eax
cmp byte [rbx + rcx + 1], 0x26
sete al
add rcx, 2
add rbp, rax
cmp rcx, rdx
jl 0x140107c80
cmp rcx, rdi
jge 0x140107cb3
xor eax, eax
cmp byte [rcx + rbx], 0x26
sete al
add r12, rax
call fcn.140104680
test eax, eax
jne 0x1401082c8
lea rcx, [rsi + rbp]
add rcx, r12
call fcn.140062f10
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1401082c8
cmp byte [rbx + 5], 0x2f
mov r8d, 5
jne 0x140107daa
cmp byte [rbx + 6], 0x2f
jne 0x140107da1
movzx ecx, byte [rbx + 7]
mov r8d, 7
test cl, cl
je 0x140107d98
lea rax, [rbx + 7]
nop dword [rax]
cmp cl, 0x2f
je 0x140107d22
mov cl, byte [rax + 1]
inc rax
inc r8d
test cl, cl
jne 0x140107d10
cmp r8d, 7
je 0x140107db3
cmp r8d, 0x10
jne 0x140107d66
lea r11, [0x140000000]
lea rcx, [rbx + 7]
mov rdx, qword [r11 + 0x147240]
cmp rdx, qword [rbx + 7]
jne 0x140107d5d
mov dl, byte [r11 + 0x147248]
add rcx, 8
cmp dl, byte [rcx]
jne 0x140107d5d
xor eax, eax
jmp 0x140107d62
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x140107dba
lea edx, [r8 - 7]
lea rcx, str.invalid_uri_authority:__.s
lea r8, [rbx + 7]
call fcn.140065990
mov dword [rsp + 0x80], 1
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x14010823f
lea r11, [0x140000000]
jmp 0x140107dba
lea r11, [0x140000000]
jmp 0x140107dba
lea r11, [0x140000000]
jmp 0x140107dba
lea r11, [0x140000000]
movsxd rax, r8d
xor r10d, r10d
xor r9d, r9d
mov dl, byte [rax + rbx]
test dl, dl
je 0x140107f59
nop
cmp dl, 0x23
je 0x140107f49
inc r8d
cmp dl, 0x25
jne 0x140107eb3
movsxd rax, r8d
movzx ecx, byte [rax + rbx]
test byte [rcx + r11 + 0x12cb10], 8
je 0x140107eb3
movzx eax, byte [rax + rbx + 1]
test byte [rax + r11 + 0x12cb10], 8
je 0x140107eb3
movsx edx, cl
inc r8d
mov ecx, edx
movsxd rax, r8d
inc r8d
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 0x140107f31
movsxd rdx, r8d
movsxd rcx, r10d
movzx eax, byte [rdx + rbx]
test al, al
je 0x140107f3b
add rdx, rbx
cmp al, 0x23
je 0x140107f3b
test r10d, r10d
jne 0x140107e7b
cmp al, 0x3f
je 0x140107f3b
jmp 0x140107ea1
cmp rcx, 1
jne 0x140107e93
cmp al, 0x3d
je 0x140107f3b
cmp al, 0x26
je 0x140107f3b
jmp 0x140107ea1
cmp rcx, 2
jne 0x140107ea1
cmp al, 0x26
je 0x140107f3b
mov al, byte [rdx + 1]
inc rdx
inc r8d
test al, al
jne 0x140107e64
jmp 0x140107f3b
cmp r10d, 1
jne 0x140107f12
cmp dl, 0x26
je 0x140107ec3
cmp dl, 0x3d
jne 0x140107f31
cmp byte [r9 + rsi - 1], 0
jne 0x140107ef4
movsxd rax, r8d
cmp byte [rax + rbx], 0
je 0x140107f3b
movzx ecx, byte [rax + rbx]
cmp cl, 0x23
je 0x140107f3b
cmp byte [rax + rbx - 1], 0x26
je 0x140107f3b
mov cl, byte [rax + rbx + 1]
inc rax
inc r8d
test cl, cl
jne 0x140107ed8
jmp 0x140107f3b
cmp dl, 0x26
jne 0x140107f08
mov byte [r9 + rsi], 0
inc r9
inc r13d
xor dl, dl
jmp 0x140107f31
mov r10d, 2
xor dl, dl
jmp 0x140107f31
test r10d, r10d
jne 0x140107f1e
cmp dl, 0x3f
je 0x140107f29
jmp 0x140107f31
cmp r10d, 2
jne 0x140107f31
cmp dl, 0x26
jne 0x140107f31
xor dl, dl
mov r10d, 1
mov byte [r9 + rsi], dl
inc r13d
inc r9
movsxd rax, r8d
mov dl, byte [rax + rbx]
test dl, dl
jne 0x140107dd0
cmp r10d, 1
jne 0x140107f59
movsxd rax, r13d
inc r13d
mov byte [rax + rsi], 0
movsxd rax, r13d
or rcx, 0xffffffffffffffff
mov rdi, rsi
mov byte [rax + rsi], 0
mov byte [rax + rsi + 1], 0
xor eax, eax
repne scasb al, byte [rdi]
not rcx
lea rax, [rcx - 1]
and eax, 0x3fffffff
inc eax
movsxd rdx, eax
add rdx, rsi
cmp byte [rdx], 0
je 0x1401081fe
nop dword [rax]
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 0x140107fb9
xor esi, esi
jmp 0x140107fd1
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 0x14010800e
mov cx, word [r11 + 0x14726c]
cmp cx, word [rdx]
jne 0x140107ff4
mov cl, byte [r11 + 0x14726e]
cmp cl, byte [rdx + 2]
jne 0x140107ff4
xor eax, eax
jmp 0x140107ff9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x14010813c
mov r15, r13
mov qword [rsp + 0x20], r13
jmp 0x140108156
cmp r8d, 5
jne 0x140108053
lea rax, str.cache
mov ecx, dword [rax]
cmp ecx, dword [rdx]
jne 0x14010802d
mov cl, byte [rax + 4]
cmp cl, byte [rdx + 4]
jne 0x14010802d
xor eax, eax
jmp 0x140108032
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x140108151
mov r12d, 0x60000
lea rbp, str.shared
lea r15, str.cache
mov r14d, r12d
jmp 0x140108082
cmp r8d, 4
jne 0x14010814a
mov eax, dword [str.mode]
cmp eax, dword [rdx]
jne 0x140108143
mov r12d, 0x87
lea rbp, [0x14017f9f0]
lea r15, str.access
and r14d, r12d
mov rdx, qword [rbp]
xor ebx, ebx
test rdx, rdx
je 0x1401080d6
nop dword [rax]
test rdx, rdx
jne 0x140108099
xor ecx, ecx
jmp 0x1401080b0
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
and ecx, 0x3fffffff
cmp esi, ecx
jne 0x1401080c3
movsxd r8, esi
mov rcx, r13
call sub.MSVCR90.dll_memcmp
test eax, eax
je 0x140108106
inc rbx
mov rax, rbx
add rax, rax
mov rdx, qword [rbp + rax*8]
test rdx, rdx
jne 0x140108090
lea rcx, str.no_such__s_mode:__s
mov r8, r13
mov rdx, r15
call fcn.140065990
mov dword [rsp + 0x80], 1
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x14010823f
add rbx, rbx
mov ecx, dword [rbp + rbx*8 + 8]
test ecx, ecx
je 0x1401080d6
mov eax, ecx
btr eax, 7
cmp eax, r14d
jg 0x140108174
mov r14d, dword [rsp + 0x88]
mov r15, qword [rsp + 0x20]
not r12d
and r14d, r12d
or r14d, ecx
mov dword [rsp + 0x88], r14d
jmp 0x140108156
mov r15, qword [rsp + 0x20]
jmp 0x140108156
mov r15, qword [rsp + 0x20]
jmp 0x140108156
mov r15, qword [rsp + 0x20]
jmp 0x140108156
mov r15, qword [rsp + 0x20]
lea eax, [rsi + 1]
movsxd rdx, eax
add rdx, r13
cmp byte [rdx], 0
je 0x1401081f9
lea r11, [0x140000000]
jmp 0x140107f90
lea rcx, str._s_mode_not_allowed:__s
mov r8, r13
mov rdx, r15
call fcn.140065990
mov dword [rsp + 0x80], 3
mov rdx, rax
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
jmp 0x14010823f
call fcn.140104680
test eax, eax
jne 0x1401082c8
lea eax, [rdi + 2]
movsxd rcx, eax
call fcn.140062f10
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1401082c8
test edi, edi
je 0x1401081df
movsxd r8, edi
mov rdx, rbx
mov rcx, rax
call sub.MSVCR90.dll_memcpy
movsxd rax, edi
and r14d, 0xffffffbf
mov byte [rax + rsi], 0
mov byte [rax + rsi + 1], 0
mov dword [rsp + 0x88], r14d
jmp 0x1401081fe
mov rsi, qword [rsp + 0x28]
mov rcx, r15
call fcn.140062480
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
jne 0x1401082a3
lea rcx, str.no_such_vfs:__s
mov rdx, r15
call fcn.140065990
mov rcx, qword [rsp + 0xa8]
mov dword [rsp + 0x80], 1
mov qword [rcx], rax
cmp dword [reloc.Languages.dll_Ordinal_1], 0
je 0x140108296
mov rcx, qword [0x14018af18]
test rcx, rcx
je 0x14010825a
call qword [0x14017d320]
mov rdi, qword [rsp + 0x28]
mov rcx, rdi
call qword [0x14017d2d8]
dec qword [0x14018aea8]
movsxd rcx, eax
sub qword [0x14018ae60], rcx
mov rcx, rdi
call qword [0x14017d2c8]
mov rcx, qword [0x14018af18]
test rcx, rcx
je 0x1401082a1
call qword [0x14017d330]
jmp 0x1401082a1
mov rcx, qword [rsp + 0x28]
call qword [0x14017d2c8]
xor esi, esi
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], rsi
jmp 0x1401082cd
mov eax, 7
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
pop r15
pop r14
pop rdi
pop rbx
ret