Function at 0x1402bd910
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rdi, r8
mov r14, rdx
mov rbp, rcx
mov rax, qword [0x14054b938]
xor rax, rsp
mov qword [rsp + 0x70], rax
test rcx, rcx
setne al
sete cl
test rdx, rdx
setne dl
sete r8b
xor r8b, cl
and dl, al
or dl, r8b
xor dl, 1
test r9, r9
sete al
or al, r8b
or al, dl
test rdi, rdi
setne dl
sete r8b
mov ecx, r8d
and cl, al
and dl, al
xor al, 1
and al, r8b
or al, dl
xor r15d, r15d
test cl, al
jne 0x1402bdcdc
mov edx, ecx
not dl
and dl, al
jne 0x1402bdcdc
xor al, 1
and cl, al
jne 0x1402bdcdc
mov rbx, r9
cmp rdi, 0x10
setae cl
setb al
movzx edx, byte [0x14055bfd8]
xor al, dl
not dl
and dl, cl
or dl, al
test dl, 1
mov qword [rsp + 0x38], rbp
je 0x1402bdb0d
test al, 1
jne 0x1402bdb0d
movabs rax, 0x5273714ca405c12b
mov rcx, rdi
sub rcx, rax
movabs rdx, 0x95d88d97dc86fdf3
sub rcx, rdx
add rcx, r14
add rcx, rdx
add rcx, 0xfffffffffffffff0
movups xmm0, xmmword [rax + rcx]
movaps xmmword [rsp + 0x60], xmm0
mov r13, rdi
shr r13, 4
lea r15, [rbp + 0x50]
add rbx, 0x10
add r14, 0x10
dec r13
lea r12, [rsp + 0x50]
mov esi, 0xb3dc9dcd
nop dword [rax]
mov rax, qword [rbp + 0x20]
mov rcx, rbp
mov rdx, r15
mov r8, r12
call qword [case.0x140303ece.0]
movups xmm0, xmmword [r14 - 0x10]
movups xmmword [r15], xmm0
mov eax, dword [r14 - 0x10]
mov ecx, dword [rsp + 0x50]
mov edx, dword [0x14052cff0]
add edx, esi
mov r8d, edx
xor r8d, edx
not r8d
and r8d, ecx
xor r8d, edx
mov edx, r8d
not edx
xor r8d, eax
not eax
and edx, eax
or edx, r8d
mov r8d, edx
not r8d
and eax, ecx
xor edx, r8d
and edx, eax
xor edx, r8d
and r8d, eax
or edx, r8d
mov dword [rbx - 0x10], edx
mov eax, dword [rsp + 0x54]
xor eax, dword [r14 - 0xc]
mov dword [rbx - 0xc], eax
mov eax, dword [r14 - 8]
mov ecx, dword [rsp + 0x58]
mov edx, ecx
not edx
not eax
mov r8d, edx
xor r8d, eax
and r8d, edx
and eax, ecx
or eax, r8d
mov dword [rbx - 8], eax
mov ecx, dword [r14 - 4]
mov eax, dword [rsp + 0x5c]
mov edx, eax
not edx
mov r8d, dword [0x14052cff0]
add r8d, esi
mov r9d, ecx
not r9d
mov r10d, edx
xor r10d, r9d
not r10d
and r10d, eax
or r10d, r9d
xor r9d, ecx
and r9d, r8d
xor r9d, ecx
not r10d
xor eax, r9d
not r9d
and r9d, edx
or r9d, eax
not r9d
or r9d, r10d
mov dword [rbx - 4], r9d
sub r13, 1
jb 0x1402bdb45
add rbx, 0x10
add r14, 0x10
jmp 0x1402bda20
mov qword [rsp + 0x20], rbx
mov r15d, 0x10
sub r15, rdi
lea rdx, [rdi + rbp]
add rdx, 0x50
lea rcx, [rsp + 0x60]
mov r8, r15
call fcn.14040cc90
lea rcx, [rsp + r15]
add rcx, 0x60
mov rdx, r14
mov r8, rdi
call fcn.14040cc90
jmp 0x1402bdb4a
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x40], rdi
mov rsi, rdi
and rsi, 0xf
je 0x1402bdcc9
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx + 0x20]
lea rdx, [rcx + 0x50]
lea r8, [rsp + 0x50]
call qword [case.0x140303ece.0]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
xor rax, 0xfffffffffffffffc
and rax, rcx
mov qword [rsp + 0x30], rax
mov rax, qword [0x14052cf10]
mov ecx, dword [0x14055d95c]
cmp ecx, 0x42
jge 0x1402bdbcf
movsxd rdx, dword [rax]
mov ecx, 0xb3dc9dcf
add ecx, dword [0x14052cff0]
lea r8, [fcn.1402bd910]
add r8d, r8d
add r8d, 0x2c00
mov r9d, r8d
not r9d
xor r8d, ecx
not ecx
and ecx, r9d
or ecx, r8d
cmp ecx, 0xffffffff
je 0x1402bdbd3
mov ecx, dword [rax]
jmp 0x1402bdb9a
mov edi, dword [0x140439b44]
movabs r15, 0xc018d5893fed8692
cmp esi, 4
jae 0x1402bdcfd
xor r8d, r8d
cmp qword [rsp + 0x30], 0
je 0x1402bdcc9
movabs rax, 0xc3c316ee96e66baf
movabs rdx, 0x8ef3224e9e3318d7
movabs r9, 0x86d5d61bcfb60f5b
movabs r10, 0x223e6daca6a5a606
xor r11d, r11d
sub r15, rdx
mov rdi, r15
nop dword [rax]
movzx ebx, byte [r14 + r8]
movzx esi, byte [rsp + r8 + 0x50]
mov ebp, esi
not bpl
mov r15d, ebx
not r15b
mov r12d, ebp
xor r12b, bl
mov r13d, r15d
xor r13b, bpl
and r13b, r15b
or r13b, r12b
and bpl, bl
and r15b, sil
or r15b, bpl
and r15b, sil
xor r13b, r15b
and r15b, r13b
not r13b
or r13b, r15b
mov rcx, qword [rsp + 0x20]
mov byte [rcx + r8], r13b
mov rsi, r11
xor rsi, 1
mov rbx, qword [0x14052cff8]
mov rcx, rdi
add rbx, rdi
add rbx, rdx
xor rbx, r11
not rbx
and rbx, r11
add rbx, rbx
mov r11, rax
sub r11, rsi
sub r11, rax
mov rsi, r10
sub rsi, rbx
sub rsi, r10
sub r11, r9
add r11, r9
add r11, rsi
neg r11
cmp r11, qword [rsp + 0x30]
je 0x1402bdcc9
inc r8
jmp 0x1402bdc30
movaps xmm0, xmmword [rsp + 0x60]
mov rax, qword [rsp + 0x38]
movups xmmword [rax + 0x50], xmm0
mov r15, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1403e4d80
mov rax, r15
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rax
xor r8, rax
not r8
and r8, rdx
xor r8, rax
and rdx, rax
lea rax, [r8 + rdx*2]
mov qword [rsp + 0x28], rax
mov edx, dword [0x14052cf04]
lea r9d, [rdx + 1]
mov dword [0x14052cf04], r9d
mov eax, edx
not eax
mov r8d, 0xfffffffe
sub r8d, edx
and r9d, eax
and edx, r8d
or edx, r9d
mov r10d, eax
not r10d
mov r9d, r8d
not r9d
and r9d, r10d
xor r10d, r10d
nop word cs:[rax + rax]
test r10b, r10b
jne 0x1402bdd60
xor eax, r8d
or eax, r9d
not eax
or edx, eax
not edx
mov eax, 0xb3dc9e1a
mov r8b, 1
nop dword [rax]
mov r9d, dword [0x14055d95c]
cmp r9d, 0x1c
jg 0x1402bdda3
mov r9d, dword [0x14055d95c]
mov r10d, dword [0x14052cff0]
add r10d, eax
cmp r9d, r10d
jl 0x1402bddaa
test r8b, r8b
je 0x1402bdd80
jmp 0x1402bdd8d
mov qword [rsp + 0x48], rsi
test edx, edx
je 0x1402bddb8
xor r9d, r9d
jmp 0x1402bdddc
mov eax, dword [0x14055d958]
nop
mov eax, dword [0x14055d95c]
cmp eax, 9
jg 0x1402bddc0
xor r11d, r11d
mov r9d, 0
test edi, edi
jg 0x1402be072
mov eax, dword [0x14055d958]
nop word cs:[rax + rax]
mov eax, dword [0x14055d95c]
cmp eax, 0x58
jg 0x1402bddf0
movabs rax, 0xee8eaf1905eea9b0
mov r8, rax
sub r8, qword [0x14055d960]
movabs r10, 0x4bf598e8a1b09d53
sub r8, r10
mov r11, qword [rsp + 0x30]
sub r11, qword [rsp + 0x48]
add r11, r10
movabs rcx, 0x5e250df79cff8dfe
add r11, rcx
add r11, r8
sub rcx, r11
add rcx, rax
mov qword [rsp + 0x28], rcx
xor r12d, r12d
lea r13, [fcn.1402bd910]
xor r8d, r8d
xor ebp, ebp
mov rdi, qword [rsp + 0x20]
jmp 0x1402bdf16
or r10b, r11b
and r10b, 1
mov byte [0x14055bfd8], r10b
mov rdi, qword [rsp + 0x20]
mov byte [rdi + rsi], al
mov rax, r8
not rax
mov rcx, r8
xor rcx, 2
and rax, 0xfffffffffffffffd
or rax, rcx
not rax
or rax, rcx
movzx ecx, byte [rsp + rax + 0x50]
xor cl, byte [r14 + rax]
mov byte [rdi + rax], cl
movabs r15, 0xc018d5893fed8692
movabs r10, 0x434b5b28aeec8353
lea rax, [r15 + r10]
movabs rcx, 0x83b1d022b0a397d6
sub rax, rcx
sub rax, r10
add rax, qword [0x14052cff8]
add rax, rcx
add rax, 2
and rax, r8
mov rcx, r8
xor rcx, 3
or rcx, rax
movzx eax, byte [r14 + rcx]
mov r10d, eax
xor r10b, al
not r10b
and r10b, byte [rsp + rcx + 0x50]
xor r10b, al
mov byte [rdi + rcx], r10b
add r8, 4
mov rax, rbp
xor rax, 4
and ebp, 4
lea rbp, [rax + rbp*2]
cmp rbp, qword [rsp + 0x28]
je 0x1402bdbef
movzx eax, byte [r14 + r8]
movzx r10d, byte [rsp + r8 + 0x50]
mov r11d, r10d
not r11b
mov ebx, eax
xor bl, r11b
and r11b, al
not bl
and bl, r10b
or bl, r11b
mov byte [rdi + r8], bl
mov rsi, qword [0x14052cff8]
add rsi, r15
or rsi, r8
movzx r10d, byte [r14 + rsi]
mov eax, r10d
xor al, r10b
not al
and al, byte [rsp + rsi + 0x50]
xor al, r10b
nop dword [rax]
test r12b, r12b
jne 0x1402bdf9c
xor r11d, r11d
test edx, edx
setne bl
movzx r10d, word [0x140439b50]
mov r15d, dword [0x14055d95c]
xor ecx, ecx
sub ecx, dword [0x14052cff0]
mov edi, ecx
xor edi, 0x4c2361e5
and ecx, 0x4c2361e5
lea ecx, [rdi + rcx*2]
neg ecx
cmp r15d, ecx
jl 0x1402bdfc0
movzx ecx, word [0x140439b50]
mov ecx, dword [0x14055d958]
lea r10d, [rcx - 1]
imul r10d, ecx
test r10b, 1
jne 0x1402bdf60
jmp 0x1402bdf65
mov r11b, bl
movzx ecx, word [0x14052d004]
mov edi, ecx
add r10d, ecx
xor ecx, 0x6892
and edi, 0x6892
lea ecx, [rcx + rdi*2]
movzx r11d, r11w
not ecx
add ecx, r11d
sub r10d, r9d
add r10d, 0x6892
mov r11d, r10d
xor r11d, ecx
not r11d
test r11w, r10w
setne cl
movzx ebx, byte [0x14055bfd8]
mov r11d, ebx
xor r11b, 1
mov r10d, r11d
xor r10b, cl
and r10b, bl
mov ebx, r11d
and bl, cl
or r11b, cl
xor r11b, 1
or r11b, bl
mov ecx, dword [0x14055d95c]
cmp ecx, 0x25
jg 0x1402be060
nop word cs:[rax + rax]
mov ecx, dword [0x14055d958]
mov edi, 0xb3dff8b1
sub edi, ecx
imul edi, ecx
test dil, 1
je 0x1402bde60
nop word [rax + rax]
lea ecx, [r13 + r13 + 0x1080]
mov edi, ecx
not edi
test edi, ecx
jne 0x1402be060
jmp 0x1402be040
lea r13, [fcn.1402bd910]
lea ebp, [r13 + r13 + 0x44c0]
mov r12d, 0xb3dc9dcf
mov r10d, 0xb3dc9dce
xor r8d, r8d
jmp 0x1402be0e1
mov r9d, esi
xor r9d, esi
not r9d
and r9d, r8d
xor r9d, esi
add r11d, 0x902fb5ef
mov eax, r11d
xor eax, 2
and r11d, 2
lea r11d, [rax + r11*2]
add r11d, 0x6fd04a11
mov r8d, r9d
cmp r11d, edi
movabs r15, 0xc018d5893fed8692
jge 0x1402bdddc
movsxd rax, r11d
mov r9d, dword [0x14055d95c]
mov esi, dword [0x14052cff0]
mov ecx, 0xb3dc9e22
add esi, ecx
cmp r9d, esi
jge 0x1402be160
nop dword [rax]
mov r9d, dword [0x14055d958]
mov esi, dword [0x14052cff0]
lea ebx, [rsi + r9]
dec ebx
imul ebx, r9d
and ebx, 1
add esi, 0xb3dc9dce
cmp ebx, esi
jne 0x1402be160
add rax, qword [rsp + 0x28]
nop dword [rax]
mov r9d, dword [0x14055d95c]
cmp r9d, 0x36
jg 0x1402be130
mov r9d, dword [0x14055d95c]
mov esi, dword [0x14052cff0]
mov ecx, 0xb3dc9df9
add esi, ecx
cmp r9d, esi
jge 0x1402be190
jmp 0x1402be170
mov ecx, dword [0x14055d95c]
cmp ecx, 0x44
jge 0x1402be160
jmp 0x1402be100
movzx esi, word [rax]
mov r9d, dword [0x14055d95c]
cmp r9d, 0x5e
jge 0x1402be190
mov eax, ebp
not eax
test eax, ebp
jne 0x1402be1f0
jmp 0x1402be1b0
movzx ecx, word [rax]
mov ecx, dword [0x14055d958]
lea r9d, [rcx - 1]
imul r9d, ecx
test r9b, 1
jne 0x1402be190
jmp 0x1402be170
mov eax, dword [0x14052cff0]
add eax, r12d
lea r9d, [r13 + r13 + 0x3140]
mov ebx, r9d
not ebx
mov r15d, ebx
and r15d, eax
not eax
and r9d, eax
or r9d, r15d
and eax, ebx
or eax, r9d
cmp eax, 0xffffffff
je 0x1402be0a0
nop word cs:[rax + rax]
mov eax, dword [0x14055d958]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14052cff0]
add eax, r10d
cmp ecx, eax
jne 0x1402be1f0
jmp 0x1402be1b0