Function at 0x10013b3f
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 8]
push edi
xor edi, edi
mov dword [esp + 0x20], esi
or edx, 0xffffffff
mov dword [esp + 0x14], edi
mov eax, dword [esi + 8]
mov ebx, edi
mov dword [ecx + 0xc], edi
mov dword [ecx + 4], eax
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], edi
lea edi, [eax + ecx*2]
mov dword [esp + 0x10], edx
movzx esi, word [edi]
test esi, esi
jne 0x10013c3d
mov ecx, dword [esp + 0x20]
mov eax, edi
sub eax, dword [ecx + 0xc]
sar eax, 1
mov dword [ecx + 8], eax
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
je 0x1001415d
mov eax, dword [ecx + 0xcc]
mov dword [esp + 0x30], eax
call fcn.10013640
test al, al
je 0x10013c1c
mov esi, dword [esp + 0x20]
mov edi, dword [ebp + 8]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 8]
mov ecx, dword [edi + 4]
sub edx, ecx
mov eax, dword [eax + 0xcc]
test eax, eax
je 0x10013c00
sub ecx, eax
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x10013bf1
sub ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x10013bfd
cmp dword [esp + 0x28], 0
je 0x10013bfd
sub dword [esi], eax
sub dword [esi + 4], eax
sub dword [esi + 8], eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [edi + 4]
add ecx, edx
mov eax, dword [eax + 0x50]
cmp dword [eax + 0x14], 8
jb 0x10013c13
mov eax, dword [eax]
lea edi, [eax + ecx*2]
mov dword [esi + 0xc], eax
movzx esi, word [edi]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x10013c31
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
mov dword [eax + 0xcc], ecx
mov edx, dword [esp + 0x10]
test esi, esi
je 0x1001415d
cmp dword [esp + 0x1c], 0
je 0x10013c91
lea eax, [esi - 9]
cmp eax, 0x35
ja 0x10013c55
movsx eax, byte [esi + 0x100eeb87]
jmp 0x10013c57
xor eax, eax
test eax, eax
je 0x10013e79
mov ecx, dword [esp + 0x20]
mov eax, edi
mov edx, dword [esp + 0x1c]
and dword [esp + 0x1c], 0
sub eax, dword [ecx + 0xc]
sar eax, 1
mov dword [esp + 0x28], eax
sub dword [esp + 0x28], edx
dec eax
mov dword [ecx + 4], eax
xor eax, eax
mov dword [ecx], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
jmp 0x10013c99
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x14], 0
je 0x10013ea6
cmp esi, 0x3e
jne 0x10013d8f
test bl, 0xc0
jne 0x10013da6
mov eax, edi
sub eax, dword [ecx + 0xc]
sar eax, 1
inc eax
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x18]
cmp ecx, 1
jne 0x10013d0e
xor esi, esi
mov dword [esp + 0x14], esi
cmp edx, ecx
jne 0x10013d4f
cmp dword [esp + 0x24], 0x2f
jne 0x10013d4f
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x10013d02
test ebx, 0x200
je 0x10013d02
lea eax, [ecx - 9]
cmp eax, 0x1e
ja 0x10013cfc
movsx eax, byte [ecx + 0x100eebc7]
jmp 0x10013cfe
xor eax, eax
test eax, eax
je 0x10013d4f
mov eax, dword [ebp + 8]
or dword [eax + 0xc], 0x10000
jmp 0x10013d4f
dec eax
cmp eax, ecx
jle 0x10013d4b
lea eax, [ecx + ecx]
mov esi, edi
mov ecx, dword [esp + 0x18]
sub esi, eax
mov eax, dword [esp + 0x14]
add esi, 2
sub eax, esi
mov dword [esp + 0x30], eax
sub ecx, 1
mov dword [esp + 0x34], ecx
je 0x10013d87
movzx ecx, word [esi]
mov ax, word [eax + esi]
add esi, 2
cmp cx, ax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
je 0x10013d2b
mov esi, dword [esp + 0x14]
and ebx, 0xfffffdff
test esi, esi
jne 0x10013e79
test bl, 0x20
jne 0x10013e79
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 8]
sub ecx, dword [eax + 4]
mov dword [eax + 8], ecx
mov dword [eax], esi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor esi, esi
mov dword [esp + 0x14], esi
jmp 0x10013d4f
cmp esi, 0x3c
jne 0x10013da6
cmp edx, 2
je 0x10014202
cmp edx, 0xffffffff
je 0x10014202
test dl, 1
je 0x10013e81
test ebx, 0x2c0
je 0x10013e05
cmp esi, 0x22
jne 0x10013dcb
test bl, bl
jns 0x10013ddd
xor ebx, 0x80
jmp 0x10013e6d
cmp esi, 0x27
jne 0x10013ddd
test bl, 0x40
je 0x10013ddd
xor ebx, 0x40
jmp 0x10013e6d
mov ecx, 0x200
test ecx, ebx
je 0x10013e6d
lea eax, [esi - 9]
cmp eax, 0x17
ja 0x10013dfb
movsx eax, byte [esi + 0x100ee807]
jmp 0x10013dfd
xor eax, eax
test eax, eax
je 0x10013e6d
xor ebx, ecx
jmp 0x10013e6d
cmp esi, 0x22
jne 0x10013e1a
test ebx, 0x100
je 0x10013e6d
xor ebx, 0x180
jmp 0x10013e6d
cmp esi, 0x27
jne 0x10013e2f
test ebx, 0x100
je 0x10013e6d
xor ebx, 0x140
jmp 0x10013e6d
cmp esi, 0x3d
jne 0x10013e48
cmp eax, esi
je 0x10013e48
test ebx, 0x100
jne 0x10013e50
xor ebx, 0x100
jmp 0x10013e6d
test ebx, 0x100
je 0x10013e6d
lea eax, [esi - 9]
cmp eax, 0x17
ja 0x10013e61
movsx eax, byte [esi + 0x100ee807]
jmp 0x10013e63
xor eax, eax
test eax, eax
jne 0x10013e6d
xor ebx, 0x300
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
add edi, 2
jmp 0x10013b89
test dl, 0x40
je 0x10013e79
cmp esi, 0x22
jne 0x10013e98
test bl, 0x40
jne 0x10013e79
xor ebx, 0x80
jmp 0x10013e79
cmp esi, 0x27
jne 0x10013e79
test bl, bl
js 0x10013e79
xor ebx, 0x40
jmp 0x10013e79
test ebx, ebx
je 0x1001411e
test bl, 0x10
je 0x10013eee
cmp esi, 0x3c
je 0x1001420f
lea eax, [esi - 9]
cmp eax, 0x17
ja 0x10013ecd
movsx eax, byte [esi + 0x100ee807]
jmp 0x10013ecf
xor eax, eax
test eax, eax
jne 0x10013e79
xor ebx, 0x10
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0x100eebf0
push 2
pop edx
jmp 0x100140e9
test bl, 1
je 0x10013f98
xor eax, eax
inc eax
xor ebx, eax
cmp esi, 0x60
ja 0x10013f76
cmp esi, 0x40
jbe 0x10013f0b
cmp esi, 0x5b
jb 0x10013f76
cmp esi, 0x5f
je 0x10013f76
cmp esi, 0x3a
je 0x10013f76
cmp esi, 0x2f
jne 0x10013f2a
mov dword [esp + 0x18], eax
xor edx, edx
mov eax, edi
sub eax, dword [ecx + 0xc]
sar eax, 1
inc eax
jmp 0x10013f83
cmp esi, 0x21
jne 0x10013f37
or ebx, 2
jmp 0x10013e79
cmp esi, 0x3f
jne 0x10013f59
mov eax, edi
mov dword [esp + 0x14], 0x100eebf8
sub eax, dword [ecx + 0xc]
push 0x10
sar eax, 1
mov dword [esp + 0x1c], 2
inc eax
pop edx
jmp 0x10013f8b
push 0xffffffffffffffff
push dword [ecx + 8]
mov dword [esp + 0x20], eax
push ecx
mov eax, esp
push ecx
and dword [eax], 0
mov eax, esp
mov dword [eax], str.first_tag_syntax
jmp 0x100140ce
mov dword [esp + 0x18], eax
mov edx, eax
mov eax, edi
sub eax, dword [ecx + 0xc]
sar eax, 1
mov dword [esp + 0x14], 0x100eebf4
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], eax
jmp 0x10013e79
test bl, 2
je 0x1001404d
xor ebx, 2
cmp esi, 0x2d
jne 0x10013fb1
or ebx, 4
jmp 0x10013e79
test bl, 0x20
je 0x10014012
lea eax, [esi - 0x41]
cmp eax, 0xd
ja 0x10013fc7
movsx eax, byte [esi + 0x100eebe3]
jmp 0x10013fc9
xor eax, eax
test eax, eax
je 0x10013fd2
push 0x40
pop edx
jmp 0x10013ff9
push 0xffffffffffffffff
push dword [ecx + 8]
xor edx, edx
push ecx
mov eax, esp
push ecx
mov ecx, dword [ebp + 8]
and dword [eax], 0
mov eax, esp
lea ecx, [ecx + 0x10]
mov dword [eax], str.doctype_tag_syntax
call fcn.100115e9
add esp, 0x10
or edx, 0xffffffff
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0x100eebf4
mov dword [esp + 0x18], 1
jmp 0x10013e79
cmp esi, 0x5b
jne 0x1001401f
or ebx, 8
jmp 0x10013e79
cmp esi, 0x44
jne 0x1001402c
or ebx, 0x20
jmp 0x10013e79
push 0xffffffffffffffff
push dword [ecx + 8]
mov dword [esp + 0x20], 1
push ecx
mov eax, esp
push ecx
and dword [eax], 0
mov eax, esp
mov dword [eax], str.exclamation_tag_syntax
jmp 0x100140ce
test bl, 4
je 0x1001408f
xor ebx, 4
cmp esi, 0x2d
jne 0x10014071
mov dword [esp + 0x14], 0x100eec8c
mov dword [esp + 0x18], 3
push 0x20
jmp 0x10013ee8
push 0xffffffffffffffff
push dword [ecx + 8]
mov dword [esp + 0x20], 1
push ecx
mov eax, esp
push ecx
and dword [eax], 0
mov eax, esp
mov dword [eax], str.comment_tag_syntax
jmp 0x100140ce
test bl, 8
je 0x100140f2
xor ebx, 8
cmp esi, 0x43
jne 0x100140b3
mov dword [esp + 0x14], 0x100eecbc
mov dword [esp + 0x18], 3
push 8
jmp 0x10013ee8
push 0xffffffffffffffff
push dword [ecx + 8]
xor eax, eax
inc eax
push ecx
mov dword [esp + 0x24], eax
mov eax, esp
push ecx
and dword [eax], 0
mov eax, esp
mov dword [eax], str.cdata_section_syntax
mov ecx, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x24], 0x100eebf4
lea ecx, [ecx + 0x10]
call fcn.100115e9
add esp, 0x10
or edx, 0xffffffff
mov dword [esp + 0x10], edx
jmp 0x10013e79
test bl, 0x20
je 0x10013e79
cmp esi, 0x3c
jne 0x10014108
or ebx, 1
jmp 0x10013e79
cmp esi, 0x3e
jne 0x10013e79
sub edi, dword [ecx + 0xc]
sar edi, 1
inc edi
push 0x40
jmp 0x10014216
cmp esi, 0x3c
jne 0x1001412b
xor ebx, ebx
inc ebx
jmp 0x10013e79
push 4
lea eax, [esi - 9]
pop edx
mov dword [esp + 0x10], edx
cmp eax, 0x17
ja 0x10014143
movsx eax, byte [esi + 0x100ee807]
jmp 0x10014145
xor eax, eax
test eax, eax
je 0x10014151
push 0x10
pop ebx
jmp 0x10013e79
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
jmp 0x10013ede
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
cmp dword [ecx + 8], eax
jne 0x1001417b
and dword [edi + 8], 0
and dword [edi], 0
push 0xfffffffffffffffe
pop eax
jmp 0x10013d7e
cmp edx, 4
je 0x10013d66
cmp edx, 2
je 0x10013d66
mov ecx, 0x100eeab8
test bl, 0x20
jne 0x100141d7
cmp edx, 0x40
je 0x100141d7
cmp edx, 1
jne 0x100141a8
mov ecx, str.start_tag
jmp 0x100141dc
test edx, edx
jne 0x100141b3
mov ecx, str.end_tag
jmp 0x100141dc
cmp edx, 8
jne 0x100141bf
mov ecx, str.cdata_section
jmp 0x100141dc
cmp edx, 0x10
jne 0x100141cb
mov ecx, str.processing_instruction
jmp 0x100141dc
cmp edx, 0x20
jne 0x100141dc
mov ecx, str.comment
jmp 0x100141dc
mov ecx, str.document_type
or esi, 0xffffffff
push esi
push eax
push ecx
mov eax, esp
push ecx
mov dword [eax], ecx
mov eax, esp
push 2
lea ecx, [edi + 0x10]
pop edx
mov dword [eax], str.unterminated_tag_syntax
call fcn.100115e9
add esp, 0x10
jmp 0x10013d6a
sub edi, dword [ecx + 0xc]
sar edi, 1
mov dword [ecx + 8], edi
jmp 0x10013d66
sub edi, dword [ecx + 0xc]
sar edi, 1
push 4
mov dword [ecx + 8], edi
pop esi
jmp 0x10013d6a