Function at 0x14009bb28
Capabilities:
Parse credit card information

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x68
xor ebx, ebx
mov rsi, rdx
mov r12, rcx
test rcx, rcx
je 0x14009bf3e
test rdx, rdx
je 0x14009bf49
cmp rcx, rdx
je 0x14009bf54
mov dil, byte [r12]
lea r15d, [rbx + 1]
mov r10, rdx
mov qword [rbp - 0x18], rdx
mov edx, r9d
lea r13d, [rbx + 0x40]
add rdx, r10
mov dword [rbp + 0x68], ebx
mov dword [rbp - 0x28], ebx
mov r14d, ebx
mov dword [rbp - 0x24], ebx
mov r11d, ebx
mov qword [rbp - 0x20], rdx
mov ecx, ebx
test dil, dil
je 0x14009bf08
inc r12
cmp r14d, r9d
mov qword [rbp + 0x48], r12
cmove r15d, ebx
cmp dil, 0x3a
jne 0x14009bc65
test r13b, r13b
jns 0x14009bd49
test ecx, ecx
jne 0x14009bd49
test r15d, r15d
je 0x14009bc59
mov eax, r14d
mov rcx, rsi
sub rcx, rax
mov byte [rsi], bl
cmp rcx, r10
jb 0x14009bf80
cmp rcx, rdx
ja 0x14009bf80
sub rdx, rcx
inc rdx
call qword [sym.imp.msvcrt.dll__strlwr_s]
test eax, eax
je 0x14009bc27
cmp eax, 0xc
je 0x14009bf75
cmp eax, 0x16
je 0x14009bf6a
cmp eax, 0x22
je 0x14009bf6a
cmp eax, 0x50
jne 0x14009bf5f
cmp r14d, 4
jne 0x14009bc55
lea rdx, [rsi - 4]
mov r8d, r14d
lea rcx, str.file
call qword [sym.imp.msvcrt.dll_strncmp]
mov r11d, dword [rbp - 0x28]
test eax, eax
lea eax, [r14 - 3]
cmove r11d, eax
mov dword [rbp - 0x28], r11d
jmp 0x14009bc59
mov r11d, dword [rbp - 0x28]
lea ecx, [r14 + 1]
mov dword [rbp - 0x24], ecx
jmp 0x14009bd49
cmp dil, 0x25
jne 0x14009bd33
test r13b, 4
je 0x14009bd49
cmp byte [r12], bl
je 0x14009bf04
mov al, byte [r12]
lea rcx, [r12 + 1]
sub al, 0x30
cmp al, 9
ja 0x14009bc9d
movzx edi, byte [r12]
sub di, 0x30
jmp 0x14009bcca
mov al, byte [r12]
sub al, 0x41
cmp al, 5
ja 0x14009bcb2
movzx edi, byte [r12]
sub di, 0x37
jmp 0x14009bcca
mov al, byte [r12]
sub al, 0x61
cmp al, 5
ja 0x14009bcc7
movzx edi, byte [r12]
sub di, 0x57
jmp 0x14009bcca
or edi, 0xffffffff
shl dil, 4
test dil, dil
js 0x14009befb
cmp byte [rcx], bl
je 0x14009bf04
mov al, byte [rcx]
lea r12, [rcx + 1]
sub al, 0x30
mov qword [rbp + 0x48], r12
cmp al, 9
ja 0x14009bcf8
movzx eax, byte [rcx]
sub ax, 0x30
jmp 0x14009bd1d
mov al, byte [rcx]
sub al, 0x41
cmp al, 5
ja 0x14009bd09
movzx eax, byte [rcx]
sub ax, 0x37
jmp 0x14009bd1d
mov al, byte [rcx]
sub al, 0x61
cmp al, 5
ja 0x14009bd1a
movzx eax, byte [rcx]
sub ax, 0x57
jmp 0x14009bd1d
or eax, 0xffffffff
test al, al
js 0x14009befb
add dil, al
je 0x14009befb
mov ecx, dword [rbp - 0x24]
jmp 0x14009bd49
cmp dil, 0x3f
je 0x14009bd3f
cmp dil, 0x23
jne 0x14009bd49
test r13b, 0x20
je 0x14009bd49
or r13d, 2
mov eax, r13d
and al, 0x82
cmp al, 0x80
jne 0x14009bdc3
cmp dil, 0x5c
jne 0x14009bd78
test ecx, ecx
jne 0x14009bd63
bt r13d, 8
jae 0x14009bdc3
test r15d, r15d
je 0x14009bdc3
test r11d, r11d
je 0x14009bd73
cmp r14d, 7
jae 0x14009bdc3
mov dil, 0x2f
jmp 0x14009bdc3
cmp dil, 0x2e
jne 0x14009bdc3
test r14d, r14d
je 0x14009bdc3
test r13b, 8
jne 0x14009bdc3
mov dword [rsp + 0x30], ecx
lea rax, [rbp + 0x68]
mov dword [rsp + 0x28], r13d
lea rcx, [rbp + 0x50]
lea rdx, [rsi - 1]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x48]
mov r8d, r14d
call fcn.14009b9d4
mov rsi, qword [rbp + 0x50]
mov r12, qword [rbp + 0x48]
mov r14d, dword [rbp + 0x68]
test eax, eax
jne 0x14009becb
movzx ecx, dil
cmp ecx, 0x40
ja 0x14009bde3
cmp ecx, 0x3a
ja 0x14009be05
movabs rdx, 0x7ffe782ffffffff
bt rdx, rcx
jae 0x14009be05
jmp 0x14009bdfa
cmp ecx, 0x5b
jb 0x14009bdfa
cmp ecx, 0x5e
jbe 0x14009be05
cmp ecx, 0x60
je 0x14009be05
lea eax, [rcx - 0x7b]
cmp eax, 2
jbe 0x14009be05
lea eax, [rdi - 0x20]
cmp al, 0x5e
jbe 0x14009beec
test r13b, 2
jne 0x14009beec
test r13b, 0x10
je 0x14009be1b
cmp dil, 0x20
jne 0x14009be33
test r13b, 8
je 0x14009be27
cmp dil, 0x2e
je 0x14009be33
test r13b, 0x40
jne 0x14009be4d
cmp dil, 0x25
jne 0x14009be4d
mov eax, 1
test r15d, r15d
je 0x14009bec4
mov byte [rsi], dil
add rsi, rax
mov qword [rbp + 0x50], rsi
jmp 0x14009bec4
mov eax, dword [rbp + 0x60]
add eax, 0xfffffffd
cmp r14d, eax
jae 0x14009be5d
test dil, dil
jne 0x14009be60
mov r15d, ebx
test r15d, r15d
je 0x14009bebb
mov byte [rsi], 0x25
lea rdx, [rsi + 1]
cmp dil, 0x10
jae 0x14009be78
mov byte [rdx], 0x30
inc rdx
mov r8, qword [rbp - 0x20]
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetDim
sub r8, rdx
call qword [sym.imp.msvcrt.dll__ultoa_s]
test eax, eax
je 0x14009beb3
cmp eax, 0xc
je 0x14009bfa1
cmp eax, 0x16
je 0x14009bf96
cmp eax, 0x22
je 0x14009bf96
cmp eax, 0x50
jne 0x14009bf8b
add rsi, 3
mov qword [rbp + 0x50], rsi
add r14d, 2
mov eax, 1
add r14d, eax
mov dword [rbp + 0x68], r14d
mov dil, byte [r12]
mov r9d, dword [rbp + 0x60]
test dil, dil
je 0x14009bf04
mov ecx, dword [rbp - 0x24]
mov rdx, qword [rbp - 0x20]
mov r10, qword [rbp - 0x18]
mov r11d, dword [rbp - 0x28]
jmp 0x14009bba4
test r15d, r15d
je 0x14009bebf
mov eax, 1
jmp 0x14009be41
mov r8, qword [rbp + 0x58]
mov r15d, ebx
jmp 0x14009bf14
mov r8, qword [rbp + 0x58]
test r15d, r15d
je 0x14009bf14
cmp r14d, r9d
jae 0x14009bf14
mov byte [rsi], bl
test r8, r8
je 0x14009bf20
lea ecx, [r14 + 1]
mov dword [r8], ecx
lea ecx, [r14 + 1]
cmp ecx, r9d
cmovbe ebx, r15d
mov eax, ebx
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.140004f64
int3
mov ecx, 0x80004005
call fcn.140004f64
int3
mov ecx, 0x80004005
call fcn.140004f64
int3
mov ecx, 0x80004005
call fcn.140004f64
int3
mov ecx, 0x80070057
call fcn.140004f64
int3
mov ecx, 0x8007000e
call fcn.140004f64
int3
mov ecx, 0x80004005
call fcn.140004f64
int3
mov ecx, 0x80004005
call fcn.140004f64
int3
mov ecx, 0x80070057
call fcn.140004f64
int3
mov ecx, 0x8007000e
call fcn.140004f64
int3