Function at 0x577060
Capabilities:
Parse credit card information

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x18]
cmp rax, qword [rcx + 0x10]
jbe 0x577835
sub rsp, 0x98
mov qword [rsp + 0x90], rbp
lea rbp, [rsp + 0x90]
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x5777f3
lea rcx, [0x008513e0]
mov qword [rsp], rcx
mov qword [rsp + 8], 0
shr rax, 1
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x10], rax
call fcn.0043ffe0
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0xa0]
cmp byte [rcx], 0x22
jne 0x57750b
mov rdx, qword [rsp + 0xa8]
dec rdx
mov rbx, rdx
neg rdx
sar rdx, 0x3f
and rdx, 1
add rcx, rdx
mov rdx, qword [rsp + 0x70]
xor esi, esi
jmp 0x57710b
mov rsi, rdi
test rbx, rbx
je 0x5774d0
movzx edi, byte [rcx]
lea r8, [rbx - 1]
mov r9, r8
neg r8
sar r8, 0x3f
and r8, 1
lea r10, [r8 + rcx]
cmp dil, 0x22
je 0x577389
mov qword [rsp + 0x88], r10
mov qword [rsp + 0x48], rsi
cmp dil, 0x5c
jne 0x577284
cmp rbx, 1
je 0x577249
movzx ecx, byte [rcx + r8]
cmp cl, 0xb
jne 0x5771eb
lea rdi, [rsi + 1]
cmp rdi, rdx
ja 0x57718c
mov byte [rax + rsi], cl
lea rcx, [rbx - 2]
mov rbx, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
add rcx, r10
jmp 0x577108
mov byte [rsp + 0x45], cl
mov qword [rsp + 0xa8], rbx
lea rcx, [0x008513e0]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rdi
call fcn.004400f0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
lea rdi, [rcx + 1]
movzx ecx, byte [rsp + 0x45]
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x48]
mov r10, qword [rsp + 0x88]
jmp 0x57716f
cmp cl, 0xc
je 0x577166
lea edi, [rcx - 1]
cmp dil, 8
jbe 0x577166
lea edi, [rcx - 0xe]
cmp dil, 0x71
jbe 0x577166
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
cmp dil, 0xb
jne 0x5772fe
lea rcx, [rsi + 1]
cmp rcx, rdx
ja 0x5772a5
mov byte [rax + rsi], dil
mov rbx, r9
mov rdi, rcx
mov rcx, r10
jmp 0x577108
mov byte [rsp + 0x44], dil
mov qword [rsp + 0x70], r9
lea rbx, [0x008513e0]
mov qword [rsp], rbx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rcx
call fcn.004400f0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
inc rcx
mov rsi, qword [rsp + 0x48]
movzx edi, byte [rsp + 0x44]
mov r9, qword [rsp + 0x70]
mov r10, qword [rsp + 0x88]
jmp 0x577293
cmp dil, 0xc
je 0x57728a
cmp dil, 0x20
je 0x57728a
cmp dil, 0x21
je 0x57728a
cmp dil, 0x7f
je 0x57728a
lea ecx, [rdi - 1]
cmp cl, 7
jbe 0x57728a
lea ecx, [rdi - 0xe]
cmp cl, 0x11
jbe 0x57728a
lea ecx, [rdi - 0x23]
cmp cl, 0x38
jbe 0x57728a
lea ecx, [rdi - 0x5d]
cmp cl, 0x21
jbe 0x57728a
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
test r9, r9
jne 0x5773c9
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
cmp byte [r10], 0x40
jne 0x57738e
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x78], rax
lea rax, [r9 - 1]
mov qword [rsp + 0xa8], rax
mov rcx, rax
neg rax
sar rax, 0x3f
and rax, 1
add rax, r10
mov qword [rsp + 0xa0], rax
mov qword [rsp], rax
mov qword [rsp + 8], rcx
call fcn.00577840
cmp byte [rsp + 0x28], 0
je 0x577495
mov qword [rsp], 0
mov rax, qword [rsp + 0x78]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x18], rax
call fcn.00444040
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rcx
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xc8], rax
mov byte [rsp + 0xd0], 1
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0xa8]
xor esi, esi
jmp 0x57753b
mov byte [rax + rsi], dil
lea rdi, [r8 - 1]
mov r8, rdi
neg rdi
sar rdi, 0x3f
and rdi, 1
add rcx, rdi
mov rsi, rbx
mov rbx, r8
mov qword [rsp + 0x58], rsi
test rbx, rbx
jle 0x5776de
movzx edi, byte [rcx]
cmp dil, 0x5c
jne 0x577630
lea rdi, [rbx - 1]
mov r8, rdi
neg rdi
sar rdi, 0x3f
and rdi, 1
add rcx, rdi
cmp rbx, 1
je 0x5775f5
test r8, r8
jbe 0x57782e
lea rbx, [rsi + 1]
movzx edi, byte [rcx]
cmp rbx, rdx
jbe 0x57751c
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0xa0], rcx
mov byte [rsp + 0x45], dil
lea rcx, [0x008513e0]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rbx
call fcn.004400f0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
lea rbx, [rcx + 1]
mov rcx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x58]
movzx edi, byte [rsp + 0x45]
mov r8, qword [rsp + 0xa8]
jmp 0x57751c
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
lea r8d, [rdi - 0x30]
cmp r8b, 9
ja 0x577642
mov r8, rbx
jmp 0x577575
lea r8d, [rdi - 0x61]
cmp r8b, 0x19
jbe 0x57763a
lea r8d, [rdi - 0x41]
cmp r8b, 0x19
jbe 0x57763a
cmp dil, 0x21
je 0x57763a
cmp dil, 0x23
je 0x57763a
cmp dil, 0x24
je 0x57763a
cmp dil, 0x25
je 0x57763a
cmp dil, 0x26
je 0x57763a
cmp dil, 0x27
je 0x57763a
cmp dil, 0x2a
je 0x57763a
cmp dil, 0x2b
je 0x57763a
cmp dil, 0x2d
je 0x57763a
cmp dil, 0x2f
je 0x57763a
cmp dil, 0x3d
je 0x57763a
cmp dil, 0x3f
je 0x57763a
cmp dil, 0x5e
je 0x57763a
cmp dil, 0x5f
je 0x57763a
cmp dil, 0x60
je 0x57763a
cmp dil, 0x7b
je 0x57763a
cmp dil, 0x7c
je 0x57763a
cmp dil, 0x7d
je 0x57763a
cmp dil, 0x7e
je 0x57763a
cmp dil, 0x2e
je 0x57763a
test rsi, rsi
je 0x5777b8
movzx edi, word [0x00991704]
mov word [rsp + 0x46], di
cmp byte [rax], 0x2e
jne 0x577733
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
movzx edi, byte [rsi + rax - 1]
cmp dil, 0x2e
je 0x5776f8
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], rbx
nop
mov qword [rsp], rax
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rdx
lea rcx, [rsp + 0x46]
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], 2
mov qword [rsp + 0x28], 2
call fcn.004d9600
cmp qword [rsp + 0x30], 0xffffffffffffffff
jne 0x5776f8
mov r10, qword [rsp + 0x88]
mov r9, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x80]
jmp 0x577389
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov qword [rsp + 0xb0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xd0], 0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.0042c590
ud2
call fcn.004553d0
jmp fcn.00577060