Function at 0x180156f30
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 0x180157767
lea r15, vtable.eI.0
xor r14d, r14d
lea r13, vtable.Z.0
mov r12d, 0xfffd
cmp ecx, 0x7c
je 0x180157767
cmp ecx, 0x29
jne 0x180156fa1
cmp dword [rbx + 0x1c], r14d
jne 0x180157767
test dword [rbx + 0x80], 0x10000000
je 0x180157792
jmp 0x180157627
cmp ecx, 0x2e
jne 0x18015705f
mov ecx, 0x20
call fcn.1801a7700
test rax, rax
je 0x180156fce
mov qword [rax], r15
mov qword [rax + 8], 5
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180156fd1
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015a0e0
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180157681
cmp word [rax], 0x5c
jne 0x180157053
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x180157050
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180157022
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x180157040
cmp cx, 0x29
je 0x180157040
mov rcx, rax
test r9b, 0x10
jne 0x180157050
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x180157040
mov rdx, rcx
cmp r8w, 0x7d
jne 0x180157050
lea rax, [rdx + 2]
add rax, 2
mov qword [rbx], rax
jmp 0x180157681
mov rax, rcx
add rax, 2
mov qword [rbx], rax
jmp 0x180157681
cmp ecx, 0x5c
jne 0x180157329
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x1801570d6
cmp word [rax], cx
jne 0x1801570cf
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x1801570cc
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x1801570a8
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x1801570c6
cmp cx, 0x29
je 0x1801570c6
mov rcx, rax
test r9b, 0x10
jne 0x1801570cc
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x1801570c6
mov rdx, rcx
cmp r8w, 0x7d
jne 0x1801570cc
lea rax, [rdx + 2]
jmp 0x1801570cf
mov rax, rcx
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.18015ad80
mov ecx, dword [rbx + 0x80]
test cl, cl
jns 0x180157209
movzx eax, word [rbx + 0x78]
cmp ax, 0x62
jne 0x1801571c3
mov ecx, 0x20
call fcn.1801a7700
test rax, rax
je 0x18015711e
mov qword [rax], r15
mov qword [rax + 8], 4
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180157121
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015a0e0
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x1801575d0
cmp word [rax], 0x5c
jne 0x180157533
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x1801571ac
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180157176
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x180157194
cmp cx, 0x29
je 0x180157194
mov rcx, rax
test r9b, 0x10
jne 0x1801571ac
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x180157194
mov rdx, rcx
cmp r8w, 0x7d
jne 0x1801571ac
lea rax, [rdx + 2]
mov rcx, rbx
add rax, 2
mov qword [rbx], rax
call fcn.18015ad80
jmp 0x180157759
mov rax, rcx
mov rcx, rbx
add rax, 2
mov qword [rbx], rax
call fcn.18015ad80
jmp 0x180157759
cmp ax, 0x42
jne 0x180157209
mov ecx, 0x20
call fcn.1801a7700
test rax, rax
je 0x1801571ed
mov qword [rax], r15
mov qword [rax + 8], 4
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x1801571f0
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015a0e0
mov rax, qword [rbx + 0x48]
xor dword [rax + 0xc], 1
jmp 0x1801574d7
bt ecx, 8
jae 0x1801572e4
mov edx, 3
mov rcx, rbx
call fcn.1801584e0
test al, al
je 0x1801572e4
mov edi, dword [rbx + 0x74]
mov eax, dword [rbx + 0x80]
test edi, edi
jne 0x180157250
bt eax, 0x14
jae 0x1801577a0
lea rcx, [rbx + 0x40]
movzx edx, di
call fcn.1801564c0
jmp 0x180157689
bt eax, 9
jae 0x18015725f
cmp edi, 9
ja 0x1801577ca
mov eax, edi
movsxd rcx, eax
mov eax, dword [rbx + 0x18]
cmp rax, rcx
jb 0x1801577ca
cmp qword [rbx + 0x38], rcx
jbe 0x1801577ca
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 0x1801577ca
mov ecx, 0x28
call fcn.1801a7700
test rax, rax
je 0x1801572d0
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.18015a0e0
jmp 0x180157689
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015a0e0
jmp 0x180157689
mov rcx, rbx
call fcn.180157e10
test al, al
je 0x180157302
movzx edx, word [rbx + 0x74]
lea rcx, [rbx + 0x40]
call fcn.1801564c0
jmp 0x180157689
test dword [rbx + 0x80], 0x20000
je 0x1801577a0
mov dl, 1
mov rcx, rbx
call fcn.180157d60
test al, al
je 0x1801577a0
jmp 0x180157689
cmp ecx, 0x5b
jne 0x180157400
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x180157391
cmp word [rax], 0x5c
jne 0x18015738a
lea r8, [rax + 2]
cmp r8, rcx
je 0x18015738a
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x18015736d
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x180157386
cmp dx, 0x29
je 0x180157386
test r9b, 0x10
jne 0x18015738a
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x180157386
cmp dx, 0x7d
jne 0x18015738a
lea rax, [rcx + 2]
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.18015ad80
lea rcx, [rbx + 0x40]
call fcn.180156700
mov eax, dword [rbx + 0x7c]
cmp eax, 0x5e
jne 0x1801573bd
mov rax, qword [rbx + 0x48]
mov rcx, rbx
xor dword [rax + 0xc], 1
call fcn.18015a7e0
mov eax, dword [rbx + 0x7c]
test dword [rbx + 0x80], 0x20000000
je 0x1801573e1
cmp eax, 0x5d
jne 0x1801573e1
mov edx, eax
lea rcx, [rbx + 0x40]
call fcn.180156660
mov rcx, rbx
call fcn.18015a7e0
mov rcx, rbx
call fcn.180158360
cmp dword [rbx + 0x7c], 0x5d
jne 0x1801577d8
mov rcx, rbx
call fcn.18015a7e0
jmp 0x180157689
cmp ecx, 0x28
jne 0x18015749b
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x180157468
cmp word [rax], 0x5c
jne 0x180157461
lea r8, [rax + 2]
cmp r8, rcx
je 0x180157461
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180157444
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x18015745d
cmp dx, 0x29
je 0x18015745d
test r9b, 0x10
jne 0x180157461
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x18015745d
cmp dx, 0x7d
jne 0x180157461
lea rax, [rcx + 2]
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.18015ad80
mov rcx, rbx
call fcn.18015b000
cmp dword [rbx + 0x7c], 0x29
movzx edi, al
jne 0x180157792
mov rcx, rbx
call fcn.18015a7e0
test dil, dil
je 0x180157759
jmp 0x180157689
cmp ecx, 0x5e
jne 0x180157547
mov ecx, 0x20
call fcn.1801a7700
test rax, rax
je 0x1801574c8
mov qword [rax], r15
mov qword [rax + 8], 2
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x1801574cb
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015a0e0
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx]
cmp rax, rcx
je 0x1801575d0
cmp word [rax], 0x5c
jne 0x180157533
lea r8, [rax + 2]
cmp r8, rcx
je 0x180157533
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180157516
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x18015752f
cmp dx, 0x29
je 0x18015752f
test r9b, 0x10
jne 0x180157533
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x18015752f
cmp dx, 0x7d
jne 0x180157533
lea rax, [rcx + 2]
add rax, 2
mov rcx, rbx
mov qword [rbx], rax
call fcn.18015ad80
jmp 0x180157759
cmp ecx, 0x24
jne 0x1801575dd
mov ecx, 0x20
call fcn.1801a7700
test rax, rax
je 0x180157574
mov qword [rax], r15
mov qword [rax + 8], 3
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180157577
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.18015a0e0
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x1801575d0
cmp word [rax], 0x5c
jne 0x1801575cc
lea rcx, [rax + 2]
cmp rcx, rdx
je 0x1801575cc
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x1801575b6
movzx eax, word [rcx]
sub ax, 0x28
cmp ax, 1
jbe 0x1801575c8
test dl, 0x10
jne 0x1801575cc
movzx eax, word [rcx]
sub ax, 0x7b
test r12w, ax
jne 0x1801575cc
add qword [rbx], 2
add qword [rbx], 2
mov rcx, rbx
call fcn.18015ad80
jmp 0x180157759
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x1801577bc
cmp ecx, 0x3f
je 0x1801577bc
cmp ecx, 0x7b
je 0x1801577bc
cmp ecx, 0x7d
jne 0x180157612
test dword [rbx + 0x80], 0x10000000
je 0x1801577ae
jmp 0x180157627
cmp ecx, 0x5d
jne 0x180157627
test dword [rbx + 0x80], 0x10000000
je 0x1801577d8
movzx edx, word [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.1801564c0
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180157681
cmp word [rax], 0x5c
jne 0x18015767d
lea rcx, [rax + 2]
cmp rcx, rdx
je 0x18015767d
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180157667
movzx eax, word [rcx]
sub ax, 0x28
cmp ax, 1
jbe 0x180157679
test dl, 0x10
jne 0x18015767d
movzx eax, word [rcx]
sub ax, 0x7b
test r12w, ax
jne 0x18015767d
add qword [rbx], 2
add qword [rbx], 2
mov rcx, rbx
call fcn.18015ad80
mov eax, dword [rbx + 0x7c]
mov ebp, r14d
mov edi, 0xffffffff
cmp eax, 0x2a
je 0x180157715
cmp eax, 0x2b
jne 0x1801576a3
lea ebp, [rdi + 2]
jmp 0x180157715
cmp eax, 0x3f
jne 0x1801576ad
lea edi, [rax - 0x3e]
jmp 0x180157715
cmp eax, 0x7b
jne 0x180157759
mov rcx, rbx
call fcn.18015a7e0
mov edx, 7
mov rcx, rbx
call fcn.1801584e0
test al, al
je 0x180157784
cmp dword [rbx + 0x7c], 0x2c
mov ebp, dword [rbx + 0x74]
je 0x1801576e0
mov edi, ebp
jmp 0x180157706
mov rcx, rbx
call fcn.18015a7e0
cmp dword [rbx + 0x7c], 0x7d
je 0x18015770c
mov edx, 7
mov rcx, rbx
call fcn.1801584e0
test al, al
je 0x180157784
mov edi, dword [rbx + 0x74]
cmp dword [rbx + 0x7c], 0x7d
jne 0x180157784
cmp edi, 0xffffffff
je 0x180157715
cmp edi, ebp
jl 0x180157784
mov rax, qword [rbx + 0x48]
mov rcx, rbx
or dword [rax + 0xc], 4
call fcn.18015a7e0
test dword [rbx + 0x80], 0x400
je 0x180157744
cmp dword [rbx + 0x7c], 0x3f
jne 0x180157744
xor sil, sil
mov rcx, rbx
call fcn.18015a7e0
jmp 0x180157747
mov sil, 1
lea rcx, [rbx + 0x40]
movzx r9d, sil
mov r8d, edi
mov edx, ebp
call fcn.180156c70
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x180156f74
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.180159aa0
int3
mov edx, 5
mov rcx, rbx
call fcn.180159aa0
int3
mov edx, 2
mov rcx, rbx
call fcn.180159aa0
int3
mov edx, 6
mov rcx, rbx
call fcn.180159aa0
int3
mov edx, 0xa
mov rcx, rbx
call fcn.180159aa0
int3
mov edx, 3
mov rcx, rbx
call fcn.180159aa0
int3
mov edx, 4
mov rcx, rbx
call fcn.180159aa0
int3