Function at 0x140258e80
Capabilities:
Parse credit card information

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov rbx, r9
mov r14, r8
mov r13, rcx
xor eax, eax
test al, al
jne 0x140258ee2
mov qword [rbp + 0x28], r14
mov qword [rbp - 8], 0xf
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
movzx eax, byte [r13 + 0x68]
mov ecx, dword [0x1406944c4]
cmp ecx, 0x3b
jle 0x140258f04
mov qword [rbp + 0x28], r14
mov qword [rbp - 8], 0xf
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
jmp 0x140258eb2
mov qword [rbp + 0x20], rdx
test al, al
jne 0x140258f14
mov qword [r13 + 0x60], 0
mov qword [rbp - 0x10], 8
mov qword [rbp - 0x20], 0
mov byte [rbp - 0x18], 0
lea rax, [r13 + 0x60]
mov qword [rbp - 0x38], rax
lea rsi, [rbp - 0x20]
lea r15, [fcn.140258e80]
mov dil, 1
xor eax, eax
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], r13
jmp 0x140258f6a
mov qword [rsp + 0x20], r8
mov rcx, rbp
mov rdx, r8
mov r9, r12
call fcn.14008a220
nop dword [rax]
mov rax, qword [rbp + 0x28]
sub rax, r14
sar rax, 1
mov qword [r13 + 0x70], rax
mov r8, qword [rbp + 0x28]
cmp r8, rbx
je 0x140259314
cmp qword [rbp - 8], 0x10
mov r12, rsi
jb 0x140258f89
mov r12, qword [rbp - 0x20]
mov rcx, qword [r13 + 8]
mov rdx, qword [rbp - 0x10]
add rdx, r12
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
mov r10, qword [0x1405fc400]
lea r9, [rbp - 0x40]
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], r12
lea rdx, [rbp + 0x28]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rbp - 0x38]
mov r9, rbx
call r10
cmp eax, 2
jae 0x140259030
mov r8, qword [rbp - 0x40]
cmp r12, r8
jae 0x1402590d0
xor eax, eax
test al, al
mov rcx, qword [rbp + 0x10]
mov rax, qword [rbp + 0x18]
mov edx, dword [0x1406944c4]
cmp edx, 0x23
jg 0x140258fde
sub r8, r12
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jb 0x140258f4a
lea r14, [r8 + rcx]
mov qword [rbp + 0x10], r14
mov r13, rbp
cmp rax, 0x10
jb 0x140259018
mov r13, qword [rbp]
add rcx, r13
mov rdx, r12
call fcn.140511c70
add r14, r13
mov r13, qword [rbp - 0x28]
jmp 0x140259246
cmp eax, 3
jne 0x14025932c
nop dword [rax]
mov rax, qword [rbp + 0x28]
cmp rax, rbx
je 0x140258f60
movzx r9d, byte [rax]
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x18]
cmp rax, rcx
jae 0x140259080
lea rdx, [rax + 1]
mov qword [rbp + 0x10], rdx
mov rdx, rbp
cmp rcx, 0x10
jb 0x140259073
mov rdx, qword [rbp]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14025908d
mov edx, 1
mov rcx, rbp
call fcn.140093ed0
mov eax, dword [0x1406944c0]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x1402590b0
nop
add qword [rbp + 0x28], 2
mov eax, dword [0x1406944c4]
cmp eax, 0x1c
jl 0x140259040
add qword [rbp + 0x28], 2
lea eax, [r15 + r15]
add eax, 0xca0
mov ecx, eax
not ecx
test ecx, eax
jne 0x1402590b0
jmp 0x1402590a0
mov rax, qword [rbp - 0x10]
cmp rax, 0x10
setb cl
movzx edx, byte [0x1406941f1]
test dl, cl
jne 0x1402590ee
xor dl, cl
je 0x140259260
mov rdx, qword [rbp - 8]
mov rcx, rdx
sub rcx, rax
cmp rcx, 8
setb cl
movzx r8d, byte [0x1406944c8]
test r8b, cl
jne 0x140259200
xor r8b, 1
mov r9d, r8d
and r9b, cl
jne 0x140259200
or r8b, cl
je 0x140259200
movabs r10, 0xe17a01c67144d78a
movabs r11, 0x7ffffffffffffff7
movabs r14, 0x1e85fe398ebb2876
jmp 0x14025916c
mov qword [rcx + rax], 0
mov ecx, dword [0x1406944c0]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
je 0x140259175
cmp byte [0x1406941f1], 0
jne 0x14025919b
lea rcx, [rax + 8]
mov qword [rbp - 0x10], rcx
mov rcx, rsi
cmp rdx, 0x10
jb 0x14025918a
mov rcx, qword [rbp - 0x20]
mov qword [rcx + rax], 0
test dil, dil
jne 0x14025923e
mov rcx, rax
neg rcx
mov r8, r10
sub r8, rax
mov r9, r8
xor r9, r11
and r9, r8
xor r8, 8
lea r8, [r8 + r9*2]
sub r8, rax
add r8, r14
lea r9, [rax - 1]
xor r9, rcx
and r9, r8
xor r9, rcx
and r8, rcx
lea rcx, [r9 + r8*2]
mov r8, rax
shl r8, cl
mov r9, r8
sub r9, rcx
imul r9, rcx
add r9, r8
mov qword [rbp - 0x10], r9
mov rcx, rsi
cmp rdx, 0x10
jb 0x140259150
mov rcx, qword [rbp - 0x20]
jmp 0x140259150
mov eax, dword [0x1406944c4]
cmp eax, 0x2d
jle 0x140259210
test dil, dil
je 0x140259200
lea eax, [r15 + r15]
add eax, 0x16a0
mov ecx, eax
not ecx
test ecx, eax
jne 0x14025920b
mov byte [rsp + 0x20], 0
mov edx, 8
mov r9d, 8
mov rcx, rsi
call fcn.140090900
jmp 0x140258f60
lea r14, [rcx + rax]
add r14, 8
mov byte [r14], 0
mov r14, qword [rbp - 0x30]
jmp 0x140258f60
mov eax, dword [0x1406944c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140259260
mov al, 1
test al, al
je 0x140259260
cmp byte [r13 + 0x69], 0
mov rbx, qword [rbp + 0x20]
je 0x140259685
xorps xmm0, xmm0
movups xmmword [rbx + 0x10], xmm0
mov rdi, qword [r13 + 0x30]
cmp qword [r13 + 0x38], 0x10
jb 0x14025945e
mov r13, qword [r13 + 0x20]
cmp rdi, 0x10
jb 0x14025946c
xor eax, eax
mov rcx, rdi
and rcx, 0xfffffffffffffff0
movabs rdx, 0x7fffffffffffffff
nop dword [rax]
test al, al
jne 0x1402592f8
mov r8d, edi
and r8d, 0xf
mov esi, edi
not esi
and esi, 0xf
or rsi, rcx
or rsi, r8
cmp rsi, rdx
cmovae rsi, rdx
mov r8d, dword [0x1406944c0]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x14025947e
mov r8d, dword [0x1406944c0]
mov r9d, 0x3b1a189f
sub r9d, r8d
imul r9d, r8d
test r9b, 1
jne 0x1402592c0
jmp 0x1402592c4
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
mov rax, qword [rbp + 0x20]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
jmp 0x140259574
cmp byte [r13 + 0x69], 0
je 0x140259650
xorps xmm0, xmm0
mov rbx, qword [rbp + 0x20]
movups xmmword [rbx + 0x10], xmm0
mov rdi, qword [r13 + 0x30]
cmp qword [r13 + 0x38], 0x10
jb 0x1402593f6
mov r13, qword [r13 + 0x20]
cmp rdi, 0xf
jbe 0x140259410
mov eax, edi
and eax, 0xf
mov ecx, edi
not ecx
and ecx, 0xf
mov rsi, rdi
and rsi, 0xfffffffffffffff0
or rsi, rcx
or rsi, rax
movabs rax, 0x7fffffffffffffff
cmp rsi, rax
cmovae rsi, rax
cmp rsi, 0xfff
jb 0x1402594ae
mov eax, dword [0x1406944c0]
mov ecx, eax
not ecx
imul ecx, eax
jmp 0x1402593bc
mov eax, dword [0x1406944c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1402593b0
mov eax, dword [0x1406944c4]
cmp eax, 0x5e
jge 0x1402593b0
lea rcx, [rsi + 0x28]
call fcn.1404e9d4c
mov rdx, rax
add rdx, 0x27
mov ecx, edx
not ecx
xor rdx, 0xffffffffffffffe0
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x1402594ba
add r13, 0x20
cmp rdi, 0xf
ja 0x14025935f
nop word cs:[rax + rax]
mov eax, dword [0x1406944c0]
lea ecx, [rax + 0x7a9c96d6]
not ecx
add ecx, 0x7a9c96d6
imul ecx, eax
test cl, 1
jne 0x14025943f
movups xmm0, xmmword [r13]
movups xmmword [rbx], xmm0
mov eax, dword [0x1406944c4]
cmp eax, 0x54
jl 0x140259454
movups xmm0, xmmword [r13]
movups xmmword [rbx], xmm0
mov eax, dword [0x1406944c4]
cmp eax, 0x55
jge 0x140259410
jmp 0x14025942c
mov esi, 0xf
jmp 0x140259515
add r13, 0x20
cmp rdi, 0x10
jae 0x1402592aa
movups xmm0, xmmword [r13]
movups xmmword [rbx], xmm0
mov esi, 0xf
jmp 0x140259515
cmp rsi, 0xfff
jb 0x1402594f6
lea rcx, [rsi + 0x28]
call fcn.1404e9d4c
mov rdx, rax
add rdx, 0x27
mov ecx, edx
not ecx
xor rdx, 0xffffffffffffffe0
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x140259502
lea rcx, [rsi + 1]
call fcn.1404e9d4c
mov rcx, rax
mov rbx, qword [rbp + 0x20]
mov qword [rbx], rcx
mov rax, rdi
xor rax, 1
mov rdx, rdi
not rdx
movabs r8, 0x7ffffffffffffffe
and r8, rdx
or r8, rax
not r8
add r8, r8
xor r8, rax
mov rdx, r8
not rdx
and rdx, rax
lea r8, [r8 + rdx*2]
jmp 0x14025950d
lea rcx, [rsi + 1]
call fcn.1404e9d4c
mov rcx, rax
mov rbx, qword [rbp + 0x20]
mov qword [rbx], rcx
lea r8, [rdi + 1]
mov rdx, r13
call fcn.140511c70
lea rax, [rbx + 0x10]
mov qword [rax], rdi
mov qword [rbx + 0x18], rsi
mov rax, qword [rbp + 0x18]
cmp rax, 0x10
jb 0x140259574
mov rcx, qword [rbp]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14025955a
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x140259692
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov eax, 0x13e
add eax, dword [0x140627618]
cdqe
add rax, qword [0x140627630]
call qword [0x1405fc400]
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x1402597a0
mov rdi, qword [rbp - 0x20]
lea rbx, [rax + 1]
cmp rbx, 0x1000
jb 0x1402595f5
mov rcx, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
mov rdx, rcx
neg rdx
mov r8, rdi
xor r8, rdx
and rdx, rdi
lea rdx, [r8 + rdx*2]
cmp rdx, 0x20
jae 0x140259632
mov edx, dword [0x1406944c0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
nop word cs:[rax + rax]
mov edx, dword [0x1406944c0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1402595d0
mov rdx, rax
xor rdx, 0x28
and eax, 0x28
lea rbx, [rdx + rax*2]
mov rdi, rcx
lea rax, [fcn.140258e80]
add eax, eax
add eax, 0x1c60
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
lea r8d, [rdx + 1]
xor r8d, ecx
xor edx, 0xfffffffe
or edx, r8d
or r8d, eax
or r8d, 1
xor r8d, edx
cmp r8d, 1
je 0x140259728
jmp 0x14025975d
mov eax, dword [0x1406944c4]
nop dword [rax + rax]
mov eax, dword [0x1406944c4]
cmp eax, 0x3d
jg 0x140259640
call fcn.1404ca324
mov eax, 0x13e
add eax, dword [0x140627614]
cdqe
add rax, qword [0x140627628]
mov ecx, 1
xor edx, edx
mov r8d, 0xf3a2c1b7
mov r9d, 0x2b09cdd4
call qword [0x1405fc400]
mov rcx, rax
call fcn.140188530
mov eax, dword [0x1406944c4]
cmp eax, 0x60
jle 0x140259697
jmp 0x1402596d5
call fcn.1404ca324
mov eax, 0x13e
add eax, dword [0x140627614]
cdqe
add rax, qword [0x140627628]
mov ecx, 1
xor edx, edx
mov r8d, 0xf3a2c1b7
mov r9d, 0x2b09cdd4
call qword [0x1405fc400]
mov ecx, dword [0x1406944c0]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x140259720
mov esi, 0x13e
nop word [rax + rax]
mov eax, dword [0x140627614]
add eax, esi
cdqe
add rax, qword [0x140627628]
mov ecx, 1
xor edx, edx
mov r8d, 0xf3a2c1b7
mov r9d, 0x2b09cdd4
call qword [0x1405fc400]
mov eax, dword [0x1406944c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1402596e0
jmp 0x140259697
mov rcx, rax
call fcn.140188530
mov eax, 0x13e
add eax, dword [0x140627618]
cdqe
add rax, qword [0x140627630]
mov rcx, rdi
mov rdx, rbx
call qword [0x1405fc400]
mov eax, dword [0x1406944c0]
mov ecx, 0x260449cd
sub ecx, eax
imul ecx, eax
test cl, 1
je 0x1402597a0
mov esi, 0x13e
nop word cs:[rax + rax]
mov eax, dword [0x140627618]
add eax, esi
cdqe
add rax, qword [0x140627630]
mov rcx, rdi
mov rdx, rbx
call qword [0x1405fc400]
mov eax, dword [0x1406944c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140259770
jmp 0x140259728
mov rax, qword [rbp + 0x20]
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret