Function at 0x6ad580
Capabilities:
Parse credit card information

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rax, qword [rcx + 0xb0]
mov rdi, qword [rcx + 0xc0]
lea rdx, [rax + 1]
mov qword [rcx + 0xb0], rdx
movsx r12d, byte [rax]
mov rbx, rcx
movzx ebp, r12b
mov esi, r12d
movsx edx, byte [rdi + rbp + 0x139]
test dl, dl
jne 0x6ad5e5
mov rax, qword [rdi]
lea rcx, [0x0060ffa0]
mov edx, r12d
mov r9, qword [rax + 0x40]
mov eax, r12d
cmp r9, rcx
jne 0x6ad820
cmp al, 0x20
je 0x6ad5e5
mov byte [rdi + rbp + 0x139], al
mov rcx, qword [rbx + 0xa0]
call sub.msvcrt.dll_strchr
test rax, rax
je 0x6ad870
cmp sil, 0x5c
je 0x6ad6e0
cmp sil, 0x28
je 0x6ad6b0
cmp sil, 0x29
je 0x6ad808
cmp sil, 0x5b
je 0x6ad838
cmp sil, 0x7b
je 0x6ad7b8
mov eax, esi
movsx edx, sil
and eax, 0xffffffdf
cmp al, 0x5d
je 0x6ad8d0
mov rbp, qword [rbx + 0xc0]
movzx r12d, sil
mov rdi, rbx
movzx eax, byte [rbp + r12 + 0x139]
test al, al
jne 0x6ad900
mov rax, qword [rbp]
lea rcx, [0x0060ffa0]
mov rax, qword [rax + 0x40]
cmp rax, rcx
jne 0x6ad8c0
test sil, sil
je 0x6ad681
mov byte [rbp + r12 + 0x139], sil
movzx eax, byte [rbx]
test al, al
jne 0x6ad69c
jmp 0x6ad6cb
movzx eax, byte [rdi + 8]
add rdi, 8
test al, al
je 0x6ad6cb
cmp sil, al
jne 0x6ad690
mov eax, dword [rdi + 4]
mov dword [rbx + 0x90], eax
jmp 0x6ad6cb
mov eax, dword [rbx + 0x8c]
test al, 0x10
jne 0x6ad730
test al, 2
setne al
movzx eax, al
add eax, 5
mov dword [rbx + 0x90], eax
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rax, qword [rbx + 0xb0]
cmp rax, qword [rbx + 0xb8]
je 0x6ad978
test dword [rbx + 0x8c], 0x120
je 0x6ad7d8
movzx edx, byte [rax]
lea ecx, [rdx - 0x28]
cmp cl, 1
jbe 0x6ad718
cmp dl, 0x7b
jne 0x6ad7d8
lea rdx, [rax + 1]
mov qword [rbx + 0xb0], rdx
movzx esi, byte [rax]
jmp 0x6ad604
mov rdx, qword [rbx + 0xb0]
cmp byte [rdx], 0x3f
jne 0x6ad6ba
lea rax, [rdx + 1]
mov qword [rbx + 0xb0], rax
cmp rax, qword [rbx + 0xb8]
je 0x6ad989
movzx eax, byte [rdx + 1]
cmp al, 0x3a
je 0x6ad910
cmp al, 0x3d
je 0x6ad92a
cmp al, 0x21
jne 0x6ad967
add rdx, 2
mov dword [rsp + 0x20], 0x6e
mov r8, qword [rbx + 0xd0]
lea rcx, [rbx + 0xc8]
mov qword [rbx + 0xb0], rdx
mov r9d, 1
xor edx, edx
mov dword [rbx + 0x90], 7
call fcn.00691c70
jmp 0x6ad6cb
mov dword [rbx + 0x88], 1
mov dword [rbx + 0x90], 0xc
jmp 0x6ad6cb
mov rcx, qword [rbx + 0xf0]
mov rax, qword [rbx + 0xe8]
add rcx, rbx
test al, 1
je 0x6ad7f5
mov rdx, qword [rcx]
mov rax, qword [rdx + rax - 1]
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp rax
mov dword [rbx + 0x90], 8
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov r8d, 0x20
mov rcx, rdi
call r9
movsx edx, al
jmp 0x6ad5da
mov byte [rbx + 0xa8], 1
mov rax, qword [rbx + 0xb0]
mov dword [rbx + 0x88], 2
cmp rax, qword [rbx + 0xb8]
je 0x6ad85e
cmp byte [rax], 0x5e
je 0x6ad8a0
mov dword [rbx + 0x90], 9
jmp 0x6ad6cb
mov dword [rsp + 0x20], r12d
mov r8, qword [rbx + 0xd0]
lea rcx, [rbx + 0xc8]
xor edx, edx
mov dword [rbx + 0x90], 1
mov r9d, 1
call fcn.00691c70
jmp 0x6ad6cb
mov dword [rbx + 0x90], 0xa
add rax, 1
mov qword [rbx + 0xb0], rax
jmp 0x6ad6cb
xor r8d, r8d
mov rcx, rbp
call rax
mov esi, eax
jmp 0x6ad674
mov dword [rsp + 0x20], edx
mov r8, qword [rbx + 0xd0]
lea rcx, [rbx + 0xc8]
xor edx, edx
mov dword [rbx + 0x90], 1
mov r9d, 1
call fcn.00691c70
jmp 0x6ad6cb
mov esi, eax
jmp 0x6ad681
mov dword [rbx + 0x90], 6
add rdx, 2
mov qword [rbx + 0xb0], rdx
jmp 0x6ad6cb
add rdx, 2
mov dword [rsp + 0x20], 0x70
mov r8, qword [rbx + 0xd0]
lea rcx, [rbx + 0xc8]
mov qword [rbx + 0xb0], rdx
mov r9d, 1
xor edx, edx
mov dword [rbx + 0x90], 7
call fcn.00691c70
jmp 0x6ad6cb
lea rdx, [0x00708b68]
mov ecx, 5
call fcn.006be7b0
lea rdx, [0x00708a30]
mov ecx, 2
call fcn.006be7b0
lea rdx, [0x00708b30]
mov ecx, 5
call fcn.006be7b0
nop
nop
nop
nop
nop
nop