Function at 0x140081750
Capabilities:
Parse credit card information

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov r12, r8
mov esi, edx
mov rbx, rcx
xor r15d, r15d
mov dword [rbp - 0x48], r15d
mov rdi, qword [rcx + 0x10]
jmp 0x14008179d
cmp dword [rdi + 8], 0x2d
jne 0x1400817a2
mov rdi, qword [rdi + 0x10]
test rdi, rdi
jne 0x140081793
mov r13, r15
mov qword [rbp - 0x40], r15
mov r14, r15
mov eax, 1
mov byte [rbp - 0x4c], al
lea edx, [rax + 7]
lea r8d, [rax + 0x16]
lea rcx, [rbp - 0x30]
call fcn.1400a2908
nop
mov rbx, qword [rbx + 0xa8]
mov rax, rbx
test rbx, rbx
je 0x1400817e3
cmp dword [rax + 8], 0x50
je 0x1400817e6
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1400817d4
mov rax, r15
test rax, rax
je 0x140081855
lea rbx, [rax + 0x28]
cmp qword [rbx + 0x18], 0x10
jb 0x1400817f9
mov rbx, qword [rbx]
mov rcx, r12
call fcn.1400a0f00
mov rdx, rbx
mov rcx, r12
call fcn.1400a0b98
lea rdx, [0x1401964c0]
mov rcx, r12
call fcn.1400a0b98
nop
mov rdi, qword [rbp - 0x18]
test rdi, rdi
je 0x140081a3b
mov rbx, qword [rdi + 8]
mov edx, 8
mov rcx, qword [rdi + 0x10]
call fcn.1401313f8
mov edx, 0x18
mov rcx, rdi
call fcn.1401313f8
mov rdi, rbx
test rbx, rbx
jne 0x140081829
jmp 0x140081a3b
bt esi, 0x18
jb 0x140081894
mov rdi, qword [rbp - 0x18]
test rdi, rdi
je 0x140081a3b
mov rbx, qword [rdi + 8]
mov edx, 8
mov rcx, qword [rdi + 0x10]
call fcn.1401313f8
mov edx, 0x18
mov rcx, rdi
call fcn.1401313f8
mov rdi, rbx
test rbx, rbx
jne 0x140081868
jmp 0x140081a3b
test rdi, rdi
je 0x140082084
mov rax, rbx
test rbx, rbx
je 0x1400818b4
cmp dword [rax + 8], 0x4b
je 0x1400818b7
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1400818a5
mov rax, r15
mov ecx, r15d
test rax, rax
setne cl
mov rax, rbx
test rbx, rbx
je 0x1400818da
cmp dword [rax + 8], 0xbf
je 0x1400818dd
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x1400818c8
mov rax, r15
mov esi, ecx
or esi, 2
test rax, rax
cmove esi, ecx
test esi, esi
mov eax, 1
cmove esi, eax
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0xc8]
call qword [case.0x140068c32.0]
test eax, eax
jne 0x140081a5f
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0xd8]
call qword [case.0x140068c32.0]
test eax, eax
jne 0x140081967
mov rdi, qword [rbp - 0x18]
test rdi, rdi
je 0x140081a3b
mov rbx, qword [rdi + 8]
mov edx, 8
mov rcx, qword [rdi + 0x10]
call fcn.1401313f8
mov edx, 0x18
mov rcx, rdi
call fcn.1401313f8
mov rdi, rbx
test rbx, rbx
jne 0x140081931
jmp 0x140081a3b
cmp dword [rbx + 8], 7
je 0x14008196f
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x14008195d
mov rbx, r15
test rbx, rbx
je 0x140081a0b
lea rdx, str.__RPC_
mov rcx, r12
call fcn.1400a0b98
mov eax, 1
test al, sil
je 0x1400819a0
lea rdx, [0x140196488]
mov rcx, r12
call fcn.1400a0b98
lea rdx, str._range_
mov rcx, r12
call fcn.1400a0b98
mov rcx, qword [rbx + 0x28]
mov rax, qword [rcx]
mov rdx, r12
mov rax, qword [rax + 0xc0]
call qword [case.0x140068c32.0]
lea rdx, [0x14016ef44]
mov rcx, r12
call fcn.1400a0b98
mov rcx, qword [rbx + 0x30]
mov rax, qword [rcx]
mov rdx, r12
mov rax, qword [rax + 0xc0]
call qword [case.0x140068c32.0]
lea rdx, [0x14016ef3c]
mov rcx, r12
call fcn.1400a0b98
lea rdx, str._________0123456789:_____AEFGHIJKLMNOPQRTUVWXYZ____abcdefghijklmnopqrstuvwxyz
mov rcx, r12
call fcn.1400a0b98
nop
mov rdi, qword [rbp - 0x18]
test rdi, rdi
je 0x140081a3b
mov rbx, qword [rdi + 8]
mov edx, 8
mov rcx, qword [rdi + 0x10]
call fcn.1401313f8
mov edx, 0x18
mov rcx, rdi
call fcn.1401313f8
mov rdi, rbx
test rbx, rbx
jne 0x140081a14
xor eax, eax
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov r15, rdi
cmp dword [rdi + 8], 0x3d
mov eax, 0
cmovne r15, rax
jmp 0x140081a77
cmp dword [rdi + 8], 0x2d
jne 0x140081a80
mov rdi, qword [rdi + 0x10]
test rdi, rdi
jne 0x140081a71
lea rcx, [rbp - 0x30]
call fcn.140079a94
mov rax, rbx
xor ecx, ecx
test rbx, rbx
je 0x140081aa2
cmp dword [rax + 8], 0x3c
je 0x140081aa5
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x140081a93
mov rax, rcx
test rax, rax
je 0x140081acc
test rdi, rdi
je 0x140081acc
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0xc8]
call qword [case.0x140068c32.0]
xor ecx, ecx
test eax, eax
mov byte [rbp - 0x50], 1
je 0x140081acf
mov byte [rbp - 0x50], cl
lea rax, [0x140160598]
mov rdx, qword [rax + rsi*8]
lea rcx, [rbp - 0x30]
call fcn.140079b24
mov rcx, rbx
xor edx, edx
test rbx, rbx
je 0x140081afc
cmp dword [rcx + 8], 6
je 0x140081aff
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x140081aed
mov rcx, rdx
lea rsi, vtable.type_info.0
test rcx, rcx
je 0x140081b2c
mov dword [rsp + 0x20], edx
mov r9, rsi
lea r8, vtable.type_info.0
call fcn.14013a2a0
mov r13, rax
xor edx, edx
test rax, rax
je 0x14008209d
mov rcx, rbx
test rbx, rbx
je 0x140081b43
cmp dword [rcx + 8], 5
je 0x140081b46
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x140081b34
mov rcx, rdx
test rcx, rcx
je 0x140081b6c
mov dword [rbp - 0x48], 1
mov dword [rsp + 0x20], edx
mov r9, rsi
lea r8, vtable.type_info.0
xor edx, edx
call fcn.14013a2a0
mov r13, rax
xor edx, edx
mov rcx, rbx
test rbx, rbx
je 0x140081b83
cmp dword [rcx + 8], 3
je 0x140081b86
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x140081b74
mov rcx, rdx
test rcx, rcx
je 0x140081bab
mov dword [rsp + 0x20], edx
mov r9, rsi
lea r8, vtable.type_info.0
xor edx, edx
call fcn.14013a2a0
mov rsi, rax
mov qword [rbp - 0x40], rax
xor edx, edx
jmp 0x140081baf
mov rsi, qword [rbp - 0x40]
test r13, r13
je 0x140081c33
mov rcx, qword [r13]
mov rax, qword [rcx + 0x18]
mov rcx, r13
call qword [case.0x140068c32.0]
mov r14, rax
mov r15d, dword [rbp - 0x4c]
movzx r15d, r15b
xor eax, eax
test r14, r14
cmovne r15d, eax
mov dword [rbp - 0x4c], r15d
cmp dword [rbp - 0x48], eax
je 0x140081bfc
test r14, r14
je 0x140081bfc
call fcn.140091d20
mov r8, rax
mov rdx, r14
call fcn.140091b0c
mov r14, rax
xor eax, eax
mov dword [rsp + 0x20], eax
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, qword [r13 + 0x10]
call fcn.14013a2a0
mov r13, rax
xor edx, edx
test rax, rax
je 0x140081c46
mov eax, dword [rax + 8]
sub eax, 5
cmp eax, 1
jbe 0x140081c46
mov r13d, edx
jmp 0x140081c46
test r15, r15
je 0x140081c46
cmp qword [r15 + 0x58], 0xffffffffffffffff
je 0x140081c46
mov r14, qword [r15 + 0x58]
mov byte [rbp - 0x4c], dl
test rsi, rsi
je 0x140081ca1
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [case.0x140068c32.0]
mov r15, rax
movzx ecx, byte [rbp - 0x4c]
xor eax, eax
test r15, r15
cmovne ecx, eax
mov byte [rbp - 0x4c], cl
mov dword [rsp + 0x20], eax
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, qword [rsi + 0x10]
call fcn.14013a2a0
mov qword [rbp - 0x40], rax
xor edx, edx
test rax, rax
je 0x140081ca4
cmp dword [rax + 8], 3
je 0x140081ca4
mov qword [rbp - 0x40], rdx
jmp 0x140081ca4
mov r15, rdx
mov rcx, rbx
test rbx, rbx
je 0x140081cbb
cmp dword [rcx + 8], 0x3b
je 0x140081cbe
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x140081cac
mov rcx, rdx
mov dword [rsp + 0x20], edx
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
call fcn.14013a2a0
mov rsi, rax
cmp byte [rbp - 0x4c], 0
jne 0x140081d6e
mov rax, qword [rbp + 0x30]
test dword [rax + 0x138], 0x1000
lea rax, str._ecount
lea rdx, str._xcount
cmove rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140079c0c
xor ebx, ebx
test r15, r15
je 0x140081d2f
lea rdx, str._part
lea rcx, [rbp - 0x30]
call fcn.140079c0c
test r14, r14
je 0x14008206b
jmp 0x140081d48
test r14, r14
je 0x1400820b6
lea rdx, str._full
lea rcx, [rbp - 0x30]
call fcn.140079c0c
test rsi, rsi
je 0x140081d5c
mov eax, 1
cmp word [rsi + 0x28], ax
jne 0x140081f56
test rdi, rdi
je 0x140081f66
cmp dword [rdi + 8], 0x33
jmp 0x140081f54
test rdi, rdi
je 0x140081f20
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0xc8]
call qword [case.0x140068c32.0]
test eax, eax
je 0x140081f20
test rsi, rsi
je 0x140081db2
mov eax, 1
cmp word [rsi + 0x28], ax
je 0x140081db2
lea rdx, str._opt
lea rcx, [rbp - 0x30]
call fcn.140079b24
lea rdx, str._deref
lea rcx, [rbp - 0x30]
call fcn.140079b24
mov rdi, qword [rdi + 0x10]
xor eax, eax
jmp 0x140081dd4
cmp dword [rbx + 8], 0x3c
je 0x140081ddc
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x140081dca
mov rbx, rax
test rbx, rbx
je 0x140081e08
xor ebx, ebx
test rdi, rdi
je 0x140081e08
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0xc8]
call qword [case.0x140068c32.0]
test eax, eax
jne 0x140081e08
lea esi, [rbx + 1]
mov byte [rbp - 0x50], sil
jmp 0x140081e10
mov byte [rbp - 0x50], bl
mov esi, 1
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x140081e29
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140068c32.0]
mov r15, rax
test r13, r13
je 0x140081e42
mov rax, qword [r13]
mov rcx, r13
mov rax, qword [rax + 0x18]
call qword [case.0x140068c32.0]
mov r14, rax
test r14, r14
jne 0x140081e50
test r15, r15
je 0x140081f19
mov rax, qword [rbp + 0x30]
test dword [rax + 0x138], 0x1000
lea rax, str._ecount
lea rdx, str._xcount
cmove rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140079c0c
test r15, r15
je 0x140081e90
test r14, r14
je 0x140082052
lea rdx, str._part
jmp 0x140081ea0
test r14, r14
je 0x140081f19
lea rdx, str._full
lea rcx, [rbp - 0x30]
call fcn.140079c0c
jmp 0x140081f19
cmp dword [rdi + 8], 0x2d
jne 0x140081f56
mov dword [rsp + 0x20], ebx
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rdi
call fcn.14013a2a0
test rax, rax
je 0x140081f15
mov rcx, qword [rax + 0xa8]
jmp 0x140081ee9
cmp dword [rcx + 8], 0x3b
je 0x140081ef1
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x140081edf
mov rcx, rbx
mov dword [rsp + 0x20], ebx
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
call fcn.14013a2a0
test rax, rax
je 0x140081f15
cmp word [rax + 0x28], si
je 0x140081f66
mov rdi, qword [rdi + 0x10]
test rdi, rdi
jne 0x140081eab
jmp 0x140081f56
xor ebx, ebx
test rsi, rsi
je 0x140081f30
lea eax, [rbx + 1]
cmp word [rsi + 0x28], ax
jne 0x140081f56
test rdi, rdi
je 0x140081f66
mov eax, dword [rdi + 8]
cmp eax, 0x33
je 0x140081f56
cmp eax, 0x46
je 0x140081f56
cmp eax, 0x30
je 0x140081f56
cmp eax, 0x48
je 0x140081f56
cmp eax, 0x44
je 0x140081f56
cmp eax, 0x45
jne 0x140081f66
lea rdx, str._opt
lea rcx, [rbp - 0x30]
call fcn.140079c0c
cmp byte [rbp - 0x50], bl
je 0x140081f7b
lea rdx, str._string
lea rcx, [rbp - 0x30]
call fcn.140079c0c
lea rdx, str.__RPC_
lea rcx, [rbp - 0x30]
call fcn.140079b24
mov rdx, r12
lea rcx, [rbp - 0x30]
call fcn.1400a29d4
test r14, r14
jne 0x140081fa1
test r15, r15
je 0x140082009
lea rdx, [0x14016ef38]
mov rcx, r12
call fcn.1400a0b98
test r14, r14
je 0x140081fcb
mov rax, qword [r14]
mov rdx, r12
mov rcx, r14
mov rax, qword [rax + 0xc0]
call qword [case.0x140068c32.0]
test r15, r15
je 0x140081ffa
test r14, r14
je 0x140081fe4
lea rdx, [0x140189964]
mov rcx, r12
call fcn.1400a0b98
mov rax, qword [r15]
mov rdx, r12
mov rcx, r15
mov rax, qword [rax + 0xc0]
call qword [case.0x140068c32.0]
lea rdx, [0x14016ef3c]
mov rcx, r12
call fcn.1400a0b98
lea rdx, str._________0123456789:_____AEFGHIJKLMNOPQRTUVWXYZ____abcdefghijklmnopqrstuvwxyz
mov rcx, r12
call fcn.1400a0b98
nop
mov rdi, qword [rbp - 0x18]
test rdi, rdi
je 0x140081a3b
mov rbx, qword [rdi + 8]
mov edx, 8
mov rcx, qword [rdi + 0x10]
call fcn.1401313f8
mov edx, 0x18
mov rcx, rdi
call fcn.1401313f8
mov rdi, rbx
test rbx, rbx
jne 0x140082026
jmp 0x140081a3b
lea r8, str.pSize___NULL
mov edx, 0x1c4
lea rcx, str.com_rpcmidlmidlrt_frontprtsal.cxx
call fcn.14009bc1c
int3
lea r8, [0x14016ef50]
mov edx, 0x18c
lea rcx, str.com_rpcmidlmidlrt_frontprtsal.cxx
call fcn.14009bc1c
int3
lea r8, str.pChild
mov edx, 0xfd
lea rcx, str.com_rpcmidlmidlrt_frontprtsal.cxx
call fcn.14009bc1c
int3
lea r8, str.pSizeAttr___NULL
mov edx, 0x13c
lea rcx, str.com_rpcmidlmidlrt_frontprtsal.cxx
call fcn.14009bc1c
int3
lea r8, str.pSize
mov edx, 0x191
lea rcx, str.com_rpcmidlmidlrt_frontprtsal.cxx
call fcn.14009bc1c
int3