Function at 0x1000d4e90
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
sub rsp, 0x60
xor r11d, r11d
mov r14d, r9d
mov rdi, rdx
mov r12, rcx
cmp rcx, r11
jne 0x1000d4eca
mov ecx, 0x80004005
call fcn.100036264
int3
cmp rdx, r11
jne 0x1000d4eda
mov ecx, 0x80004005
call fcn.100036264
int3
cmp rcx, rdx
jne 0x1000d4eea
mov ecx, 0x80004005
call fcn.100036264
int3
mov bl, byte [r12]
mov ecx, 1
mov r10, rdx
mov qword [rsp + 0x50], rdx
add rdx, r14
mov ebp, r11d
mov dword [rsp + 0x40], r11d
mov esi, ecx
mov r9d, r11d
mov dword [rsp + 0x44], r11d
mov r15d, r11d
lea r13d, [rcx + 0x3f]
mov qword [rsp + 0x48], rdx
cmp bl, r11b
je 0x1000d5350
add r12, rcx
cmp ebp, r14d
cmove esi, r11d
mov qword [rsp + 0xa0], r12
cmp bl, 0x3a
jne 0x1000d4ff2
test r13b, r13b
jns 0x1000d50f3
cmp r15d, r11d
jne 0x1000d50c6
cmp esi, r11d
je 0x1000d4fe9
mov eax, ebp
mov rcx, rdi
mov byte [rdi], r11b
sub rcx, rax
cmp rcx, r10
jb 0x1000d52dd
cmp rcx, rdx
ja 0x1000d52dd
sub rdx, rcx
mov r15d, 1
add rdx, r15
call sub.msvcrt.dll__strlwr_s
xor r11d, r11d
cmp eax, r11d
je 0x1000d4fb5
cmp eax, 0xc
je 0x1000d52d2
cmp eax, 0x16
je 0x1000d52c7
cmp eax, 0x22
je 0x1000d52c7
cmp eax, 0x50
jne 0x1000d52bc
cmp ebp, 4
jne 0x1000d4fe4
lea rdx, [rdi - 4]
lea rcx, [0x100025c50]
mov r8d, ebp
call qword [sym.imp.msvcrt.dll_strncmp]
mov r9d, dword [rsp + 0x44]
xor r11d, r11d
cmp eax, r11d
cmove r9d, r15d
mov dword [rsp + 0x44], r9d
jmp 0x1000d4fe9
mov r9d, dword [rsp + 0x44]
lea r15d, [rbp + 1]
jmp 0x1000d50c6
cmp bl, 0x25
jne 0x1000d50b2
test r13b, 4
je 0x1000d50c6
mov al, byte [r12]
cmp al, r11b
je 0x1000d5343
add r12, rcx
cmp al, 0x30
jb 0x1000d5026
cmp al, 0x39
ja 0x1000d5026
movzx ebx, al
sub bx, 0x30
jmp 0x1000d504b
cmp al, 0x41
jb 0x1000d5037
cmp al, 0x46
ja 0x1000d5037
movzx ebx, al
sub bx, 0x37
jmp 0x1000d504b
cmp al, 0x61
jb 0x1000d5048
cmp al, 0x66
ja 0x1000d5048
movzx ebx, al
sub bx, 0x57
jmp 0x1000d504b
or ebx, 0xffffffff
shl bl, 4
cmp bl, r11b
jl 0x1000d52e8
mov al, byte [r12]
cmp al, r11b
je 0x1000d5343
add r12, rcx
mov qword [rsp + 0xa0], r12
cmp al, 0x30
jb 0x1000d5080
cmp al, 0x39
ja 0x1000d5080
movzx ecx, al
sub cx, 0x30
jmp 0x1000d50a5
cmp al, 0x41
jb 0x1000d5091
cmp al, 0x46
ja 0x1000d5091
movzx ecx, al
sub cx, 0x37
jmp 0x1000d50a5
cmp al, 0x61
jb 0x1000d50a2
cmp al, 0x66
ja 0x1000d50a2
movzx ecx, al
sub cx, 0x57
jmp 0x1000d50a5
or ecx, 0xffffffff
cmp cl, r11b
jl 0x1000d52e8
add bl, cl
jmp 0x1000d50c6
cmp bl, 0x3f
je 0x1000d50bc
cmp bl, 0x23
jne 0x1000d50c6
test r13b, 0x20
je 0x1000d50c6
or r13d, 2
test r13b, r13b
jns 0x1000d50f3
test r13b, 2
jne 0x1000d50f3
cmp bl, 0x5c
jne 0x1000d513a
cmp r15d, r11d
jne 0x1000d50e2
bt r13d, 8
jae 0x1000d50f3
cmp esi, r11d
je 0x1000d50f3
cmp r9d, r11d
je 0x1000d50f1
cmp ebp, 7
jae 0x1000d50f3
mov bl, 0x2f
movzx ecx, bl
cmp ecx, 0x40
jg 0x1000d51a3
cmp ecx, 0x3b
jge 0x1000d51c8
cmp ecx, 0x20
je 0x1000d51c8
cmp ecx, 0x21
jle 0x1000d51ba
cmp ecx, 0x26
jle 0x1000d51c8
cmp ecx, 0x2a
jle 0x1000d51ba
cmp ecx, 0x2c
jle 0x1000d51c8
jmp 0x1000d51ba
cmp bl, 0x2e
jne 0x1000d50f3
cmp ebp, r11d
jbe 0x1000d50f3
test r13b, 8
jne 0x1000d50f3
lea rax, [rsp + 0x40]
mov dword [rsp + 0x30], r15d
lea rdx, [rdi - 1]
lea r9, [rsp + 0xa0]
lea rcx, [rsp + 0xa8]
mov r8d, ebp
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rax
call fcn.1000d4d70
mov rdi, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov ebp, dword [rsp + 0x40]
xor r11d, r11d
cmp eax, r11d
je 0x1000d50f3
lea ecx, [r11 + 1]
jmp 0x1000d528c
cmp ecx, 0x5b
jl 0x1000d51ba
cmp ecx, 0x5e
jle 0x1000d51c8
cmp ecx, 0x60
je 0x1000d51c8
lea eax, [rcx - 0x7b]
cmp eax, 2
jbe 0x1000d51c8
cmp bl, 0x20
jb 0x1000d51c8
cmp bl, 0x7e
jbe 0x1000d52ad
test r13b, 2
jne 0x1000d52ad
test r13b, 0x10
je 0x1000d51dd
cmp bl, 0x20
jne 0x1000d51f3
test r13b, 8
je 0x1000d51e8
cmp bl, 0x2e
je 0x1000d51f3
test r13b, 0x40
jne 0x1000d5210
cmp bl, 0x25
jne 0x1000d5210
mov ecx, 1
cmp esi, r11d
je 0x1000d5286
mov byte [rdi], bl
add rdi, rcx
mov qword [rsp + 0xa8], rdi
jmp 0x1000d5286
lea eax, [r14 - 3]
cmp ebp, eax
sbb eax, eax
and eax, esi
mov esi, eax
cmp eax, r11d
je 0x1000d527e
mov byte [rdi], 0x25
lea rdx, [rdi + 1]
cmp bl, 0x10
jae 0x1000d5233
mov byte [rdx], 0x30
inc rdx
mov r8, qword [rsp + 0x48]
mov r9d, 0x10
sub r8, rdx
call sub.msvcrt.dll__ultoa_s
xor r11d, r11d
cmp eax, r11d
je 0x1000d5272
cmp eax, 0xc
je 0x1000d5338
cmp eax, 0x16
je 0x1000d532d
cmp eax, 0x22
je 0x1000d532d
cmp eax, 0x50
jne 0x1000d5322
add rdi, 3
mov qword [rsp + 0xa8], rdi
add ebp, 2
mov ecx, 1
add ebp, ecx
mov dword [rsp + 0x40], ebp
mov bl, byte [r12]
cmp bl, r11b
je 0x1000d5343
mov rdx, qword [rsp + 0x48]
mov r9d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x50]
jmp 0x1000d4f25
cmp esi, r11d
je 0x1000d5281
mov ecx, 1
jmp 0x1000d5201
mov ecx, 0x80004005
call fcn.100036264
int3
mov ecx, 0x80070057
call fcn.100036264
int3
mov ecx, 0x8007000e
call fcn.100036264
int3
mov ecx, 0x80004005
call fcn.100036264
int3
mov esi, r11d
mov r8, qword [rsp + 0xb0]
cmp r8, r11
je 0x1000d52fe
lea ecx, [rbp + 1]
mov dword [r8], ecx
mov rbx, qword [rsp + 0xb8]
lea ecx, [rbp + 1]
cmp ecx, r14d
cmova esi, r11d
mov eax, esi
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.100036264
int3
mov ecx, 0x80070057
call fcn.100036264
int3
mov ecx, 0x8007000e
call fcn.100036264
int3
cmp esi, r11d
je 0x1000d52eb
mov r8, qword [rsp + 0xb0]
cmp ebp, r14d
jae 0x1000d52f3
mov byte [rdi], r11b
jmp 0x1000d52f3