Function at 0x1801592b0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rbx, rcx
xor al, al
mov ecx, dword [rcx + 0x7c]
cmp ecx, 0xffffffff
je 0x180159ae7
lea r15, vtable..17.0
xor r14d, r14d
lea r13, vtable..21.0
mov r12d, 0xfffd
cmp ecx, 0x7c
je 0x180159ae7
cmp ecx, 0x29
jne 0x180159321
cmp dword [rbx + 0x1c], r14d
jne 0x180159ae7
test dword [rbx + 0x80], 0x10000000
je 0x180159b12
jmp 0x1801599a7
cmp ecx, 0x2e
jne 0x1801593df
mov ecx, 0x20
call fcn.1801a9850
test rax, rax
je 0x18015934e
mov qword [rax], r15
mov qword [rax + 8], 5
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180159351
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015c460
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180159a01
cmp word [rax], 0x5c
jne 0x1801593d3
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x1801593d0
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x1801593a2
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x1801593c0
cmp cx, 0x29
je 0x1801593c0
mov rcx, rax
test r9b, 0x10
jne 0x1801593d0
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x1801593c0
mov rdx, rcx
cmp r8w, 0x7d
jne 0x1801593d0
lea rax, [rdx + 2]
add rax, 2
mov qword [rbx], rax
jmp 0x180159a01
mov rax, rcx
add rax, 2
mov qword [rbx], rax
jmp 0x180159a01
cmp ecx, 0x5c
jne 0x1801596a9
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180159456
cmp word [rax], cx
jne 0x18015944f
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x18015944c
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180159428
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x180159446
cmp cx, 0x29
je 0x180159446
mov rcx, rax
test r9b, 0x10
jne 0x18015944c
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x180159446
mov rdx, rcx
cmp r8w, 0x7d
jne 0x18015944c
lea rax, [rdx + 2]
jmp 0x18015944f
mov rax, rcx
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.18015d100
mov ecx, dword [rbx + 0x80]
test cl, cl
jns 0x180159589
movzx eax, word [rbx + 0x78]
cmp ax, 0x62
jne 0x180159543
mov ecx, 0x20
call fcn.1801a9850
test rax, rax
je 0x18015949e
mov qword [rax], r15
mov qword [rax + 8], 4
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x1801594a1
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015c460
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180159950
cmp word [rax], 0x5c
jne 0x1801598b3
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x18015952c
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x1801594f6
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x180159514
cmp cx, 0x29
je 0x180159514
mov rcx, rax
test r9b, 0x10
jne 0x18015952c
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x180159514
mov rdx, rcx
cmp r8w, 0x7d
jne 0x18015952c
lea rax, [rdx + 2]
mov rcx, rbx
add rax, 2
mov qword [rbx], rax
call fcn.18015d100
jmp 0x180159ad9
mov rax, rcx
mov rcx, rbx
add rax, 2
mov qword [rbx], rax
call fcn.18015d100
jmp 0x180159ad9
cmp ax, 0x42
jne 0x180159589
mov ecx, 0x20
call fcn.1801a9850
test rax, rax
je 0x18015956d
mov qword [rax], r15
mov qword [rax + 8], 4
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180159570
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015c460
mov rax, qword [rbx + 0x48]
xor dword [rax + 0xc], 1
jmp 0x180159857
bt ecx, 8
jae 0x180159664
mov edx, 3
mov rcx, rbx
call fcn.18015a860
test al, al
je 0x180159664
mov edi, dword [rbx + 0x74]
mov eax, dword [rbx + 0x80]
test edi, edi
jne 0x1801595d0
bt eax, 0x14
jae 0x180159b20
lea rcx, [rbx + 0x40]
movzx edx, di
call fcn.180158840
jmp 0x180159a09
bt eax, 9
jae 0x1801595df
cmp edi, 9
ja 0x180159b4a
mov eax, edi
movsxd rcx, eax
mov eax, dword [rbx + 0x18]
cmp rax, rcx
jb 0x180159b4a
cmp qword [rbx + 0x38], rcx
jbe 0x180159b4a
mov rdx, qword [rbx + 0x20]
movzx eax, cl
and al, 0x1f
mov r8, rcx
shr r8, 5
movzx ecx, al
mov eax, dword [rdx + r8*4]
bt eax, ecx
jae 0x180159b4a
mov ecx, 0x28
call fcn.1801a9850
test rax, rax
je 0x180159650
mov rdx, rax
mov qword [rax + 8], 0xf
lea rcx, [rbx + 0x40]
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
mov qword [rax], r13
mov dword [rax + 0x20], edi
call fcn.18015c460
jmp 0x180159a09
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015c460
jmp 0x180159a09
mov rcx, rbx
call fcn.18015a190
test al, al
je 0x180159682
movzx edx, word [rbx + 0x74]
lea rcx, [rbx + 0x40]
call fcn.180158840
jmp 0x180159a09
test dword [rbx + 0x80], 0x20000
je 0x180159b20
mov dl, 1
mov rcx, rbx
call fcn.18015a0e0
test al, al
je 0x180159b20
jmp 0x180159a09
cmp ecx, 0x5b
jne 0x180159780
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x180159711
cmp word [rax], 0x5c
jne 0x18015970a
lea r8, [rax + 2]
cmp r8, rcx
je 0x18015970a
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x1801596ed
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x180159706
cmp dx, 0x29
je 0x180159706
test r9b, 0x10
jne 0x18015970a
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x180159706
cmp dx, 0x7d
jne 0x18015970a
lea rax, [rcx + 2]
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.18015d100
lea rcx, [rbx + 0x40]
call fcn.180158a80
mov eax, dword [rbx + 0x7c]
cmp eax, 0x5e
jne 0x18015973d
mov rax, qword [rbx + 0x48]
mov rcx, rbx
xor dword [rax + 0xc], 1
call fcn.18015cb60
mov eax, dword [rbx + 0x7c]
test dword [rbx + 0x80], 0x20000000
je 0x180159761
cmp eax, 0x5d
jne 0x180159761
mov edx, eax
lea rcx, [rbx + 0x40]
call fcn.1801589e0
mov rcx, rbx
call fcn.18015cb60
mov rcx, rbx
call fcn.18015a6e0
cmp dword [rbx + 0x7c], 0x5d
jne 0x180159b58
mov rcx, rbx
call fcn.18015cb60
jmp 0x180159a09
cmp ecx, 0x28
jne 0x18015981b
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x1801597e8
cmp word [rax], 0x5c
jne 0x1801597e1
lea r8, [rax + 2]
cmp r8, rcx
je 0x1801597e1
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x1801597c4
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x1801597dd
cmp dx, 0x29
je 0x1801597dd
test r9b, 0x10
jne 0x1801597e1
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x1801597dd
cmp dx, 0x7d
jne 0x1801597e1
lea rax, [rcx + 2]
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.18015d100
mov rcx, rbx
call fcn.18015d380
cmp dword [rbx + 0x7c], 0x29
movzx edi, al
jne 0x180159b12
mov rcx, rbx
call fcn.18015cb60
test dil, dil
je 0x180159ad9
jmp 0x180159a09
cmp ecx, 0x5e
jne 0x1801598c7
mov ecx, 0x20
call fcn.1801a9850
test rax, rax
je 0x180159848
mov qword [rax], r15
mov qword [rax + 8], 2
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x18015984b
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015c460
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx]
cmp rax, rcx
je 0x180159950
cmp word [rax], 0x5c
jne 0x1801598b3
lea r8, [rax + 2]
cmp r8, rcx
je 0x1801598b3
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180159896
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x1801598af
cmp dx, 0x29
je 0x1801598af
test r9b, 0x10
jne 0x1801598b3
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x1801598af
cmp dx, 0x7d
jne 0x1801598b3
lea rax, [rcx + 2]
add rax, 2
mov rcx, rbx
mov qword [rbx], rax
call fcn.18015d100
jmp 0x180159ad9
cmp ecx, 0x24
jne 0x18015995d
mov ecx, 0x20
call fcn.1801a9850
test rax, rax
je 0x1801598f4
mov qword [rax], r15
mov qword [rax + 8], 3
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x1801598f7
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015c460
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180159950
cmp word [rax], 0x5c
jne 0x18015994c
lea rcx, [rax + 2]
cmp rcx, rdx
je 0x18015994c
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180159936
movzx eax, word [rcx]
sub ax, 0x28
cmp ax, 1
jbe 0x180159948
test dl, 0x10
jne 0x18015994c
movzx eax, word [rcx]
sub ax, 0x7b
test r12w, ax
jne 0x18015994c
add qword [rbx], 2
add qword [rbx], 2
mov rcx, rbx
call fcn.18015d100
jmp 0x180159ad9
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x180159b3c
cmp ecx, 0x3f
je 0x180159b3c
cmp ecx, 0x7b
je 0x180159b3c
cmp ecx, 0x7d
jne 0x180159992
test dword [rbx + 0x80], 0x10000000
je 0x180159b2e
jmp 0x1801599a7
cmp ecx, 0x5d
jne 0x1801599a7
test dword [rbx + 0x80], 0x10000000
je 0x180159b58
movzx edx, word [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.180158840
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180159a01
cmp word [rax], 0x5c
jne 0x1801599fd
lea rcx, [rax + 2]
cmp rcx, rdx
je 0x1801599fd
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x1801599e7
movzx eax, word [rcx]
sub ax, 0x28
cmp ax, 1
jbe 0x1801599f9
test dl, 0x10
jne 0x1801599fd
movzx eax, word [rcx]
sub ax, 0x7b
test r12w, ax
jne 0x1801599fd
add qword [rbx], 2
add qword [rbx], 2
mov rcx, rbx
call fcn.18015d100
mov eax, dword [rbx + 0x7c]
mov ebp, r14d
mov edi, 0xffffffff
cmp eax, 0x2a
je 0x180159a95
cmp eax, 0x2b
jne 0x180159a23
lea ebp, [rdi + 2]
jmp 0x180159a95
cmp eax, 0x3f
jne 0x180159a2d
lea edi, [rax - 0x3e]
jmp 0x180159a95
cmp eax, 0x7b
jne 0x180159ad9
mov rcx, rbx
call fcn.18015cb60
mov edx, 7
mov rcx, rbx
call fcn.18015a860
test al, al
je 0x180159b04
cmp dword [rbx + 0x7c], 0x2c
mov ebp, dword [rbx + 0x74]
je 0x180159a60
mov edi, ebp
jmp 0x180159a86
mov rcx, rbx
call fcn.18015cb60
cmp dword [rbx + 0x7c], 0x7d
je 0x180159a8c
mov edx, 7
mov rcx, rbx
call fcn.18015a860
test al, al
je 0x180159b04
mov edi, dword [rbx + 0x74]
cmp dword [rbx + 0x7c], 0x7d
jne 0x180159b04
cmp edi, 0xffffffff
je 0x180159a95
cmp edi, ebp
jl 0x180159b04
mov rax, qword [rbx + 0x48]
mov rcx, rbx
or dword [rax + 0xc], 4
call fcn.18015cb60
test dword [rbx + 0x80], 0x400
je 0x180159ac4
cmp dword [rbx + 0x7c], 0x3f
jne 0x180159ac4
xor sil, sil
mov rcx, rbx
call fcn.18015cb60
jmp 0x180159ac7
mov sil, 1
lea rcx, [rbx + 0x40]
movzx r9d, sil
mov r8d, edi
mov edx, ebp
call fcn.180158ff0
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1801592f4
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov edx, 7
mov rcx, rbx
call fcn.18015be20
int3
mov edx, 5
mov rcx, rbx
call fcn.18015be20
int3
mov edx, 2
mov rcx, rbx
call fcn.18015be20
int3
mov edx, 6
mov rcx, rbx
call fcn.18015be20
int3
mov edx, 0xa
mov rcx, rbx
call fcn.18015be20
int3
mov edx, 3
mov rcx, rbx
call fcn.18015be20
int3
mov edx, 4
mov rcx, rbx
call fcn.18015be20
int3