Function at 0x100b777
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x24
mov eax, dword [esp + 0x28]
or dword [esp + 4], 0xffffffff
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov edx, dword [edi + 8]
xor ecx, ecx
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
xor ebp, ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
lea esi, [edx + eax*2]
movzx ebx, word [esi]
cmp ebx, ecx
mov dword [esp + 0x20], esi
jne 0x100b854
sub esi, dword [edi + 0xc]
sar esi, 1
mov dword [edi + 8], esi
mov esi, dword [edi + 0x1c]
cmp esi, ecx
je 0x100bdd0
mov eax, dword [esi + 0xa4]
mov dword [esp + 0x30], eax
call fcn.0100b2f6
test al, al
je 0x100b83b
mov esi, dword [esp + 0x38]
mov edx, dword [edi + 0x1c]
mov eax, dword [esi + 4]
mov ecx, dword [edi + 8]
mov edx, dword [edx + 0xa4]
sub ecx, eax
test edx, edx
je 0x100b821
sub eax, edx
test ebp, ebp
mov dword [esi + 4], eax
je 0x100b812
sub ebp, edx
jmp 0x100b81e
cmp dword [esp + 0x2c], 0
je 0x100b81e
sub dword [edi], edx
sub dword [edi + 4], edx
sub dword [edi + 8], edx
mov eax, dword [esi + 4]
add eax, ecx
mov ecx, dword [edi + 0x1c]
mov ecx, dword [ecx + 0x28]
mov ecx, dword [ecx]
lea eax, [ecx + eax*2]
mov dword [edi + 0xc], ecx
movzx ebx, word [eax]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x100b84c
mov ecx, dword [edi + 0x1c]
mov dword [ecx + 0xa4], eax
test ebx, ebx
je 0x100bdd0
xor ecx, ecx
cmp ebp, ecx
je 0x100b89d
lea eax, [ebx - 9]
cmp eax, 0x35
ja 0x100b86b
movsx eax, byte [ebx + 0x104480b]
jmp 0x100b86d
xor eax, eax
cmp eax, ecx
mov esi, dword [esp + 0x20]
je 0x100b96c
mov eax, esi
sub eax, dword [edi + 0xc]
mov dword [edi], ebp
sar eax, 1
sub eax, ebp
mov dword [esp + 0x2c], eax
lea eax, [eax + ebp - 1]
xor ebp, ebp
xor edx, edx
mov dword [edi + 4], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
jmp 0x100b8a5
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
cmp dword [esp + 0x18], ecx
je 0x100baca
cmp ebx, 0x3e
jne 0x100b975
test byte [esp + 0x10], 0xc0
jne 0x100b990
mov ecx, dword [esp + 0x1c]
mov eax, esi
sub eax, dword [edi + 0xc]
sar eax, 1
inc eax
cmp ecx, 1
mov dword [edi + 8], eax
jne 0x100b91a
and dword [esp + 0x18], 0
cmp dword [esp + 0x14], ecx
jne 0x100b94e
cmp dword [esp + 0x24], 0x2f
jne 0x100b94e
test edx, edx
je 0x100b90d
test word [esp + 0x10], 0x200
je 0x100b90d
lea eax, [edx - 9]
cmp eax, 0x1e
ja 0x100b907
movsx eax, byte [edx + 0x1044843]
jmp 0x100b909
xor eax, eax
test eax, eax
je 0x100b94e
mov eax, dword [esp + 0x38]
or dword [eax + 0xc], 0x10000
jmp 0x100b94e
dec eax
cmp eax, ecx
jle 0x100b94e
mov ebx, dword [esp + 0x18]
lea eax, [ecx + ecx]
mov edx, esi
sub edx, eax
lea eax, [edx + 2]
mov dword [esp + 0x30], ecx
sub ebx, eax
dec dword [esp + 0x30]
je 0x100b949
mov cx, word [eax]
mov dx, word [ebx + eax]
inc eax
inc eax
cmp cx, dx
je 0x100b933
jmp 0x100b94e
and dword [esp + 0x18], 0
and dword [esp + 0x10], 0xfffffdff
cmp dword [esp + 0x18], 0
jne 0x100b96c
test byte [esp + 0x10], 0x20
je 0x100bd6f
mov esi, dword [esp + 0x20]
inc esi
inc esi
xor ecx, ecx
jmp 0x100b7b7
cmp ebx, 0x3c
jne 0x100b990
cmp dword [esp + 0x14], 2
je 0x100be78
cmp dword [esp + 0x14], 0xffffffff
je 0x100be78
test byte [esp + 0x14], 1
je 0x100ba84
test word [esp + 0x10], 0x2c0
je 0x100b9ff
cmp ebx, 0x22
jne 0x100b9bd
test byte [esp + 0x10], 0x80
je 0x100b9d3
xor dword [esp + 0x10], 0x80
jmp 0x100ba73
cmp ebx, 0x27
jne 0x100b9d3
test byte [esp + 0x10], 0x40
je 0x100b9d3
xor dword [esp + 0x10], 0x40
jmp 0x100ba73
mov ecx, 0x200
test dword [esp + 0x10], ecx
je 0x100ba73
lea eax, [ebx - 9]
cmp eax, 0x17
ja 0x100b9f3
movsx eax, byte [ebx + 0x10444df]
jmp 0x100b9f5
xor eax, eax
test eax, eax
je 0x100ba73
xor dword [esp + 0x10], ecx
jmp 0x100ba73
cmp ebx, 0x22
jne 0x100ba17
test word [esp + 0x10], 0x100
je 0x100ba73
xor dword [esp + 0x10], 0x180
jmp 0x100ba73
cmp ebx, 0x27
jne 0x100ba2f
test word [esp + 0x10], 0x100
je 0x100ba73
xor dword [esp + 0x10], 0x140
jmp 0x100ba73
cmp ebx, 0x3d
jne 0x100ba4b
cmp dword [esp + 0x24], ebx
je 0x100ba4b
mov eax, 0x100
test dword [esp + 0x10], eax
jne 0x100ba4b
xor dword [esp + 0x10], eax
jmp 0x100ba73
test word [esp + 0x10], 0x100
je 0x100ba73
lea eax, [ebx - 9]
cmp eax, 0x17
ja 0x100ba65
movsx eax, byte [ebx + 0x10444df]
jmp 0x100ba67
xor eax, eax
cmp eax, ecx
jne 0x100ba73
xor dword [esp + 0x10], 0x300
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
jmp 0x100b96c
test byte [esp + 0x14], 0x40
je 0x100b96c
cmp ebx, 0x22
jne 0x100baac
test byte [esp + 0x10], 0x40
jne 0x100b96c
xor dword [esp + 0x10], 0x80
jmp 0x100b96c
cmp ebx, 0x27
jne 0x100b96c
test byte [esp + 0x10], 0x80
jne 0x100b96c
xor dword [esp + 0x10], 0x40
jmp 0x100b96c
cmp dword [esp + 0x10], ecx
je 0x100bd8e
test byte [esp + 0x10], 0x10
je 0x100bb21
cmp ebx, 0x3c
je 0x100be82
lea eax, [ebx - 9]
cmp eax, 0x17
ja 0x100baf5
movsx eax, byte [ebx + 0x10444df]
jmp 0x100baf7
xor eax, eax
cmp eax, ecx
jne 0x100b96c
xor dword [esp + 0x10], 0x10
mov dword [esp + 0x18], 0x104486c
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], 2
jmp 0x100b96c
test byte [esp + 0x10], 1
je 0x100bbdb
xor eax, eax
inc eax
xor dword [esp + 0x10], eax
cmp ebx, 0x60
ja 0x100bbbf
cmp ebx, 0x40
jbe 0x100bb46
cmp ebx, 0x5b
jb 0x100bbbf
cmp ebx, 0x5f
je 0x100bbbf
cmp ebx, 0x3a
je 0x100bbbf
cmp ebx, 0x2f
jne 0x100bb67
mov dword [esp + 0x18], 0x1044870
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
jmp 0x100bb93
cmp ebx, 0x21
jne 0x100bb76
or dword [esp + 0x10], 2
jmp 0x100b96c
cmp ebx, 0x3f
jne 0x100bba0
mov dword [esp + 0x18], 0x1044874
mov dword [esp + 0x1c], 2
mov dword [esp + 0x14], 0x10
mov ebp, esi
sub ebp, dword [edi + 0xc]
sar ebp, 1
inc ebp
jmp 0x100b96c
push 0xffffffffffffffff
push dword [edi + 8]
mov dword [esp + 0x24], eax
push 0
push ecx
mov eax, esp
and dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.first_tag_syntax
jmp 0x100bd19
mov ebp, esi
sub ebp, dword [edi + 0xc]
mov dword [esp + 0x18], 0x1044870
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
sar ebp, 1
jmp 0x100b96c
test byte [esp + 0x10], 2
je 0x100bc89
xor dword [esp + 0x10], 2
cmp ebx, 0x2d
jne 0x100bbfa
or dword [esp + 0x10], 4
jmp 0x100b96c
test byte [esp + 0x10], 0x20
je 0x100bc50
lea eax, [ebx - 0x41]
cmp eax, 0xd
ja 0x100bc12
movsx eax, byte [ebx + 0x104485f]
jmp 0x100bc14
xor eax, eax
cmp eax, ecx
mov dword [esp + 0x18], 0x1044870
mov dword [esp + 0x1c], 1
je 0x100bc35
mov dword [esp + 0x14], 0x40
jmp 0x100b96c
push 0xffffffffffffffff
push dword [edi + 8]
push 0
push ecx
mov eax, esp
and dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.doctype_tag_syntax
jmp 0x100bd21
cmp ebx, 0x5b
jne 0x100bc5f
or dword [esp + 0x10], 8
jmp 0x100b96c
cmp ebx, 0x44
jne 0x100bc6e
or dword [esp + 0x10], 0x20
jmp 0x100b96c
push 0xffffffffffffffff
push dword [edi + 8]
push 0
push ecx
mov eax, esp
and dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.exclamation_tag_syntax
jmp 0x100bd11
test byte [esp + 0x10], 4
je 0x100bccf
xor dword [esp + 0x10], 4
cmp ebx, 0x2d
jne 0x100bcb7
mov dword [esp + 0x18], 0x1044908
mov dword [esp + 0x1c], 3
mov dword [esp + 0x14], 0x20
jmp 0x100b96c
push 0xffffffffffffffff
push dword [edi + 8]
push 0
push ecx
mov eax, esp
and dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.comment_tag_syntax
jmp 0x100bd11
test byte [esp + 0x10], 8
je 0x100bd3b
push 8
pop eax
xor dword [esp + 0x10], eax
cmp ebx, 0x43
jne 0x100bcfb
mov dword [esp + 0x18], 0x1044938
mov dword [esp + 0x1c], 3
mov dword [esp + 0x14], eax
jmp 0x100b96c
push 0xffffffffffffffff
push dword [edi + 8]
push 0
push ecx
mov eax, esp
and dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.cdata_section_syntax
mov dword [esp + 0x30], 1
mov dword [esp + 0x2c], 0x1044870
mov eax, dword [esp + 0x4c]
add eax, 0x10
push eax
call fcn.0100939f
add esp, 0x18
or dword [esp + 0x14], 0xffffffff
jmp 0x100b96c
test byte [esp + 0x10], 0x20
je 0x100b96c
cmp ebx, 0x3c
jne 0x100bd55
or dword [esp + 0x10], 1
jmp 0x100b96c
cmp ebx, 0x3e
jne 0x100b96c
sub esi, dword [edi + 0xc]
mov dword [esp + 0x14], 0x40
sar esi, 1
inc esi
mov dword [edi + 8], esi
mov eax, dword [esp + 0x38]
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 4]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 4
cmp ebx, 0x3c
jne 0x100bda0
mov dword [esp + 0x10], 1
jmp 0x100b96c
lea eax, [ebx - 9]
cmp eax, 0x17
mov dword [esp + 0x14], 4
ja 0x100bdb9
movsx eax, byte [ebx + 0x10444df]
jmp 0x100bdbb
xor eax, eax
cmp eax, ecx
je 0x100bb04
mov dword [esp + 0x10], 0x10
jmp 0x100b96c
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 4]
cmp dword [edi + 8], eax
jne 0x100bde8
and dword [ecx + 8], 0
and dword [ecx], 0
push 0xfffffffffffffffe
pop eax
jmp 0x100bd84
cmp dword [esp + 0x14], 4
je 0x100bd6f
cmp dword [esp + 0x14], 2
je 0x100bd6f
test byte [esp + 0x10], 0x20
mov edx, 0x1044740
jne 0x100be4a
mov esi, dword [esp + 0x14]
cmp esi, 0x40
je 0x100be4a
cmp esi, 1
jne 0x100be1b
mov edx, str.start_tag
jmp 0x100be4f
test esi, esi
jne 0x100be26
mov edx, str.end_tag
jmp 0x100be4f
cmp esi, 8
jne 0x100be32
mov edx, str.cdata_section
jmp 0x100be4f
cmp esi, 0x10
jne 0x100be3e
mov edx, str.processing_instruction
jmp 0x100be4f
cmp esi, 0x20
jne 0x100be4f
mov edx, str.comment
jmp 0x100be4f
mov edx, str.document_type
or dword [esp + 0x14], 0xffffffff
push 0xffffffffffffffff
push eax
push 2
push ecx
mov eax, esp
push ecx
mov dword [eax], edx
mov eax, esp
add ecx, 0x10
push ecx
mov dword [eax], str.unterminated_tag_syntax
call fcn.0100939f
add esp, 0x18
jmp 0x100bd6f
sub esi, dword [edi + 0xc]
sar esi, 1
jmp 0x100bd6c
sub esi, dword [edi + 0xc]
mov dword [esp + 0x14], 4
sar esi, 1
jmp 0x100bd6c