Function at 0x180045950
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
xor al, al
cmp dword [rcx + 0x7c], 0xffffffff
mov rbx, rcx
je 0x180045d8c
nop dword [rax]
mov ecx, dword [rbx + 0x7c]
cmp ecx, 0x7c
je 0x180045d8c
cmp ecx, 0x29
jne 0x18004599b
cmp dword [rbx + 0x1c], 0
jne 0x180045d8c
test dword [rbx + 0x80], 0x10000000
je 0x180045d97
cmp ecx, 0x2e
jne 0x1800459fc
lea rcx, [rbx + 0x40]
mov edx, 5
call fcn.180023a80
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp rcx, rax
je 0x1800459ef
cmp byte [rcx], 0x5c
jne 0x1800459ec
inc rcx
cmp rcx, rax
je 0x1800459ec
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x1800459db
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x1800459e9
test dl, 0x10
jne 0x1800459ec
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x1800459ec
mov qword [rbx], rcx
inc qword [rbx]
mov rcx, rbx
call fcn.180044820
jmp 0x180045d78
cmp ecx, 0x5c
jne 0x180045b38
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp rcx, rax
je 0x180045a46
cmp byte [rcx], 0x5c
jne 0x180045a43
inc rcx
cmp rcx, rax
je 0x180045a43
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180045a32
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x180045a40
test dl, 0x10
jne 0x180045a43
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x180045a43
mov qword [rbx], rcx
inc qword [rbx]
mov rcx, rbx
call fcn.180044820
mov eax, dword [rbx + 0x80]
and eax, 0x80
je 0x180045abd
cmp byte [rbx + 0x78], 0x62
jne 0x180045abd
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.180023a80
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp rcx, rax
je 0x180045ab0
cmp byte [rcx], 0x5c
jne 0x180045aad
inc rcx
cmp rcx, rax
je 0x180045aad
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180045a9c
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x180045aaa
test dl, 0x10
jne 0x180045aad
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x180045aad
mov qword [rbx], rcx
inc qword [rbx]
mov rcx, rbx
call fcn.180044820
jmp 0x180045d80
test eax, eax
je 0x180045b2b
cmp byte [rbx + 0x78], 0x42
jne 0x180045b2b
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.180023a80
mov rax, qword [rbx + 0x48]
xor dword [rax + 0xc], 1
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp rcx, rax
je 0x180045b1e
cmp byte [rcx], 0x5c
jne 0x180045b1b
inc rcx
cmp rcx, rax
je 0x180045b1b
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180045b0a
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x180045b18
test dl, 0x10
jne 0x180045b1b
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x180045b1b
mov qword [rbx], rcx
inc qword [rbx]
mov rcx, rbx
call fcn.180044820
jmp 0x180045d80
mov rcx, rbx
call fcn.180045fe0
jmp 0x180045d78
cmp ecx, 0x5b
jne 0x180045bea
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp rcx, rax
je 0x180045b82
cmp byte [rcx], 0x5c
jne 0x180045b7f
inc rcx
cmp rcx, rax
je 0x180045b7f
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180045b6e
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x180045b7c
test dl, 0x10
jne 0x180045b7f
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x180045b7f
mov qword [rbx], rcx
inc qword [rbx]
mov rcx, rbx
call fcn.180044820
mov rcx, rbx
call fcn.180045ee0
cmp dword [rbx + 0x7c], 0x5d
jne 0x180045da2
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp rcx, rax
je 0x180045bdd
cmp byte [rcx], 0x5c
jne 0x180045bda
inc rcx
cmp rcx, rax
je 0x180045bda
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180045bc9
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x180045bd7
test dl, 0x10
jne 0x180045bda
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x180045bda
mov qword [rbx], rcx
inc qword [rbx]
mov rcx, rbx
call fcn.180044820
jmp 0x180045d78
cmp ecx, 0x28
jne 0x180045ca8
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp rcx, rax
je 0x180045c34
cmp byte [rcx], 0x5c
jne 0x180045c31
inc rcx
cmp rcx, rax
je 0x180045c31
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180045c20
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x180045c2e
test dl, 0x10
jne 0x180045c31
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x180045c31
mov qword [rbx], rcx
inc qword [rbx]
mov rcx, rbx
call fcn.180044820
mov rcx, rbx
call fcn.1800460d0
cmp dword [rbx + 0x7c], 0x29
movzx edi, al
jne 0x180045dad
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp rcx, rax
je 0x180045c92
cmp byte [rcx], 0x5c
jne 0x180045c8f
inc rcx
cmp rcx, rax
je 0x180045c8f
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180045c7e
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x180045c8c
test dl, 0x10
jne 0x180045c8f
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x180045c8f
mov qword [rbx], rcx
inc qword [rbx]
mov rcx, rbx
call fcn.180044820
test dil, dil
je 0x180045d80
jmp 0x180045d78
cmp ecx, 0x5e
jne 0x180045d06
lea rcx, [rbx + 0x40]
mov edx, 2
call fcn.180023a80
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
cmp rcx, rax
je 0x180045cfc
cmp byte [rcx], 0x5c
jne 0x180045cf9
inc rcx
cmp rcx, rax
je 0x180045cf9
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180045ce8
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x180045cf6
test dl, 0x10
jne 0x180045cf9
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x180045cf9
mov qword [rbx], rcx
inc qword [rbx]
mov rcx, rbx
call fcn.180044820
jmp 0x180045d80
cmp ecx, 0x24
jne 0x180045d23
lea rcx, [rbx + 0x40]
mov edx, 3
call fcn.180023a80
mov rcx, rbx
call fcn.180045900
jmp 0x180045d80
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x180045dce
cmp ecx, 0x3f
je 0x180045dce
cmp ecx, 0x7b
je 0x180045dce
cmp ecx, 0x7d
jne 0x180045d52
test dword [rbx + 0x80], 0x10000000
je 0x180045db8
cmp ecx, 0x5d
jne 0x180045d63
test dword [rbx + 0x80], 0x10000000
je 0x180045dc3
movzx edx, byte [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.180027a50
mov rcx, rbx
call fcn.180045900
mov rcx, rbx
call fcn.1800461f0
cmp dword [rbx + 0x7c], 0xffffffff
mov al, 1
jne 0x180045970
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov ecx, 5
call fcn.1800b3d54
int3
mov ecx, 4
call fcn.1800b3d54
int3
mov ecx, 5
call fcn.1800b3d54
int3
mov ecx, 6
call fcn.1800b3d54
int3
mov ecx, 4
call fcn.1800b3d54
int3
mov ecx, 0xa
call fcn.1800b3d54
int3