Function at 0x14000583c
Capabilities:
Parse credit card information

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor eax, eax
mov r13, rdx
and dword [rsp + 0x98], eax
mov r12, rcx
xor r15d, r15d
mov dword [rsp + 0x80], eax
mov eax, dword [rcx + 8]
xor r8d, r8d
xor r9d, r9d
mov dword [r13 + 4], eax
xor edx, edx
mov qword [rsp + 0x30], r15
xor edi, edi
mov qword [rsp + 0x38], r8
or r14d, 0xffffffff
mov dword [rsp + 0x90], r9d
and dword [r13 + 0xc], edx
movsxd rcx, dword [rcx + 8]
mov rax, qword [r12 + 0x10]
mov dword [rsp + 0x88], edx
lea rsi, [rax + rcx*2]
mov r11d, 1
movzx ebp, word [rsi]
lea rcx, [0x140000000]
test ebp, ebp
jne 0x140005993
mov rcx, qword [r12 + 0x28]
mov rax, rsi
sub rax, qword [r12 + 0x10]
sar rax, 1
mov dword [r12 + 8], eax
test rcx, rcx
je 0x140005f75
mov r15d, dword [rcx + 0xc4]
call fcn.140005028
test al, al
je 0x140005954
mov r8, qword [r12 + 0x28]
mov edx, dword [r12 + 8]
mov ecx, dword [r13 + 4]
sub edx, ecx
mov eax, dword [r8 + 0xc4]
test eax, eax
je 0x14000593a
sub ecx, eax
mov dword [r13 + 4], ecx
mov rcx, qword [rsp + 0x38]
test ecx, ecx
je 0x14000591d
sub ecx, eax
mov qword [rsp + 0x38], rcx
jmp 0x140005930
cmp dword [rsp + 0x98], 0
je 0x140005930
sub dword [r12], eax
sub dword [r12 + 4], eax
sub dword [r12 + 8], eax
mov r8, qword [r12 + 0x28]
mov rax, qword [r8 + 0x38]
add edx, dword [r13 + 4]
mov rcx, qword [rax]
movsxd rax, edx
mov qword [r12 + 0x10], rcx
lea rsi, [rcx + rax*2]
movzx ebp, word [rsi]
test r15d, r15d
je 0x140005965
mov rax, qword [r12 + 0x28]
mov dword [rax + 0xc4], r15d
mov r11d, 1
test ebp, ebp
je 0x140005f75
mov r15, qword [rsp + 0x30]
lea rcx, [0x140000000]
mov edx, dword [rsp + 0x88]
mov r8, qword [rsp + 0x38]
mov r9d, dword [rsp + 0x90]
test r8d, r8d
je 0x1400059f4
lea eax, [rbp - 9]
cmp eax, 0x35
ja 0x1400059aa
movsx ecx, byte [rax + rcx + 0x5fa18]
jmp 0x1400059ac
xor ecx, ecx
test ecx, ecx
je 0x140005a6f
xor edx, edx
mov dword [r12], r8d
mov rax, rsi
mov dword [rsp + 0x88], edx
sub rax, qword [r12 + 0x10]
sar rax, 1
mov r10d, eax
sub r10d, r8d
xor r8d, r8d
dec eax
mov dword [rsp + 0x98], r10d
xor r9d, r9d
mov dword [r12 + 4], eax
mov dword [rsp + 0x90], r9d
mov qword [rsp + 0x38], r8
test r15, r15
je 0x140005c33
cmp ebp, 0x3e
jne 0x140005af3
test dil, 0xc0
jne 0x140005b0c
movsxd rbp, dword [rsp + 0x80]
mov rcx, rsi
sub rcx, qword [r12 + 0x10]
sar rcx, 1
lea eax, [rcx + 1]
mov dword [r12 + 8], eax
cmp ebp, r11d
jne 0x140005a86
xor r15d, r15d
mov qword [rsp + 0x30], r15
cmp r14d, r11d
jne 0x140005ad2
cmp r9d, 0x2f
jne 0x140005ad2
test edx, edx
je 0x140005a7e
bt edi, 9
jae 0x140005a7e
lea eax, [rdx - 9]
cmp eax, 0x1e
ja 0x140005a78
lea r10, [0x140000000]
movsx ecx, byte [rax + r10 + 0x5fa50]
jmp 0x140005a7a
add rsi, 2
jmp 0x1400058aa
xor ecx, ecx
test ecx, ecx
je 0x140005ad2
bts dword [r13 + 0xc], 0x10
jmp 0x140005ad2
cmp ecx, ebp
jle 0x140005ad2
mov rcx, rbp
mov rdx, rsi
add rcx, rcx
mov r8, r15
sub rdx, rcx
mov r9d, ebp
add rdx, 2
sub r8, rdx
sub r9d, r11d
je 0x140005abb
movzx ecx, word [rdx]
movzx eax, word [r8 + rdx]
add rdx, 2
cmp cx, ax
je 0x140005aa3
jmp 0x140005ac3
xor r15d, r15d
mov qword [rsp + 0x30], r15
mov r9d, dword [rsp + 0x90]
mov edx, dword [rsp + 0x88]
btr edi, 9
test r15, r15
jne 0x140005ae5
test dil, 0x20
je 0x140005ef5
mov r8, qword [rsp + 0x38]
add rsi, 2
jmp 0x1400058a4
cmp ebp, 0x3c
jne 0x140005b0c
cmp r14d, 2
je 0x14000602d
cmp r14d, 0xffffffff
je 0x14000602d
test r11b, r14b
je 0x140005bf7
test edi, 0x2c0
je 0x140005b74
cmp ebp, 0x22
jne 0x140005b30
test dil, dil
jns 0x140005b43
btc edi, 7
jmp 0x140005bde
cmp ebp, 0x27
jne 0x140005b43
test dil, 0x40
je 0x140005b43
xor edi, 0x40
jmp 0x140005bde
mov edx, 0x200
test edx, edi
je 0x140005bde
lea eax, [rbp - 9]
cmp eax, 0x17
ja 0x140005b6a
lea r10, [0x140000000]
movsx ecx, byte [rax + r10 + 0x5f698]
jmp 0x140005b6c
xor ecx, ecx
test ecx, ecx
je 0x140005bde
xor edi, edx
jmp 0x140005bde
mov eax, edi
mov ecx, 0x100
and eax, ecx
cmp ebp, 0x22
jne 0x140005b8e
test eax, eax
je 0x140005b8e
xor edi, 0x180
jmp 0x140005bde
cmp ebp, 0x27
jne 0x140005b9f
test eax, eax
je 0x140005bde
xor edi, 0x140
jmp 0x140005bde
cmp ebp, 0x3d
jne 0x140005bb1
cmp r9d, ebp
je 0x140005bb1
test eax, eax
jne 0x140005bd2
xor edi, ecx
jmp 0x140005bde
test eax, eax
je 0x140005bde
lea eax, [rbp - 9]
cmp eax, 0x17
ja 0x140005bd2
lea eax, [rbp - 9]
lea r10, [0x140000000]
movsx eax, byte [rax + r10 + 0x5f698]
jmp 0x140005bd4
xor eax, eax
test eax, eax
jne 0x140005bde
xor edi, 0x300
mov edx, r9d
mov dword [rsp + 0x90], ebp
mov dword [rsp + 0x88], edx
mov r9d, ebp
jmp 0x140005aea
test r14b, 0x40
je 0x140005aea
cmp ebp, 0x22
jne 0x140005c19
test dil, 0x40
jne 0x140005aea
btc edi, 7
jmp 0x140005aea
cmp ebp, 0x27
jne 0x140005aea
test dil, dil
js 0x140005aea
xor edi, 0x40
jmp 0x140005aea
test edi, edi
je 0x140005f19
test dil, 0x10
je 0x140005c93
cmp ebp, 0x3c
je 0x14000603a
add ebp, 0xfffffff7
cmp ebp, 0x17
ja 0x140005c64
lea r10, [0x140000000]
movsx ecx, byte [rbp + r10 + 0x5f698]
jmp 0x140005c66
xor ecx, ecx
test ecx, ecx
jne 0x140005c82
lea r15, [0x14005fa70]
mov dword [rsp + 0x80], r11d
mov qword [rsp + 0x30], r15
lea r14d, [rcx + 2]
mov eax, edi
xor eax, 0x10
test ecx, ecx
cmovne eax, edi
mov edi, eax
jmp 0x140005aea
test r11b, dil
je 0x140005d8a
xor edi, r11d
cmp ebp, 0x39
jbe 0x140005cdb
lea eax, [rbp - 0x3b]
cmp eax, 0x25
ja 0x140005cbc
movabs rcx, 0x2f0000003f
bt rcx, rax
jb 0x140005cdb
mov r8, rsi
mov dword [rsp + 0x80], r11d
sub r8, qword [r12 + 0x10]
lea r15, [0x14005fa74]
sar r8, 1
mov r14d, r11d
jmp 0x140005d00
cmp ebp, 0x2f
jne 0x140005d0f
lea r15, [0x14005fa74]
mov dword [rsp + 0x80], r11d
xor r14d, r14d
mov r8, rsi
sub r8, qword [r12 + 0x10]
sar r8, 1
add r8d, r11d
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r8
jmp 0x140005aea
cmp ebp, 0x21
jne 0x140005d1c
or edi, 2
jmp 0x140005aea
cmp ebp, 0x3f
jne 0x140005d39
lea r15, [0x14005fa78]
mov dword [rsp + 0x80], 2
lea r14d, [rbp - 0x2f]
jmp 0x140005cf2
lea rdx, str.first_tag_syntax
mov eax, dword [r12 + 8]
lea r15, [0x14005fa74]
or ebp, 0xffffffff
mov dword [rsp + 0x80], r11d
mov dword [rsp + 0x28], ebp
lea rcx, [r13 + 0x10]
xor r9d, r9d
mov dword [rsp + 0x20], eax
xor r8d, r8d
mov qword [rsp + 0x30], r15
call fcn.140002f30
mov edx, dword [rsp + 0x88]
mov r14d, ebp
mov r9d, dword [rsp + 0x90]
jmp 0x140005ae5
test dil, 2
je 0x140005e4d
xor edi, 2
cmp ebp, 0x2d
jne 0x140005da4
or edi, 4
jmp 0x140005aea
test dil, 0x20
je 0x140005e27
add ebp, 0xffffffbf
cmp ebp, 0xd
ja 0x140005dc4
lea r10, [0x140000000]
movsx ecx, byte [rbp + r10 + 0x5faa8]
jmp 0x140005dc6
xor ecx, ecx
test ecx, ecx
je 0x140005dd2
mov r14d, 0x40
jmp 0x140005e0e
mov eax, dword [r12 + 8]
lea rcx, [r13 + 0x10]
or ebp, 0xffffffff
lea rdx, str.doctype_tag_syntax
mov dword [rsp + 0x28], ebp
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], eax
call fcn.140002f30
mov edx, dword [rsp + 0x88]
lea r11d, [rbp + 2]
mov r9d, dword [rsp + 0x90]
mov r14d, ebp
lea r15, [0x14005fa74]
mov dword [rsp + 0x80], r11d
mov qword [rsp + 0x30], r15
jmp 0x140005ae5
cmp ebp, 0x5b
jne 0x140005e34
or edi, 8
jmp 0x140005aea
cmp ebp, 0x44
jne 0x140005e41
or edi, 0x20
jmp 0x140005aea
lea rdx, str.exclamation_tag_syntax
jmp 0x140005d40
test dil, 4
je 0x140005e87
xor edi, 4
cmp ebp, 0x2d
jne 0x140005e7b
lea r15, [0x14005fb10]
mov dword [rsp + 0x80], 3
mov qword [rsp + 0x30], r15
lea r14d, [rbp - 0xd]
jmp 0x140005aea
lea rdx, str.comment_tag_syntax
jmp 0x140005d40
test dil, 8
je 0x140005ec1
xor edi, 8
cmp ebp, 0x43
jne 0x140005eb5
lea r15, [0x14005fb40]
mov dword [rsp + 0x80], 3
mov qword [rsp + 0x30], r15
lea r14d, [rbp - 0x3b]
jmp 0x140005aea
lea rdx, str.cdata_section_syntax
jmp 0x140005d40
test dil, 0x20
je 0x140005aea
cmp ebp, 0x3c
jne 0x140005ed8
or edi, r11d
jmp 0x140005aea
cmp ebp, 0x3e
jne 0x140005aea
sub rsi, qword [r12 + 0x10]
lea r14d, [rbp + 2]
sar rsi, 1
add esi, r11d
mov dword [r12 + 8], esi
mov ecx, dword [r12 + 8]
mov eax, r14d
sub ecx, dword [r13 + 4]
mov dword [r13 + 8], ecx
mov dword [r13], r14d
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp ebp, 0x3c
jne 0x140005f26
mov edi, r11d
jmp 0x140005aea
add ebp, 0xfffffff7
mov r14d, 4
cmp ebp, 0x17
ja 0x140005f46
lea r10, [0x140000000]
movsx ecx, byte [rbp + r10 + 0x5f698]
jmp 0x140005f48
xor ecx, ecx
test ecx, ecx
je 0x140005f56
mov edi, 0x10
jmp 0x140005aea
lea r15, [0x14005fa70]
mov dword [rsp + 0x80], r11d
mov qword [rsp + 0x30], r15
mov r14d, 2
jmp 0x140005aea
mov edx, dword [r13 + 4]
cmp dword [r12 + 8], edx
jne 0x140005f94
and dword [r13 + 8], 0
mov eax, 0xfffffffe
and dword [r13], 0
jmp 0x140005f09
lea eax, [r14 - 2]
test eax, 0xfffffffd
je 0x140005ef5
lea r8, [0x14005f938]
test dil, 0x20
jne 0x140005fff
cmp r14d, 0x40
je 0x140005fff
cmp r14d, r11d
jne 0x140005fc4
lea r8, str.start_tag
jmp 0x140006006
test r14d, r14d
jne 0x140005fd2
lea r8, str.end_tag
jmp 0x140006006
cmp r14d, 8
jne 0x140005fe1
lea r8, [0x14005f988]
jmp 0x140006006
cmp r14d, 0x10
jne 0x140005ff0
lea r8, str.processing_instruction
jmp 0x140006006
cmp r14d, 0x20
jne 0x140006006
lea r8, [0x14005f9d8]
jmp 0x140006006
lea r8, str.document_type
or eax, 0xffffffff
lea rcx, [r13 + 0x10]
mov dword [rsp + 0x28], eax
mov r14d, eax
mov dword [rsp + 0x20], edx
lea rdx, str.unterminated_tag_syntax
lea r9d, [rax + 3]
call fcn.140002f30
jmp 0x140005ef5
sub rsi, qword [r12 + 0x10]
sar rsi, 1
jmp 0x140005ef0
sub rsi, qword [r12 + 0x10]
mov r14d, 4
sar rsi, 1
jmp 0x140005ef0