Function at 0x14006d890
Capabilities:
Parse credit card information

Disassembly:
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x40
mov r13, qword [rcx + 0x38]
xor esi, esi
xor r15d, r15d
mov rdi, rcx
mov rax, qword [r13 + 0x20]
lea r12d, [rsi + 0x64]
cmp byte [rax], 0x3c
jne 0x14006e029
cmp byte [rax + 1], 0x3f
jne 0x14006e029
add dword [rcx + 0x130], 2
mov qword [rsp + 0x38], rbp
mov ebp, dword [rcx + 0x108]
mov dword [rcx + 0x108], 2
add qword [r13 + 0x20], 2
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x70], ebp
add dword [rax + 0x38], 2
mov rcx, qword [rcx + 0x38]
mov rax, qword [rcx + 0x20]
cmp byte [rax], 0x25
jne 0x14006d90f
mov rcx, rdi
call fcn.140074c60
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
cmp byte [rax], sil
jne 0x14006d92e
mov edx, 0xfa
call fcn.1400a70c0
test eax, eax
jg 0x14006d92e
mov rcx, rdi
call fcn.14006b750
cmp dword [rdi + 0x1b4], esi
jne 0x14006d964
mov rcx, qword [rdi + 0x38]
mov rdx, qword [rcx + 0x20]
mov rax, rdx
sub rax, qword [rcx + 0x18]
cmp rax, 0x1f4
jle 0x14006d964
mov rax, qword [rcx + 0x28]
sub rax, rdx
cmp rax, 0x1f4
jge 0x14006d964
mov rcx, rdi
call fcn.140078300
mov rcx, rdi
mov qword [rsp + 0x80], rbx
call fcn.14006bbb0
mov r14, rax
test rax, rax
je 0x14006dff9
movzx edx, byte [rax]
lea ecx, [rdx - 0x58]
test cl, 0xdf
jne 0x14006da4d
movzx r8d, byte [rax + 1]
lea ecx, [r8 - 0x4d]
test cl, 0xdf
jne 0x14006da4d
movzx ecx, byte [rax + 2]
lea eax, [rcx - 0x4c]
test al, 0xdf
jne 0x14006da4d
cmp dl, 0x78
jne 0x14006d9df
cmp r8b, 0x6d
jne 0x14006d9df
cmp cl, 0x6c
jne 0x14006d9df
cmp byte [r14 + 3], sil
jne 0x14006d9f9
lea r8, str.XML_declaration_allowed_only_at_the_start_of_the_document_n
mov edx, 0x40
mov rcx, rdi
call fcn.140076d90
jmp 0x14006da7d
cmp byte [r14 + 3], sil
jne 0x14006d9f9
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 0x40]
call fcn.1400752d0
jmp 0x14006da7d
mov rax, qword [str.xml_stylesheet]
test rax, rax
je 0x14006da32
xor ebx, ebx
nop word [rax + rax]
mov rdx, rax
mov rcx, r14
call fcn.14008ce60
test eax, eax
jne 0x14006da7d
inc rbx
lea rax, str.xml_stylesheet
mov rax, qword [rax + rbx*8]
test rax, rax
jne 0x14006da10
xor r9d, r9d
mov qword [rsp + 0x20], rsi
lea r8, str.xmlParsePITarget:_invalid_name_prefix_xml_n
mov rcx, rdi
lea edx, [r9 + 0x40]
call fcn.140076e60
mov dl, 0x3a
mov rcx, r14
call fcn.14008cae0
test rax, rax
je 0x14006da7d
mov qword [rsp + 0x28], rsi
lea r8, str.colons_are_forbidden_from_PI_names__s_n
mov r9, r14
mov qword [rsp + 0x20], rsi
mov edx, 0xcd
mov rcx, rdi
call fcn.1400773b0
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + 0x20]
cmp byte [rcx], 0x3f
jne 0x14006db3b
cmp byte [rcx + 1], 0x3e
jne 0x14006db3b
cmp r13, rax
je 0x14006dab5
lea r8, str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x5a
mov rcx, rdi
call fcn.140076d90
mov rax, qword [rdi + 0x38]
add dword [rdi + 0x130], 2
add qword [rax + 0x20], 2
mov rax, qword [rdi + 0x38]
add dword [rax + 0x38], 2
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
cmp byte [rax], 0x25
jne 0x14006dae2
mov rcx, rdi
call fcn.140074c60
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
cmp byte [rax], sil
jne 0x14006db01
mov edx, 0xfa
call fcn.1400a70c0
test eax, eax
jg 0x14006db01
mov rcx, rdi
call fcn.14006b750
mov rax, qword [rdi]
test rax, rax
je 0x14006e008
cmp dword [rdi + 0x13c], esi
jne 0x14006e008
mov r9, qword [rax + 0x98]
test r9, r9
je 0x14006e008
mov rcx, qword [rdi + 8]
xor r8d, r8d
mov rdx, r14
call r9
jmp 0x14006e008
mov rcx, r12
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbp, rax
test rax, rax
jne 0x14006db65
xor edx, edx
mov rcx, rdi
call fcn.1400a9670
mov eax, dword [rsp + 0x70]
mov dword [rdi + 0x108], eax
jmp 0x14006e017
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + 0x20]
movzx edx, byte [rcx]
cmp dl, 0x20
je 0x14006db98
lea eax, [rdx - 9]
cmp al, 1
jbe 0x14006db98
cmp dl, 0xd
je 0x14006db98
mov r9, r14
lea r8, str.ParsePI:_PI__s_space_expected_n
mov edx, 0x41
mov rcx, rdi
call fcn.140077260
mov rcx, rdi
call fcn.140074af0
lea rdx, [rsp + 0x78]
mov rcx, rdi
call fcn.1400a8c80
mov ebx, eax
nop
cmp ebx, 0x100
jge 0x14006dc16
lea ecx, [rbx - 9]
cmp ecx, 1
jbe 0x14006dc38
cmp ebx, 0xd
je 0x14006dc38
cmp ebx, 0x20
jge 0x14006dc38
cmp rsi, 0x989680
jbe 0x14006ddd1
test dword [rdi + 0x224], 0x80000
jne 0x14006ddd1
mov r9, r14
lea r8, str.PI__s_too_big_found
mov edx, 0x2f
mov rcx, rdi
call fcn.140077260
mov rcx, rbp
call qword [fcn.14013e100]
mov eax, dword [rsp + 0x70]
mov dword [rdi + 0x108], eax
jmp 0x14006e017
lea eax, [rbx - 0xd800]
cmp eax, 0x7ff
jbe 0x14006dc2b
cmp ebx, 0xfffe
jl 0x14006dc38
lea eax, [rbx - 0x10000]
cmp eax, 0xfffff
ja 0x14006dbca
cmp ebx, 0x3f
jne 0x14006dc4f
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + 0x20]
cmp byte [rcx + 1], 0x3e
je 0x14006dbca
lea rax, [rsi + 5]
cmp rax, r12
jb 0x14006dc73
add r12, r12
mov rcx, rbp
mov rdx, r12
call qword [0x140188cf0]
test rax, rax
je 0x14006ddb4
mov rbp, rax
inc r15d
cmp r15d, 0x32
jle 0x14006dccb
cmp dword [rdi + 0x1b4], 0
jne 0x14006dca2
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + 0x28]
sub rcx, qword [rax + 0x20]
cmp rcx, 0xfa
jge 0x14006dca2
mov rcx, rdi
call fcn.140078340
cmp dword [rdi + 0x108], 0xffffffff
je 0x14006ddc3
xor r15d, r15d
cmp rsi, 0x989680
jbe 0x14006dccb
test dword [rdi + 0x224], 0x80000
je 0x14006dbe7
cmp dword [rsp + 0x78], 1
lea rcx, [rsi + rbp]
jne 0x14006dcdf
mov byte [rcx], bl
mov eax, 1
jmp 0x14006dce8
mov edx, ebx
call fcn.1400a8ff0
cdqe
mov rcx, qword [rdi + 0x38]
add rsi, rax
mov rax, qword [rcx + 0x20]
cmp byte [rax], 0xa
jne 0x14006dd08
inc dword [rcx + 0x34]
mov rax, qword [rdi + 0x38]
mov dword [rax + 0x38], 1
jmp 0x14006dd0b
inc dword [rcx + 0x38]
mov rcx, qword [rdi + 0x38]
movsxd rax, dword [rsp + 0x78]
add qword [rcx + 0x20], rax
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + 0x20]
cmp byte [rcx], 0x25
jne 0x14006dd2d
mov rcx, rdi
call fcn.140074c60
lea rdx, [rsp + 0x78]
mov rcx, rdi
call fcn.1400a8c80
mov ebx, eax
test eax, eax
jne 0x14006dbb0
mov eax, dword [rdi + 0x1b4]
test eax, eax
jne 0x14006dba0
mov rcx, qword [rdi + 0x38]
mov rdx, qword [rcx + 0x20]
mov rax, rdx
sub rax, qword [rcx + 0x18]
cmp rax, 0x1f4
jle 0x14006dd8e
mov rax, qword [rcx + 0x28]
sub rax, rdx
cmp rax, 0x1f4
jge 0x14006dd8e
mov rcx, rdi
call fcn.140078300
mov eax, dword [rdi + 0x1b4]
test eax, eax
jne 0x14006dba0
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + 0x28]
sub rcx, qword [rax + 0x20]
cmp rcx, 0xfa
jge 0x14006dba0
mov rcx, rdi
call fcn.140078340
jmp 0x14006dba0
xor edx, edx
mov rcx, rdi
call fcn.1400a9670
jmp 0x14006dbfe
mov rcx, rbp
call qword [fcn.14013e100]
jmp 0x14006e017
mov byte [rsi + rbp], 0
cmp ebx, 0x3f
je 0x14006de03
mov r9, r14
lea r8, str.ParsePI:_PI__s_never_end_..._n
mov edx, 0x2f
mov rcx, rdi
call fcn.140077260
mov rcx, rbp
call qword [fcn.14013e100]
mov ebp, dword [rsp + 0x70]
jmp 0x14006e008
mov rax, qword [rdi + 0x38]
cmp r13, rax
je 0x14006de24
lea r8, str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x41
mov rcx, rdi
call fcn.140076d90
mov rax, qword [rdi + 0x38]
add dword [rdi + 0x130], 2
add qword [rax + 0x20], 2
mov rax, qword [rdi + 0x38]
add dword [rax + 0x38], 2
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
cmp byte [rax], 0x25
jne 0x14006de51
mov rcx, rdi
call fcn.140074c60
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx + 0x20]
cmp byte [rax], 0
jne 0x14006de70
mov edx, 0xfa
call fcn.1400a70c0
test eax, eax
jg 0x14006de70
mov rcx, rdi
call fcn.14006b750
cmp dword [rsp + 0x70], 1
ja 0x14006df6d
lea rdx, str.oasis_xml_catalog
mov rcx, r14
call fcn.14008ce60
test eax, eax
je 0x14006df6d
call fcn.1400b3060
add eax, 0xfffffffe
cmp eax, 1
ja 0x14006df6d
xor esi, esi
mov rbx, rbp
movabs r15, 0x100002600
movzx eax, byte [rbx]
cmp al, 0x20
ja 0x14006dec7
movzx eax, al
bt r15, rax
jae 0x14006dec7
inc rbx
jmp 0x14006deb2
mov r8d, 7
lea rdx, str.catalog
mov rcx, rbx
call fcn.14008cd60
test eax, eax
jne 0x14006df3f
add rbx, 7
movzx eax, byte [rbx]
cmp al, 0x20
ja 0x14006def9
movzx eax, al
bt r15, rax
jae 0x14006def9
inc rbx
jmp 0x14006dee4
cmp byte [rbx], 0x3d
jne 0x14006df6d
movzx eax, byte [rbx + 1]
inc rbx
cmp al, 0x20
ja 0x14006df12
movzx eax, al
bt r15, rax
jb 0x14006defe
movzx ecx, byte [rbx]
cmp cl, 0x27
je 0x14006df1f
cmp cl, 0x22
jne 0x14006df3f
movzx eax, byte [rbx + 1]
inc rbx
mov r8, rbx
test al, al
je 0x14006df3f
nop dword [rax]
cmp al, cl
je 0x14006dfa6
movzx eax, byte [rbx + 1]
inc rbx
test al, al
jne 0x14006df30
mov r9, rbp
mov qword [rsp + 0x20], 0
lea r8, str.Catalog_PI_syntax_error:__s_n
mov edx, 0x5d
mov rcx, rdi
call fcn.140076e60
test rsi, rsi
je 0x14006df6d
mov rcx, rsi
call qword [fcn.14013e100]
mov rax, qword [rdi]
test rax, rax
je 0x14006df97
cmp dword [rdi + 0x13c], 0
jne 0x14006df97
mov r9, qword [rax + 0x98]
test r9, r9
je 0x14006df97
mov rcx, qword [rdi + 8]
mov r8, rbp
mov rdx, r14
call r9
mov rcx, rbp
call qword [fcn.14013e100]
mov ebp, dword [rsp + 0x70]
jmp 0x14006e008
cmp byte [rbx], sil
je 0x14006df3f
mov edx, ebx
mov rcx, r8
sub edx, r8d
call fcn.14008c8f0
mov rsi, rax
movzx ecx, byte [rbx + 1]
inc rbx
cmp cl, 0x20
ja 0x14006dfd0
movzx ecx, cl
bt r15, rcx
jb 0x14006dfbb
cmp byte [rbx], 0
jne 0x14006df3f
test rsi, rsi
je 0x14006df6d
mov rcx, qword [rdi + 0x1a8]
mov rdx, rsi
call fcn.1400b2d10
mov qword [rdi + 0x1a8], rax
jmp 0x14006df64
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 0x2e]
call fcn.1400752d0
cmp dword [rdi + 0x108], 0xffffffff
je 0x14006e017
mov dword [rdi + 0x108], ebp
mov rbx, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
add rsp, 0x40
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret