Function at 0x1000d522c
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 0x1000d5266
mov ecx, 0x80004005
call fcn.100036284
int3
cmp rdx, r11
jne 0x1000d5276
mov ecx, 0x80004005
call fcn.100036284
int3
cmp rcx, rdx
jne 0x1000d5286
mov ecx, 0x80004005
call fcn.100036284
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 0x1000d56ec
add r12, rcx
cmp ebp, r14d
cmove esi, r11d
mov qword [rsp + 0xa0], r12
cmp bl, 0x3a
jne 0x1000d538e
test r13b, r13b
jns 0x1000d548f
cmp r15d, r11d
jne 0x1000d5462
cmp esi, r11d
je 0x1000d5385
mov eax, ebp
mov rcx, rdi
mov byte [rdi], r11b
sub rcx, rax
cmp rcx, r10
jb 0x1000d5679
cmp rcx, rdx
ja 0x1000d5679
sub rdx, rcx
mov r15d, 1
add rdx, r15
call sub.msvcrt.dll__strlwr_s
xor r11d, r11d
cmp eax, r11d
je 0x1000d5351
cmp eax, 0xc
je 0x1000d566e
cmp eax, 0x16
je 0x1000d5663
cmp eax, 0x22
je 0x1000d5663
cmp eax, 0x50
jne 0x1000d5658
cmp ebp, 4
jne 0x1000d5380
lea rdx, [rdi - 4]
lea rcx, [0x100025c60]
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 0x1000d5385
mov r9d, dword [rsp + 0x44]
lea r15d, [rbp + 1]
jmp 0x1000d5462
cmp bl, 0x25
jne 0x1000d544e
test r13b, 4
je 0x1000d5462
mov al, byte [r12]
cmp al, r11b
je 0x1000d56df
add r12, rcx
cmp al, 0x30
jb 0x1000d53c2
cmp al, 0x39
ja 0x1000d53c2
movzx ebx, al
sub bx, 0x30
jmp 0x1000d53e7
cmp al, 0x41
jb 0x1000d53d3
cmp al, 0x46
ja 0x1000d53d3
movzx ebx, al
sub bx, 0x37
jmp 0x1000d53e7
cmp al, 0x61
jb 0x1000d53e4
cmp al, 0x66
ja 0x1000d53e4
movzx ebx, al
sub bx, 0x57
jmp 0x1000d53e7
or ebx, 0xffffffff
shl bl, 4
cmp bl, r11b
jl 0x1000d5684
mov al, byte [r12]
cmp al, r11b
je 0x1000d56df
add r12, rcx
mov qword [rsp + 0xa0], r12
cmp al, 0x30
jb 0x1000d541c
cmp al, 0x39
ja 0x1000d541c
movzx ecx, al
sub cx, 0x30
jmp 0x1000d5441
cmp al, 0x41
jb 0x1000d542d
cmp al, 0x46
ja 0x1000d542d
movzx ecx, al
sub cx, 0x37
jmp 0x1000d5441
cmp al, 0x61
jb 0x1000d543e
cmp al, 0x66
ja 0x1000d543e
movzx ecx, al
sub cx, 0x57
jmp 0x1000d5441
or ecx, 0xffffffff
cmp cl, r11b
jl 0x1000d5684
add bl, cl
jmp 0x1000d5462
cmp bl, 0x3f
je 0x1000d5458
cmp bl, 0x23
jne 0x1000d5462
test r13b, 0x20
je 0x1000d5462
or r13d, 2
test r13b, r13b
jns 0x1000d548f
test r13b, 2
jne 0x1000d548f
cmp bl, 0x5c
jne 0x1000d54d6
cmp r15d, r11d
jne 0x1000d547e
bt r13d, 8
jae 0x1000d548f
cmp esi, r11d
je 0x1000d548f
cmp r9d, r11d
je 0x1000d548d
cmp ebp, 7
jae 0x1000d548f
mov bl, 0x2f
movzx ecx, bl
cmp ecx, 0x40
jg 0x1000d553f
cmp ecx, 0x3b
jge 0x1000d5564
cmp ecx, 0x20
je 0x1000d5564
cmp ecx, 0x21
jle 0x1000d5556
cmp ecx, 0x26
jle 0x1000d5564
cmp ecx, 0x2a
jle 0x1000d5556
cmp ecx, 0x2c
jle 0x1000d5564
jmp 0x1000d5556
cmp bl, 0x2e
jne 0x1000d548f
cmp ebp, r11d
jbe 0x1000d548f
test r13b, 8
jne 0x1000d548f
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.1000d510c
mov rdi, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov ebp, dword [rsp + 0x40]
xor r11d, r11d
cmp eax, r11d
je 0x1000d548f
lea ecx, [r11 + 1]
jmp 0x1000d5628
cmp ecx, 0x5b
jl 0x1000d5556
cmp ecx, 0x5e
jle 0x1000d5564
cmp ecx, 0x60
je 0x1000d5564
lea eax, [rcx - 0x7b]
cmp eax, 2
jbe 0x1000d5564
cmp bl, 0x20
jb 0x1000d5564
cmp bl, 0x7e
jbe 0x1000d5649
test r13b, 2
jne 0x1000d5649
test r13b, 0x10
je 0x1000d5579
cmp bl, 0x20
jne 0x1000d558f
test r13b, 8
je 0x1000d5584
cmp bl, 0x2e
je 0x1000d558f
test r13b, 0x40
jne 0x1000d55ac
cmp bl, 0x25
jne 0x1000d55ac
mov ecx, 1
cmp esi, r11d
je 0x1000d5622
mov byte [rdi], bl
add rdi, rcx
mov qword [rsp + 0xa8], rdi
jmp 0x1000d5622
lea eax, [r14 - 3]
cmp ebp, eax
sbb eax, eax
and eax, esi
mov esi, eax
cmp eax, r11d
je 0x1000d561a
mov byte [rdi], 0x25
lea rdx, [rdi + 1]
cmp bl, 0x10
jae 0x1000d55cf
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 0x1000d560e
cmp eax, 0xc
je 0x1000d56d4
cmp eax, 0x16
je 0x1000d56c9
cmp eax, 0x22
je 0x1000d56c9
cmp eax, 0x50
jne 0x1000d56be
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 0x1000d56df
mov rdx, qword [rsp + 0x48]
mov r9d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x50]
jmp 0x1000d52c1
cmp esi, r11d
je 0x1000d561d
mov ecx, 1
jmp 0x1000d559d
mov ecx, 0x80004005
call fcn.100036284
int3
mov ecx, 0x80070057
call fcn.100036284
int3
mov ecx, 0x8007000e
call fcn.100036284
int3
mov ecx, 0x80004005
call fcn.100036284
int3
mov esi, r11d
mov r8, qword [rsp + 0xb0]
cmp r8, r11
je 0x1000d569a
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.100036284
int3
mov ecx, 0x80070057
call fcn.100036284
int3
mov ecx, 0x8007000e
call fcn.100036284
int3
cmp esi, r11d
je 0x1000d5687
mov r8, qword [rsp + 0xb0]
cmp ebp, r14d
jae 0x1000d568f
mov byte [rdi], r11b
jmp 0x1000d568f