Function at 0x100ad8a
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 0x100ae67
sub esi, dword [edi + 0xc]
sar esi, 1
mov dword [edi + 8], esi
mov esi, dword [edi + 0x1c]
cmp esi, ecx
je 0x100b3e3
mov eax, dword [esi + 0xa4]
mov dword [esp + 0x30], eax
call fcn.0100a8e1
test al, al
je 0x100ae4e
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 0x100ae34
sub eax, edx
test ebp, ebp
mov dword [esi + 4], eax
je 0x100ae25
sub ebp, edx
jmp 0x100ae31
cmp dword [esp + 0x2c], 0
je 0x100ae31
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 0x100ae5f
mov ecx, dword [edi + 0x1c]
mov dword [ecx + 0xa4], eax
test ebx, ebx
je 0x100b3e3
xor ecx, ecx
cmp ebp, ecx
je 0x100aeb0
lea eax, [ebx - 9]
cmp eax, 0x35
ja 0x100ae7e
movsx eax, byte [ebx + 0x104168b]
jmp 0x100ae80
xor eax, eax
cmp eax, ecx
mov esi, dword [esp + 0x20]
je 0x100af7f
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 0x100aeb8
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
cmp dword [esp + 0x18], ecx
je 0x100b0dd
cmp ebx, 0x3e
jne 0x100af88
test byte [esp + 0x10], 0xc0
jne 0x100afa3
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 0x100af2d
and dword [esp + 0x18], 0
cmp dword [esp + 0x14], ecx
jne 0x100af61
cmp dword [esp + 0x24], 0x2f
jne 0x100af61
test edx, edx
je 0x100af20
test word [esp + 0x10], 0x200
je 0x100af20
lea eax, [edx - 9]
cmp eax, 0x1e
ja 0x100af1a
movsx eax, byte [edx + 0x10416c3]
jmp 0x100af1c
xor eax, eax
test eax, eax
je 0x100af61
mov eax, dword [esp + 0x38]
or dword [eax + 0xc], 0x10000
jmp 0x100af61
dec eax
cmp eax, ecx
jle 0x100af61
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 0x100af5c
mov cx, word [eax]
mov dx, word [ebx + eax]
inc eax
inc eax
cmp cx, dx
je 0x100af46
jmp 0x100af61
and dword [esp + 0x18], 0
and dword [esp + 0x10], 0xfffffdff
cmp dword [esp + 0x18], 0
jne 0x100af7f
test byte [esp + 0x10], 0x20
je 0x100b382
mov esi, dword [esp + 0x20]
inc esi
inc esi
xor ecx, ecx
jmp 0x100adca
cmp ebx, 0x3c
jne 0x100afa3
cmp dword [esp + 0x14], 2
je 0x100b48b
cmp dword [esp + 0x14], 0xffffffff
je 0x100b48b
test byte [esp + 0x14], 1
je 0x100b097
test word [esp + 0x10], 0x2c0
je 0x100b012
cmp ebx, 0x22
jne 0x100afd0
test byte [esp + 0x10], 0x80
je 0x100afe6
xor dword [esp + 0x10], 0x80
jmp 0x100b086
cmp ebx, 0x27
jne 0x100afe6
test byte [esp + 0x10], 0x40
je 0x100afe6
xor dword [esp + 0x10], 0x40
jmp 0x100b086
mov ecx, 0x200
test dword [esp + 0x10], ecx
je 0x100b086
lea eax, [ebx - 9]
cmp eax, 0x17
ja 0x100b006
movsx eax, byte [ebx + 0x104135f]
jmp 0x100b008
xor eax, eax
test eax, eax
je 0x100b086
xor dword [esp + 0x10], ecx
jmp 0x100b086
cmp ebx, 0x22
jne 0x100b02a
test word [esp + 0x10], 0x100
je 0x100b086
xor dword [esp + 0x10], 0x180
jmp 0x100b086
cmp ebx, 0x27
jne 0x100b042
test word [esp + 0x10], 0x100
je 0x100b086
xor dword [esp + 0x10], 0x140
jmp 0x100b086
cmp ebx, 0x3d
jne 0x100b05e
cmp dword [esp + 0x24], ebx
je 0x100b05e
mov eax, 0x100
test dword [esp + 0x10], eax
jne 0x100b05e
xor dword [esp + 0x10], eax
jmp 0x100b086
test word [esp + 0x10], 0x100
je 0x100b086
lea eax, [ebx - 9]
cmp eax, 0x17
ja 0x100b078
movsx eax, byte [ebx + 0x104135f]
jmp 0x100b07a
xor eax, eax
cmp eax, ecx
jne 0x100b086
xor dword [esp + 0x10], 0x300
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
jmp 0x100af7f
test byte [esp + 0x14], 0x40
je 0x100af7f
cmp ebx, 0x22
jne 0x100b0bf
test byte [esp + 0x10], 0x40
jne 0x100af7f
xor dword [esp + 0x10], 0x80
jmp 0x100af7f
cmp ebx, 0x27
jne 0x100af7f
test byte [esp + 0x10], 0x80
jne 0x100af7f
xor dword [esp + 0x10], 0x40
jmp 0x100af7f
cmp dword [esp + 0x10], ecx
je 0x100b3a1
test byte [esp + 0x10], 0x10
je 0x100b134
cmp ebx, 0x3c
je 0x100b495
lea eax, [ebx - 9]
cmp eax, 0x17
ja 0x100b108
movsx eax, byte [ebx + 0x104135f]
jmp 0x100b10a
xor eax, eax
cmp eax, ecx
jne 0x100af7f
xor dword [esp + 0x10], 0x10
mov dword [esp + 0x18], 0x10416ec
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], 2
jmp 0x100af7f
test byte [esp + 0x10], 1
je 0x100b1ee
xor eax, eax
inc eax
xor dword [esp + 0x10], eax
cmp ebx, 0x60
ja 0x100b1d2
cmp ebx, 0x40
jbe 0x100b159
cmp ebx, 0x5b
jb 0x100b1d2
cmp ebx, 0x5f
je 0x100b1d2
cmp ebx, 0x3a
je 0x100b1d2
cmp ebx, 0x2f
jne 0x100b17a
mov dword [esp + 0x18], 0x10416f0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
jmp 0x100b1a6
cmp ebx, 0x21
jne 0x100b189
or dword [esp + 0x10], 2
jmp 0x100af7f
cmp ebx, 0x3f
jne 0x100b1b3
mov dword [esp + 0x18], 0x10416f4
mov dword [esp + 0x1c], 2
mov dword [esp + 0x14], 0x10
mov ebp, esi
sub ebp, dword [edi + 0xc]
sar ebp, 1
inc ebp
jmp 0x100af7f
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 0x100b32c
mov ebp, esi
sub ebp, dword [edi + 0xc]
mov dword [esp + 0x18], 0x10416f0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
sar ebp, 1
jmp 0x100af7f
test byte [esp + 0x10], 2
je 0x100b29c
xor dword [esp + 0x10], 2
cmp ebx, 0x2d
jne 0x100b20d
or dword [esp + 0x10], 4
jmp 0x100af7f
test byte [esp + 0x10], 0x20
je 0x100b263
lea eax, [ebx - 0x41]
cmp eax, 0xd
ja 0x100b225
movsx eax, byte [ebx + 0x10416df]
jmp 0x100b227
xor eax, eax
cmp eax, ecx
mov dword [esp + 0x18], 0x10416f0
mov dword [esp + 0x1c], 1
je 0x100b248
mov dword [esp + 0x14], 0x40
jmp 0x100af7f
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 0x100b334
cmp ebx, 0x5b
jne 0x100b272
or dword [esp + 0x10], 8
jmp 0x100af7f
cmp ebx, 0x44
jne 0x100b281
or dword [esp + 0x10], 0x20
jmp 0x100af7f
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 0x100b324
test byte [esp + 0x10], 4
je 0x100b2e2
xor dword [esp + 0x10], 4
cmp ebx, 0x2d
jne 0x100b2ca
mov dword [esp + 0x18], 0x1041788
mov dword [esp + 0x1c], 3
mov dword [esp + 0x14], 0x20
jmp 0x100af7f
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 0x100b324
test byte [esp + 0x10], 8
je 0x100b34e
push 8
pop eax
xor dword [esp + 0x10], eax
cmp ebx, 0x43
jne 0x100b30e
mov dword [esp + 0x18], 0x10417b8
mov dword [esp + 0x1c], 3
mov dword [esp + 0x14], eax
jmp 0x100af7f
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], 0x10416f0
mov eax, dword [esp + 0x4c]
add eax, 0x10
push eax
call fcn.01008a20
add esp, 0x18
or dword [esp + 0x14], 0xffffffff
jmp 0x100af7f
test byte [esp + 0x10], 0x20
je 0x100af7f
cmp ebx, 0x3c
jne 0x100b368
or dword [esp + 0x10], 1
jmp 0x100af7f
cmp ebx, 0x3e
jne 0x100af7f
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 0x100b3b3
mov dword [esp + 0x10], 1
jmp 0x100af7f
lea eax, [ebx - 9]
cmp eax, 0x17
mov dword [esp + 0x14], 4
ja 0x100b3cc
movsx eax, byte [ebx + 0x104135f]
jmp 0x100b3ce
xor eax, eax
cmp eax, ecx
je 0x100b117
mov dword [esp + 0x10], 0x10
jmp 0x100af7f
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 4]
cmp dword [edi + 8], eax
jne 0x100b3fb
and dword [ecx + 8], 0
and dword [ecx], 0
push 0xfffffffffffffffe
pop eax
jmp 0x100b397
cmp dword [esp + 0x14], 4
je 0x100b382
cmp dword [esp + 0x14], 2
je 0x100b382
test byte [esp + 0x10], 0x20
mov edx, 0x10415c0
jne 0x100b45d
mov esi, dword [esp + 0x14]
cmp esi, 0x40
je 0x100b45d
cmp esi, 1
jne 0x100b42e
mov edx, str.start_tag
jmp 0x100b462
test esi, esi
jne 0x100b439
mov edx, str.end_tag
jmp 0x100b462
cmp esi, 8
jne 0x100b445
mov edx, str.cdata_section
jmp 0x100b462
cmp esi, 0x10
jne 0x100b451
mov edx, str.processing_instruction
jmp 0x100b462
cmp esi, 0x20
jne 0x100b462
mov edx, str.comment
jmp 0x100b462
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.01008a20
add esp, 0x18
jmp 0x100b382
sub esi, dword [edi + 0xc]
sar esi, 1
jmp 0x100b37f
sub esi, dword [edi + 0xc]
mov dword [esp + 0x14], 4
sar esi, 1
jmp 0x100b37f