Function at 0x180163ae0
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 0x180164327
cmp ecx, 0x7c
je 0x180164327
lea r15, method.X.virtual_0
xor r14d, r14d
lea r13, vtable.FW.0
mov r12d, 0xfffd
nop dword [rax]
cmp ecx, 0x29
jne 0x180163b54
cmp dword [rbx + 0x1c], r14d
jne 0x180164327
test dword [rbx + 0x80], 0x10000000
je 0x180164352
jmp 0x1801641da
cmp ecx, 0x2e
jne 0x180163c12
mov ecx, 0x20
call fcn.1801b6850
test rax, rax
je 0x180163b81
mov qword [rax], r15
mov qword [rax + 8], 5
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180163b84
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.180166d20
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180164234
cmp word [rax], 0x5c
jne 0x180163c06
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x180163c03
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180163bd5
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x180163bf3
cmp cx, 0x29
je 0x180163bf3
mov rcx, rax
test r9b, 0x10
jne 0x180163c03
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x180163bf3
mov rdx, rcx
cmp r8w, 0x7d
jne 0x180163c03
lea rax, [rdx + 2]
add rax, 2
mov qword [rbx], rax
jmp 0x180164234
mov rax, rcx
add rax, 2
mov qword [rbx], rax
jmp 0x180164234
cmp ecx, 0x5c
jne 0x180163edc
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180163c89
cmp word [rax], cx
jne 0x180163c82
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x180163c7f
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180163c5b
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x180163c79
cmp cx, 0x29
je 0x180163c79
mov rcx, rax
test r9b, 0x10
jne 0x180163c7f
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x180163c79
mov rdx, rcx
cmp r8w, 0x7d
jne 0x180163c7f
lea rax, [rdx + 2]
jmp 0x180163c82
mov rax, rcx
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.1801679c0
mov ecx, dword [rbx + 0x80]
test cl, cl
jns 0x180163dbc
movzx eax, word [rbx + 0x78]
cmp ax, 0x62
jne 0x180163d76
mov ecx, 0x20
call fcn.1801b6850
test rax, rax
je 0x180163cd1
mov qword [rax], r15
mov qword [rax + 8], 4
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180163cd4
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.180166d20
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180164183
cmp word [rax], 0x5c
jne 0x1801640e6
lea r8, [rax + 2]
mov rcx, rax
cmp r8, rdx
je 0x180163d5f
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180163d29
movzx ecx, word [r8]
mov rdx, rax
cmp cx, 0x28
je 0x180163d47
cmp cx, 0x29
je 0x180163d47
mov rcx, rax
test r9b, 0x10
jne 0x180163d5f
movzx r8d, word [r8]
mov rdx, rax
cmp r8w, 0x7b
je 0x180163d47
mov rdx, rcx
cmp r8w, 0x7d
jne 0x180163d5f
lea rax, [rdx + 2]
mov rcx, rbx
add rax, 2
mov qword [rbx], rax
call fcn.1801679c0
jmp 0x180164314
mov rax, rcx
mov rcx, rbx
add rax, 2
mov qword [rbx], rax
call fcn.1801679c0
jmp 0x180164314
cmp ax, 0x42
jne 0x180163dbc
mov ecx, 0x20
call fcn.1801b6850
test rax, rax
je 0x180163da0
mov qword [rax], r15
mov qword [rax + 8], 4
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x180163da3
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.180166d20
mov rax, qword [rbx + 0x48]
xor dword [rax + 0xc], 1
jmp 0x18016408a
bt ecx, 8
jae 0x180163e97
mov edx, 3
mov rcx, rbx
call fcn.1801650a0
test al, al
je 0x180163e97
mov edi, dword [rbx + 0x74]
mov eax, dword [rbx + 0x80]
test edi, edi
jne 0x180163e03
bt eax, 0x14
jae 0x180164360
lea rcx, [rbx + 0x40]
movzx edx, di
call fcn.180163050
jmp 0x18016423c
bt eax, 9
jae 0x180163e12
cmp edi, 9
ja 0x18016438a
mov eax, edi
movsxd rcx, eax
mov eax, dword [rbx + 0x18]
cmp rax, rcx
jb 0x18016438a
cmp qword [rbx + 0x38], rcx
jbe 0x18016438a
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 0x18016438a
mov ecx, 0x28
call fcn.1801b6850
test rax, rax
je 0x180163e83
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.180166d20
jmp 0x18016423c
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.180166d20
jmp 0x18016423c
mov rcx, rbx
call fcn.1801649d0
test al, al
je 0x180163eb5
movzx edx, word [rbx + 0x74]
lea rcx, [rbx + 0x40]
call fcn.180163050
jmp 0x18016423c
test dword [rbx + 0x80], 0x20000
je 0x180164360
mov dl, 1
mov rcx, rbx
call fcn.180164920
test al, al
je 0x180164360
jmp 0x18016423c
cmp ecx, 0x5b
jne 0x180163fb3
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x180163f44
cmp word [rax], 0x5c
jne 0x180163f3d
lea r8, [rax + 2]
cmp r8, rcx
je 0x180163f3d
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180163f20
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x180163f39
cmp dx, 0x29
je 0x180163f39
test r9b, 0x10
jne 0x180163f3d
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x180163f39
cmp dx, 0x7d
jne 0x180163f3d
lea rax, [rcx + 2]
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.1801679c0
lea rcx, [rbx + 0x40]
call fcn.1801632a0
mov eax, dword [rbx + 0x7c]
cmp eax, 0x5e
jne 0x180163f70
mov rax, qword [rbx + 0x48]
mov rcx, rbx
xor dword [rax + 0xc], 1
call fcn.180167420
mov eax, dword [rbx + 0x7c]
test dword [rbx + 0x80], 0x20000000
je 0x180163f94
cmp eax, 0x5d
jne 0x180163f94
mov edx, eax
lea rcx, [rbx + 0x40]
call fcn.180163200
mov rcx, rbx
call fcn.180167420
mov rcx, rbx
call fcn.180164f20
cmp dword [rbx + 0x7c], 0x5d
jne 0x180164398
mov rcx, rbx
call fcn.180167420
jmp 0x18016423c
cmp ecx, 0x28
jne 0x18016404e
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x18016401b
cmp word [rax], 0x5c
jne 0x180164014
lea r8, [rax + 2]
cmp r8, rcx
je 0x180164014
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x180163ff7
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x180164010
cmp dx, 0x29
je 0x180164010
test r9b, 0x10
jne 0x180164014
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x180164010
cmp dx, 0x7d
jne 0x180164014
lea rax, [rcx + 2]
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.1801679c0
mov rcx, rbx
call fcn.180167c40
cmp dword [rbx + 0x7c], 0x29
movzx edi, al
jne 0x180164352
mov rcx, rbx
call fcn.180167420
test dil, dil
je 0x180164314
jmp 0x18016423c
cmp ecx, 0x5e
jne 0x1801640fa
mov ecx, 0x20
call fcn.1801b6850
test rax, rax
je 0x18016407b
mov qword [rax], r15
mov qword [rax + 8], 2
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x18016407e
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.180166d20
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx]
cmp rax, rcx
je 0x180164183
cmp word [rax], 0x5c
jne 0x1801640e6
lea r8, [rax + 2]
cmp r8, rcx
je 0x1801640e6
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x1801640c9
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x28
je 0x1801640e2
cmp dx, 0x29
je 0x1801640e2
test r9b, 0x10
jne 0x1801640e6
movzx edx, word [r8]
mov rcx, rax
cmp dx, 0x7b
je 0x1801640e2
cmp dx, 0x7d
jne 0x1801640e6
lea rax, [rcx + 2]
add rax, 2
mov rcx, rbx
mov qword [rbx], rax
call fcn.1801679c0
jmp 0x180164314
cmp ecx, 0x24
jne 0x180164190
mov ecx, 0x20
call fcn.1801b6850
test rax, rax
je 0x180164127
mov qword [rax], r15
mov qword [rax + 8], 3
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
jmp 0x18016412a
mov rax, r14
lea rcx, [rbx + 0x40]
mov rdx, rax
call fcn.180166d20
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180164183
cmp word [rax], 0x5c
jne 0x18016417f
lea rcx, [rax + 2]
cmp rcx, rdx
je 0x18016417f
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x180164169
movzx eax, word [rcx]
sub ax, 0x28
cmp ax, 1
jbe 0x18016417b
test dl, 0x10
jne 0x18016417f
movzx eax, word [rcx]
sub ax, 0x7b
test r12w, ax
jne 0x18016417f
add qword [rbx], 2
add qword [rbx], 2
mov rcx, rbx
call fcn.1801679c0
jmp 0x180164314
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x18016437c
cmp ecx, 0x3f
je 0x18016437c
cmp ecx, 0x7b
je 0x18016437c
cmp ecx, 0x7d
jne 0x1801641c5
test dword [rbx + 0x80], 0x10000000
je 0x18016436e
jmp 0x1801641da
cmp ecx, 0x5d
jne 0x1801641da
test dword [rbx + 0x80], 0x10000000
je 0x180164398
movzx edx, word [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.180163050
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x180164234
cmp word [rax], 0x5c
jne 0x180164230
lea rcx, [rax + 2]
cmp rcx, rdx
je 0x180164230
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x18016421a
movzx eax, word [rcx]
sub ax, 0x28
cmp ax, 1
jbe 0x18016422c
test dl, 0x10
jne 0x180164230
movzx eax, word [rcx]
sub ax, 0x7b
test r12w, ax
jne 0x180164230
add qword [rbx], 2
add qword [rbx], 2
mov rcx, rbx
call fcn.1801679c0
mov eax, dword [rbx + 0x7c]
mov ebp, r14d
mov edi, 0xffffffff
cmp eax, 0x2a
je 0x1801642d0
cmp eax, 0x2b
jne 0x18016425c
mov ebp, 1
jmp 0x1801642d0
cmp eax, 0x3f
jne 0x180164268
mov edi, 1
jmp 0x1801642d0
cmp eax, 0x7b
jne 0x180164314
mov rcx, rbx
call fcn.180167420
mov edx, 7
mov rcx, rbx
call fcn.1801650a0
test al, al
je 0x180164344
cmp dword [rbx + 0x7c], 0x2c
mov ebp, dword [rbx + 0x74]
je 0x18016429b
mov edi, ebp
jmp 0x1801642c1
mov rcx, rbx
call fcn.180167420
cmp dword [rbx + 0x7c], 0x7d
je 0x1801642c7
mov edx, 7
mov rcx, rbx
call fcn.1801650a0
test al, al
je 0x180164344
mov edi, dword [rbx + 0x74]
cmp dword [rbx + 0x7c], 0x7d
jne 0x180164344
cmp edi, 0xffffffff
je 0x1801642d0
cmp edi, ebp
jl 0x180164344
mov rax, qword [rbx + 0x48]
mov rcx, rbx
or dword [rax + 0xc], 4
call fcn.180167420
test dword [rbx + 0x80], 0x400
je 0x1801642ff
cmp dword [rbx + 0x7c], 0x3f
jne 0x1801642ff
xor sil, sil
mov rcx, rbx
call fcn.180167420
jmp 0x180164302
mov sil, 1
lea rcx, [rbx + 0x40]
movzx r9d, sil
mov r8d, edi
mov edx, ebp
call fcn.180163820
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
je 0x180164327
cmp ecx, 0x7c
jne 0x180163b30
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.180166670
int3
mov edx, 5
mov rcx, rbx
call fcn.180166670
int3
mov edx, 2
mov rcx, rbx
call fcn.180166670
int3
mov edx, 6
mov rcx, rbx
call fcn.180166670
int3
mov edx, 0xa
mov rcx, rbx
call fcn.180166670
int3
mov edx, 3
mov rcx, rbx
call fcn.180166670
int3
mov edx, 4
mov rcx, rbx
call fcn.180166670
int3