Function at 0x100049cc0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
xor r10d, r10d
mov r15, r8
mov rdi, rdx
mov r12, rcx
cmp rcx, r10
jne 0x100049cf5
mov ecx, 0x80004005
call fcn.1000242f0
int3
cmp rdx, r10
jne 0x100049d05
mov ecx, 0x80004005
call fcn.1000242f0
int3
cmp rcx, rdx
jne 0x100049d15
mov ecx, 0x80004005
call fcn.1000242f0
int3
mov bl, byte [rcx]
mov r11d, 1
mov r9, rdx
mov qword [rsp + 0x50], rdx
add rdx, 0x823
mov ebp, r10d
mov dword [rsp + 0x40], r10d
mov esi, r11d
mov r8d, r10d
mov dword [rsp + 0x44], r10d
mov r14d, r10d
lea r13d, [r11 + 0x1f]
mov qword [rsp + 0x48], rdx
cmp bl, r10b
je 0x10004a146
add r12, r11
cmp ebp, 0x823
cmove esi, r10d
mov qword [rsp + 0xa0], r12
cmp bl, 0x3a
jne 0x100049e21
test r13b, r13b
jns 0x100049f22
cmp r14d, r10d
jne 0x100049ef5
cmp esi, r10d
je 0x100049e18
mov eax, ebp
mov rcx, rdi
mov byte [rdi], r10b
sub rcx, rax
cmp rcx, r9
jb 0x10004a108
cmp rcx, rdx
ja 0x10004a108
sub rdx, rcx
add rdx, r11
call sub.msvcrt.dll__strlwr_s
xor r10d, r10d
cmp eax, r10d
je 0x100049de1
cmp eax, 0xc
je 0x10004a0fd
cmp eax, 0x16
je 0x10004a0f2
cmp eax, 0x22
je 0x10004a0f2
cmp eax, 0x50
jne 0x10004a0e7
cmp ebp, 4
jne 0x100049e13
lea rdx, [rdi - 4]
lea rcx, [0x100072128]
mov r8d, ebp
call qword [sym.imp.msvcrt.dll_strncmp]
mov r8d, dword [rsp + 0x44]
xor r10d, r10d
cmp eax, r10d
lea eax, [rbp - 3]
cmove r8d, eax
mov dword [rsp + 0x44], r8d
jmp 0x100049e18
mov r8d, dword [rsp + 0x44]
lea r14d, [rbp + 1]
jmp 0x100049ef5
cmp bl, 0x25
jne 0x100049ee1
test r13b, 4
je 0x100049ef5
mov al, byte [r12]
cmp al, r10b
je 0x10004a139
add r12, r11
cmp al, 0x30
jb 0x100049e55
cmp al, 0x39
ja 0x100049e55
movzx ebx, al
sub bx, 0x30
jmp 0x100049e7a
cmp al, 0x41
jb 0x100049e66
cmp al, 0x46
ja 0x100049e66
movzx ebx, al
sub bx, 0x37
jmp 0x100049e7a
cmp al, 0x61
jb 0x100049e77
cmp al, 0x66
ja 0x100049e77
movzx ebx, al
sub bx, 0x57
jmp 0x100049e7a
or ebx, 0xffffffff
shl bl, 4
cmp bl, r10b
jl 0x10004a113
mov al, byte [r12]
cmp al, r10b
je 0x10004a139
add r12, r11
mov qword [rsp + 0xa0], r12
cmp al, 0x30
jb 0x100049eaf
cmp al, 0x39
ja 0x100049eaf
movzx ecx, al
sub cx, 0x30
jmp 0x100049ed4
cmp al, 0x41
jb 0x100049ec0
cmp al, 0x46
ja 0x100049ec0
movzx ecx, al
sub cx, 0x37
jmp 0x100049ed4
cmp al, 0x61
jb 0x100049ed1
cmp al, 0x66
ja 0x100049ed1
movzx ecx, al
sub cx, 0x57
jmp 0x100049ed4
or ecx, 0xffffffff
cmp cl, r10b
jl 0x10004a113
add bl, cl
jmp 0x100049ef5
cmp bl, 0x3f
je 0x100049eeb
cmp bl, 0x23
jne 0x100049ef5
test r13b, 0x20
je 0x100049ef5
or r13d, 2
test r13b, r13b
jns 0x100049f22
test r13b, 2
jne 0x100049f22
cmp bl, 0x5c
jne 0x100049f69
cmp r14d, r10d
jne 0x100049f11
bt r13d, 8
jae 0x100049f22
cmp esi, r10d
je 0x100049f22
cmp r8d, r10d
je 0x100049f20
cmp ebp, 7
jae 0x100049f22
mov bl, 0x2f
movzx ecx, bl
cmp ecx, 0x40
jg 0x100049fd2
cmp ecx, 0x3b
jge 0x100049ff7
cmp ecx, 0x20
je 0x100049ff7
cmp ecx, 0x21
jle 0x100049fe9
cmp ecx, 0x26
jle 0x100049ff7
cmp ecx, 0x2a
jle 0x100049fe9
cmp ecx, 0x2c
jle 0x100049ff7
jmp 0x100049fe9
cmp bl, 0x2e
jne 0x100049f22
cmp ebp, r10d
jbe 0x100049f22
test r13b, 8
jne 0x100049f22
lea rax, [rsp + 0x40]
mov dword [rsp + 0x30], r14d
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.100049ba0
mov rdi, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov ebp, dword [rsp + 0x40]
xor r10d, r10d
cmp eax, r10d
je 0x100049f22
lea r11d, [r10 + 1]
jmp 0x10004a0ba
cmp ecx, 0x5b
jl 0x100049fe9
cmp ecx, 0x5e
jle 0x100049ff7
cmp ecx, 0x60
je 0x100049ff7
lea eax, [rcx - 0x7b]
cmp eax, 2
jbe 0x100049ff7
cmp bl, 0x20
jb 0x100049ff7
cmp bl, 0x7e
jbe 0x10004a0d7
test r13b, 2
jne 0x10004a0d7
test r13b, 0x10
je 0x10004a00c
cmp bl, 0x20
jne 0x10004a022
test r13b, 8
je 0x10004a017
cmp bl, 0x2e
je 0x10004a022
test r13b, 0x40
jne 0x10004a040
cmp bl, 0x25
jne 0x10004a040
mov r11d, 1
cmp esi, r10d
je 0x10004a0b3
mov byte [rdi], bl
add rdi, r11
mov qword [rsp + 0xa8], rdi
jmp 0x10004a0b3
cmp ebp, 0x820
sbb eax, eax
and eax, esi
mov esi, eax
cmp eax, r10d
je 0x10004a0aa
mov byte [rdi], 0x25
lea rdx, [rdi + 1]
cmp bl, 0x10
jae 0x10004a063
mov byte [rdx], 0x30
inc rdx
mov r8, qword [rsp + 0x48]
mov r9d, 0x10
sub r8, rdx
call sub.msvcrt.dll__ultoa_s
xor r10d, r10d
cmp eax, r10d
je 0x10004a09e
cmp eax, 0xc
je 0x10004a12e
cmp eax, 0x16
je 0x10004a123
cmp eax, 0x22
je 0x10004a123
cmp eax, 0x50
jne 0x10004a118
add rdi, 3
mov qword [rsp + 0xa8], rdi
add ebp, 2
mov r11d, 1
add ebp, r11d
mov dword [rsp + 0x40], ebp
mov bl, byte [r12]
cmp bl, r10b
je 0x10004a139
mov rdx, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x44]
mov r9, qword [rsp + 0x50]
jmp 0x100049d54
cmp esi, r10d
je 0x10004a0ad
mov r11d, 1
jmp 0x10004a031
mov ecx, 0x80004005
call fcn.1000242f0
int3
mov ecx, 0x80070057
call fcn.1000242f0
int3
mov ecx, 0x8007000e
call fcn.1000242f0
int3
mov ecx, 0x80004005
call fcn.1000242f0
int3
mov esi, r10d
jmp 0x10004a149
mov ecx, 0x80004005
call fcn.1000242f0
int3
mov ecx, 0x80070057
call fcn.1000242f0
int3
mov ecx, 0x8007000e
call fcn.1000242f0
int3
cmp esi, r10d
je 0x10004a149
cmp ebp, 0x823
jae 0x10004a149
mov byte [rdi], r10b
cmp r15, r10
je 0x10004a154
lea ecx, [rbp + 1]
mov dword [r15], ecx
mov rbx, qword [rsp + 0xb0]
lea ecx, [rbp + 1]
cmp ecx, 0x823
cmova esi, r10d
mov eax, esi
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret