Function at 0x14009b86c
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
xor r11d, r11d
mov r13d, r9d
mov rdi, rdx
mov r15, rcx
test rcx, rcx
je 0x14009bc7b
test rdx, rdx
je 0x14009bc86
cmp rcx, rdx
je 0x14009bc91
mov bl, byte [r15]
lea esi, [r11 + 1]
mov r10, rdx
mov qword [rbp - 0x10], rdx
add rdx, r13
mov dword [rbp + 0x60], r11d
mov dword [rbp - 0x20], r11d
mov ecx, r11d
mov dword [rbp - 0x1c], ecx
mov r14d, r11d
mov qword [rbp - 0x18], rdx
mov r9d, r11d
lea r12d, [r11 + 0x40]
test bl, bl
je 0x14009bc71
mov eax, esi
add r15, rax
cmp r14d, r13d
mov qword [rbp + 0x40], r15
cmove esi, r11d
cmp bl, 0x3a
jne 0x14009b9b1
test r12b, r12b
jns 0x14009ba83
test ecx, ecx
jne 0x14009ba83
test esi, esi
je 0x14009b9a5
mov eax, r14d
mov rcx, rdi
sub rcx, rax
mov byte [rdi], r11b
cmp rcx, r10
jb 0x14009bcbd
cmp rcx, rdx
ja 0x14009bcbd
sub rdx, rcx
inc rdx
call qword [sym.imp.msvcrt.dll__strlwr_s]
xor r11d, r11d
test eax, eax
je 0x14009b970
cmp eax, 0xc
je 0x14009bcb2
cmp eax, 0x16
je 0x14009bca7
cmp eax, 0x22
je 0x14009bca7
cmp eax, 0x50
jne 0x14009bc9c
cmp r14d, 4
jne 0x14009b9a1
lea rdx, [rdi - 4]
mov r8d, r14d
lea rcx, str.file
call qword [sym.imp.msvcrt.dll_strncmp]
mov r9d, dword [rbp - 0x20]
lea ecx, [r14 - 3]
xor r11d, r11d
test eax, eax
cmove r9d, ecx
mov dword [rbp - 0x20], r9d
jmp 0x14009b9a5
mov r9d, dword [rbp - 0x20]
lea ecx, [r14 + 1]
mov dword [rbp - 0x1c], ecx
jmp 0x14009ba83
cmp bl, 0x25
jne 0x14009ba6f
test r12b, 4
je 0x14009ba83
mov cl, byte [r15]
test cl, cl
je 0x14009bc69
mov edx, 1
lea eax, [rcx - 0x30]
add r15, rdx
cmp al, 9
ja 0x14009b9e7
movzx ebx, cl
sub bx, 0x30
jmp 0x14009ba0a
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x14009b9f7
movzx ebx, cl
sub bx, 0x37
jmp 0x14009ba0a
lea eax, [rcx - 0x61]
cmp al, 5
ja 0x14009ba07
movzx ebx, cl
sub bx, 0x57
jmp 0x14009ba0a
or ebx, 0xffffffff
shl bl, 4
test bl, bl
js 0x14009bc31
mov cl, byte [r15]
test cl, cl
je 0x14009bc69
add r15, rdx
lea eax, [rcx - 0x30]
mov qword [rbp + 0x40], r15
cmp al, 9
ja 0x14009ba37
movzx eax, cl
sub ax, 0x30
jmp 0x14009ba5a
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x14009ba47
movzx eax, cl
sub ax, 0x37
jmp 0x14009ba5a
lea eax, [rcx - 0x61]
cmp al, 5
ja 0x14009ba57
movzx eax, cl
sub ax, 0x57
jmp 0x14009ba5a
or eax, 0xffffffff
test al, al
js 0x14009bc31
add bl, al
je 0x14009bc31
mov ecx, dword [rbp - 0x1c]
jmp 0x14009ba83
cmp bl, 0x3f
je 0x14009ba79
cmp bl, 0x23
jne 0x14009ba83
test r12b, 0x20
je 0x14009ba83
or r12d, 2
mov eax, r12d
and al, 0x82
cmp al, 0x80
jne 0x14009baad
cmp bl, 0x5c
jne 0x14009bad5
test ecx, ecx
jne 0x14009ba9c
bt r12d, 8
jae 0x14009baad
test esi, esi
je 0x14009baad
test r9d, r9d
je 0x14009baab
cmp r14d, 7
jae 0x14009baad
mov bl, 0x2f
movzx ecx, bl
cmp ecx, 0x40
jg 0x14009bb27
cmp ecx, 0x3b
jge 0x14009bb49
cmp ecx, 0x2c
ja 0x14009bb3e
movabs rdx, 0x187d00000000
bt rdx, rcx
jb 0x14009bb49
jmp 0x14009bb3e
cmp bl, 0x2e
jne 0x14009baad
test r14d, r14d
je 0x14009baad
test r12b, 8
jne 0x14009baad
mov dword [rsp + 0x30], ecx
lea rax, [rbp + 0x60]
mov dword [rsp + 0x28], r12d
lea rcx, [rbp + 0x48]
lea rdx, [rdi - 1]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x40]
mov r8d, r14d
call fcn.14009b73c
mov rdi, qword [rbp + 0x48]
xor r11d, r11d
mov r15, qword [rbp + 0x40]
mov r14d, dword [rbp + 0x60]
test eax, eax
je 0x14009baad
lea eax, [r11 + 1]
jmp 0x14009bc08
cmp ecx, 0x5b
jl 0x14009bb3e
cmp ecx, 0x5e
jle 0x14009bb49
cmp ecx, 0x60
je 0x14009bb49
lea eax, [rcx - 0x7b]
cmp eax, 2
jbe 0x14009bb49
lea eax, [rbx - 0x20]
cmp al, 0x5e
jbe 0x14009bc23
test r12b, 2
jne 0x14009bc23
test r12b, 0x10
je 0x14009bb5e
cmp bl, 0x20
jne 0x14009bb74
test r12b, 8
je 0x14009bb69
cmp bl, 0x2e
je 0x14009bb74
test r12b, 0x40
jne 0x14009bb8c
cmp bl, 0x25
jne 0x14009bb8c
mov eax, 1
test esi, esi
je 0x14009bc01
mov byte [rdi], bl
add rdi, rax
mov qword [rbp + 0x48], rdi
jmp 0x14009bc01
lea eax, [r13 - 3]
cmp r14d, eax
jae 0x14009bb99
test bl, bl
jne 0x14009bb9c
mov esi, r11d
test esi, esi
je 0x14009bbf8
mov byte [rdi], 0x25
lea rdx, [rdi + 1]
cmp bl, 0x10
jae 0x14009bbb2
mov byte [rdx], 0x30
inc rdx
mov r8, qword [rbp - 0x18]
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetDim
sub r8, rdx
call qword [sym.imp.msvcrt.dll__ultoa_s]
xor r11d, r11d
test eax, eax
je 0x14009bbf0
cmp eax, 0xc
je 0x14009bcde
cmp eax, 0x16
je 0x14009bcd3
cmp eax, 0x22
je 0x14009bcd3
cmp eax, 0x50
jne 0x14009bcc8
add rdi, 3
mov qword [rbp + 0x48], rdi
add r14d, 2
mov eax, 1
add r14d, eax
mov dword [rbp + 0x60], r14d
mov bl, byte [r15]
test bl, bl
je 0x14009bc69
mov ecx, dword [rbp - 0x1c]
mov rdx, qword [rbp - 0x18]
mov r9d, dword [rbp - 0x20]
mov r10, qword [rbp - 0x10]
jmp 0x14009b8eb
test esi, esi
je 0x14009bbfc
mov eax, 1
jmp 0x14009bb81
mov esi, r11d
mov r8, qword [rbp + 0x50]
test r8, r8
je 0x14009bc44
lea ecx, [r14 + 1]
mov dword [r8], ecx
mov rbx, qword [rsp + 0xb8]
lea ecx, [r14 + 1]
cmp ecx, r13d
cmova esi, r11d
mov eax, esi
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test esi, esi
je 0x14009bc34
mov r8, qword [rbp + 0x50]
cmp r14d, r13d
jae 0x14009bc38
mov byte [rdi], r11b
jmp 0x14009bc38
mov ecx, 0x80004005
call fcn.14000507c
int3
mov ecx, 0x80004005
call fcn.14000507c
int3
mov ecx, 0x80004005
call fcn.14000507c
int3
mov ecx, 0x80004005
call fcn.14000507c
int3
mov ecx, 0x80070057
call fcn.14000507c
int3
mov ecx, 0x8007000e
call fcn.14000507c
int3
mov ecx, 0x80004005
call fcn.14000507c
int3
mov ecx, 0x80004005
call fcn.14000507c
int3
mov ecx, 0x80070057
call fcn.14000507c
int3
mov ecx, 0x8007000e
call fcn.14000507c
int3