Function at 0x14012a870
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rdi
push r12
push r13
sub rsp, 0x68
mov r12d, dword [r8]
mov r13, rcx
mov rcx, qword [rsp + 0xb8]
mov rbx, rdx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x20], 0
test rdx, rdx
jne 0x14012a8b0
xor edi, edi
jmp 0x14012a8c6
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rdx + rdi], 0
jne 0x14012a8b7
and edi, 0x3fffffff
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x48], r15
test r12b, 0x40
jne 0x14012a8ed
cmp dword [0x14021511c], 0
je 0x14012ae36
cmp edi, 5
jb 0x14012ae36
cmp dword [rdx], 0x656c6966
jne 0x14012ae36
cmp byte [rdx + 4], 0x3a
jne 0x14012ae36
or r12d, 0x40
mov r8d, edi
xor esi, esi
mov dword [rsp + 0x98], r12d
xor r14d, r14d
lea ebp, [rdi + 2]
xor r15d, r15d
xor ecx, ecx
cmp r8, 2
jb 0x14012a954
lea rdx, [rdi - 1]
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 r14, rax
cmp rcx, rdx
jl 0x14012a932
cmp rcx, r8
jge 0x14012a965
xor eax, eax
cmp byte [rcx + rbx], 0x26
sete al
add rbp, rax
call fcn.140127490
test eax, eax
jne 0x14012aeac
lea rcx, [r14 + rsi]
add rcx, rbp
call fcn.1400974c0
mov qword [rsp + 0x28], rax
mov rbp, rax
test rax, rax
je 0x14012aeac
cmp byte [rbx + 5], 0x2f
mov ecx, 5
jne 0x14012aa06
cmp byte [rbx + 6], 0x2f
jne 0x14012aa06
movzx edx, byte [rbx + 7]
lea r8, [rbx + 7]
mov ecx, 7
test dl, dl
je 0x14012aa06
mov rax, r8
cmp dl, 0x2f
je 0x14012a9c6
movzx edx, byte [rax + 1]
inc rax
inc ecx
test dl, dl
jne 0x14012a9b4
cmp ecx, 7
je 0x14012aa06
cmp ecx, 0x10
jne 0x14012a9ea
movabs rax, 0x736f686c61636f6c
cmp rax, qword [r8]
jne 0x14012a9ea
mov eax, reloc.WSOCK32.dll_WSACleanup
cmp al, byte [r8 + 8]
je 0x14012aa06
lea edx, [rcx - 7]
mov dword [rsp + 0x20], 1
lea rcx, str.invalid_uri_authority:__.s
call fcn.140099ac0
jmp 0x14012adb8
movsxd rax, ecx
xor r9d, r9d
movzx edx, byte [rax + rbx]
test dl, dl
je 0x14012ab8c
xor esi, esi
lea r14, [0x1401d81c0]
movsxd rdi, ecx
cmp dl, 0x23
je 0x14012ab7c
inc ecx
cmp dl, 0x25
jne 0x14012aaee
movsxd rax, ecx
movzx r11d, byte [rax + rbx]
test byte [r11 + r14], 8
je 0x14012aaee
movzx r10d, byte [rdi + rbx + 2]
test byte [r10 + r14], 8
je 0x14012aaee
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, [rdi + 3]
and eax, 0xf
add edx, eax
jne 0x14012ab64
movsxd rdx, ecx
add rdx, rbx
movzx eax, byte [rdx]
test al, al
je 0x14012ab6d
nop
cmp al, 0x23
je 0x14012ab6d
test r9d, r9d
jne 0x14012aac1
cmp al, 0x3f
jmp 0x14012aad9
cmp r9d, 1
jne 0x14012aad1
cmp al, 0x3d
je 0x14012ab6d
jmp 0x14012aad7
cmp r9d, 2
jne 0x14012aadf
cmp al, 0x26
je 0x14012ab6d
movzx eax, byte [rdx + 1]
inc rdx
inc ecx
test al, al
jne 0x14012aab0
jmp 0x14012ab6d
cmp r9d, 1
jne 0x14012ab45
cmp dl, 0x26
je 0x14012aafe
cmp dl, 0x3d
jne 0x14012ab64
cmp byte [rsi + rbp - 1], 0
jne 0x14012ab2c
movsxd rax, ecx
movzx edx, byte [rax + rbx]
test dl, dl
je 0x14012ab6d
cmp dl, 0x23
je 0x14012ab6d
cmp byte [rax + rbx - 1], 0x26
je 0x14012ab6d
movzx edx, byte [rax + rbx + 1]
inc rax
inc ecx
test dl, dl
jne 0x14012ab10
jmp 0x14012ab6d
cmp dl, 0x26
jne 0x14012ab3d
inc r15d
mov byte [rsi + rbp], 0
inc rsi
jmp 0x14012ab62
mov r9d, 2
jmp 0x14012ab62
test r9d, r9d
jne 0x14012ab51
cmp dl, 0x3f
je 0x14012ab5c
jmp 0x14012ab64
cmp r9d, 2
jne 0x14012ab64
cmp dl, 0x26
jne 0x14012ab64
mov r9d, 1
xor dl, dl
inc r15d
mov byte [rsi + rbp], dl
inc rsi
movsxd rax, ecx
movzx edx, byte [rax + rbx]
test dl, dl
jne 0x14012aa21
cmp r9d, 1
jne 0x14012ab8c
movsxd rax, r15d
inc r15d
mov byte [rax + rbp], 0
movsxd rax, r15d
mov word [rax + rbp], 0
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rax + rbp], 0
jne 0x14012aba0
and eax, 0x3fffffff
lea r8, [rbp + 1]
add r8, rax
cmp byte [r8], 0
je 0x14012ad85
mov ebx, 0x65
mov r9d, 0x6676
mov r11d, 0x68636163
lea r10d, [rbx + 0xe]
nop dword [rax]
nop dword [rax + rax]
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
inc rdx
cmp byte [r8 + rdx], 0
jne 0x14012abf0
and edx, 0x3fffffff
lea r14d, [rdx + 1]
add r14, r8
jne 0x14012ac0f
xor ebp, ebp
xor edi, edi
jmp 0x14012ac2e
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [r14 + rdi], 0
jne 0x14012ac16
mov ebp, edi
and ebp, 0x3fffffff
and edi, 0x3fffffff
cmp edx, 3
jne 0x14012ac4f
cmp r9w, word [r8]
jne 0x14012ac4f
cmp r10b, byte [r8 + 2]
jne 0x14012ac4f
mov r13, r14
mov qword [rsp + 0x90], r14
jmp 0x14012ad6f
xor esi, esi
xor r13d, r13d
xor r15d, r15d
cmp edx, 5
jne 0x14012ac7b
cmp r11d, dword [r8]
jne 0x14012ac7b
cmp bl, byte [r8 + 4]
jne 0x14012ac7b
mov r15d, 0x60000
lea rsi, str.shared
lea r13, str.cache
cmp edx, 4
jne 0x14012aca3
mov eax, 0x65646f6d
cmp eax, dword [r8]
jne 0x14012aca3
mov r15d, 0x87
lea rsi, [0x140216450]
and r12d, r15d
lea r13, str.access
jmp 0x14012acaf
mov r12d, r15d
test rsi, rsi
je 0x14012ad5f
mov rcx, qword [rsi]
xor ebx, ebx
test rcx, rcx
je 0x14012acf6
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x14012acc0
and eax, 0x3fffffff
cmp ebp, eax
jne 0x14012ace4
mov rdx, rcx
mov r8d, ebp
mov rcx, r14
call fcn.140175d80
test eax, eax
je 0x14012ad15
inc rbx
mov rax, rbx
add rax, rax
mov rcx, qword [rsi + rax*8]
test rcx, rcx
jne 0x14012acb9
mov r8, r14
mov dword [rsp + 0x20], 1
mov rdx, r13
lea rcx, str.no_such__s_mode:__s
call fcn.140099ac0
jmp 0x14012adb8
add rbx, rbx
mov ecx, dword [rsi + rbx*8 + 8]
test ecx, ecx
je 0x14012acf6
mov eax, ecx
btr eax, 7
cmp eax, r12d
jg 0x14012ae1a
mov r12d, dword [rsp + 0x98]
not r15d
mov ebx, 0x65
and r12d, r15d
or r12d, ecx
mov r9d, 0x6676
mov dword [rsp + 0x98], r12d
mov r11d, 0x68636163
lea r10d, [rbx + 0xe]
jmp 0x14012ad67
mov r12d, dword [rsp + 0x98]
mov r13, qword [rsp + 0x90]
lea r8, [r14 + 1]
add r8, rdi
cmp byte [r8], 0
jne 0x14012abe0
mov rbp, qword [rsp + 0x28]
mov rcx, r13
call fcn.140096d10
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
test rax, rax
jne 0x14012ae8a
mov rdx, r13
mov dword [rsp + 0x20], 1
lea rcx, str.no_such_vfs:__s
call fcn.140099ac0
mov rcx, qword [rsp + 0x30]
mov qword [rcx], rax
cmp dword [reloc.WSOCK32.dll_accept], 0
je 0x14012ae7d
mov rcx, qword [0x14021dfc8]
test rcx, rcx
je 0x14012addf
call qword [0x140215198]
mov rcx, qword [rsp + 0x28]
call qword [0x140215150]
dec qword [0x14021dd98]
movsxd rcx, eax
sub qword [0x14021dd50], rcx
mov rcx, qword [rsp + 0x28]
call qword [0x140215140]
mov rcx, qword [0x14021dfc8]
test rcx, rcx
je 0x14012ae88
call qword [0x1402151a8]
jmp 0x14012ae88
mov r8, r14
mov dword [rsp + 0x20], 3
mov rdx, r13
lea rcx, str._s_mode_not_allowed:__s
call fcn.140099ac0
jmp 0x14012adb8
call fcn.140127490
test eax, eax
jne 0x14012aeac
lea ecx, [rdi + 2]
call fcn.1400974c0
mov qword [rsp + 0x28], rax
mov rbp, rax
test rax, rax
je 0x14012aeac
test edi, edi
je 0x14012ae66
mov r8d, edi
mov rdx, rbx
mov rcx, rax
call fcn.1401756a0
and r12d, 0xffffffbf
mov word [rdi + rbp], 0
mov dword [rsp + 0x98], r12d
jmp 0x14012ad85
mov rcx, qword [rsp + 0x28]
call qword [0x140215140]
xor ebp, ebp
mov rcx, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x98]
mov dword [rcx], eax
mov rcx, qword [rsp + 0xb0]
mov eax, dword [rsp + 0x20]
mov qword [rcx], rbp
jmp 0x14012aeb1
mov eax, 7
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x68
pop r13
pop r12
pop rdi
pop rbx
ret