Function at 0x5509c0
Capabilities:
Parse credit card information

Disassembly:
mov rax, rsp
sub rsp, 0x68
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax - 8], r12
mov r12, qword [rcx]
mov qword [rax - 0x18], r14
lea r14, [0x00400000]
mov rdx, qword [r12 + 0x89a0]
mov rsi, qword [r12 + 0x1a8]
mov rbx, rdx
movsx eax, byte [rbx]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x550a15.34
cdqe
movzx eax, byte [r14 + rax + 0x150d78]
mov ecx, dword [r14 + rax*4 + 0x150d70]
add rcx, r14
jmp rcx
inc rbx
jmp 0x5509f4
cmp rbx, rdx
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x58], r13
je 0x550a69
cmp rbx, rdx
mov r8, rbx
jbe 0x550a3f
cmp byte [rbx - 1], 0x2f
lea rax, [rbx - 1]
cmove r8, rax
lea r13, [rsi + 8]
xor ebp, ebp
sub r8, rdx
mov rcx, r12
mov r9, r13
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rbp
call fcn.00566790
test eax, eax
je 0x550a73
jmp 0x550d08
lea r13, [rsi + 8]
xor ebp, ebp
mov qword [r13], rbp
cmp byte [rbx], 0x3b
mov qword [rsp + 0x88], rdi
jne 0x550c97
movzx eax, byte [rbx + 1]
inc rbx
test al, al
mov rdx, rbx
je 0x550d67
cmp al, 0x3d
je 0x550aae
mov al, byte [rbx + 1]
inc rbx
test al, al
jne 0x550a96
mov eax, 3
jmp 0x550d00
cmp byte [rbx], 0
je 0x550d67
mov r8, rbx
lea r9, [rsp + 0x38]
mov rcx, r12
sub r8, rdx
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rbp
call fcn.00566790
test eax, eax
jne 0x550d00
inc rbx
mov rdx, rbx
movsx eax, byte [rbx]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x550b06.34
cdqe
movzx eax, byte [r14 + rax + 0x150de0]
mov ecx, dword [r14 + rax*4 + 0x150dd8]
add rcx, r14
jmp rcx
inc rbx
jmp 0x550ae5
lea rax, [rsp + 0x40]
mov r8, rbx
lea r9, [rsp + 0x30]
mov rcx, r12
sub r8, rdx
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rax
call fcn.00566790
test eax, eax
mov edi, eax
jne 0x550d2e
mov rcx, qword [rsp + 0x38]
lea rdx, str.UIDVALIDITY
call fcn.005401a0
test eax, eax
je 0x550b86
cmp qword [rsi + 0x10], 0
jne 0x550b86
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x550b73
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + rax - 1], 0x2f
jne 0x550b73
mov byte [rcx + rax - 1], dil
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], rbp
mov qword [rsi + 0x10], rax
jmp 0x550c64
mov rcx, qword [rsp + 0x38]
lea rdx, [0x006b12f4]
call fcn.005401a0
test eax, eax
je 0x550bd0
cmp qword [rsi + 0x18], 0
jne 0x550bd0
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x550bbd
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + rax - 1], 0x2f
jne 0x550bbd
mov byte [rcx + rax - 1], 0
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], rbp
mov qword [rsi + 0x18], rax
jmp 0x550c64
mov rcx, qword [rsp + 0x38]
lea rdx, str.SECTION
call fcn.005401a0
test eax, eax
je 0x550c17
cmp qword [rsi + 0x20], 0
jne 0x550c17
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x550c07
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + rax - 1], 0x2f
jne 0x550c07
mov byte [rcx + rax - 1], 0
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], rbp
mov qword [rsi + 0x20], rax
jmp 0x550c64
mov rcx, qword [rsp + 0x38]
lea rdx, str.PARTIAL
call fcn.005401a0
test eax, eax
je 0x550d42
cmp qword [rsi + 0x28], 0
jne 0x550d42
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x550c56
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + rax - 1], 0x2f
jne 0x550c56
mov byte [rcx + rax - 1], 0
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], rbp
mov qword [rsi + 0x28], rax
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x550c8e
call qword [sub.msvcrt.dll_free]
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x38], rbp
test rcx, rcx
je 0x550c8e
call qword [sub.msvcrt.dll_free]
mov qword [rsp + 0x30], rbp
cmp byte [rbx], 0x3b
je 0x550a84
cmp qword [r13], 0
je 0x550cf6
cmp qword [rsi + 0x18], 0
jne 0x550cf6
cmp byte [rbx], 0x3f
jne 0x550cf6
movzx ecx, byte [rbx + 1]
inc rbx
mov r10, rbx
call fcn.005506c0
test eax, eax
je 0x550cd0
nop
movzx ecx, byte [rbx + 1]
inc rbx
call fcn.005506c0
test eax, eax
jne 0x550cc0
mov r8, rbx
lea r9, [rsi + 0x30]
mov rdx, r10
mov rcx, r12
sub r8, r10
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rbp
call fcn.00566790
test eax, eax
jne 0x550d00
movzx eax, byte [rbx]
neg al
sbb eax, eax
and eax, 3
mov rdi, qword [rsp + 0x88]
mov r14, qword [rsp + 0x50]
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
add rsp, 0x68
ret
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x550d3e
call qword [sub.msvcrt.dll_free]
mov eax, edi
jmp 0x550d00
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x550d57
call qword [sub.msvcrt.dll_free]
mov qword [rsp + 0x38], rbp
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x550d67
call qword [sub.msvcrt.dll_free]
mov eax, 3
jmp 0x550d00