Function at 0x1002d640
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x24
mov ecx, dword [esp + 0x2c]
push ebx
xor eax, eax
push ebp
mov ebp, dword [esp + 0x30]
push esi
mov esi, dword [ebp + 8]
mov dword [ecx + 4], esi
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
or ebx, 0xffffffff
add ecx, dword [ebp + 8]
push edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
movsx esi, byte [ecx]
cmp esi, eax
jne 0x1002d731
sub ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x1c]
mov dword [ebp + 8], ecx
cmp edi, eax
je 0x1002dd4a
mov eax, dword [edi + 0xd4]
mov dword [esp + 0x2c], eax
call fcn.1002d050
test al, al
je 0x1002d714
mov esi, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x1c]
mov eax, dword [esi + 4]
mov edx, dword [ebp + 8]
mov ecx, dword [ecx + 0xd4]
sub edx, eax
test ecx, ecx
je 0x1002d6ef
sub eax, ecx
cmp dword [esp + 0x20], 0
mov dword [esi + 4], eax
je 0x1002d6df
sub dword [esp + 0x20], ecx
jmp 0x1002d6ec
cmp dword [esp + 0x30], 0
je 0x1002d6ec
sub dword [ebp], ecx
sub dword [ebp + 4], ecx
sub dword [ebp + 8], ecx
mov eax, dword [esi + 4]
add eax, edx
mov edx, dword [ebp + 0x1c]
mov ecx, dword [edx + 0x58]
cmp dword [ecx + 0x18], 0x10
jb 0x1002d705
mov ecx, dword [ecx + 4]
jmp 0x1002d708
add ecx, 4
add eax, ecx
mov dword [ebp + 0xc], ecx
movsx esi, byte [eax]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1002d725
mov ecx, dword [ebp + 0x1c]
mov dword [ecx + 0xd4], eax
mov edx, dword [esp + 0x38]
test esi, esi
je 0x1002dd4a
mov ecx, dword [esp + 0x20]
xor edi, edi
cmp ecx, edi
je 0x1002d779
lea eax, [esi - 9]
cmp eax, 0x35
ja 0x1002da20
movsx eax, byte [esi + 0x10141c37]
cmp eax, edi
je 0x1002da20
mov eax, dword [esp + 0x18]
sub eax, dword [ebp + 0xc]
mov dword [ebp], ecx
sub eax, ecx
lea ecx, [eax + ecx - 1]
mov dword [esp + 0x30], eax
mov dword [ebp + 4], ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1002d9db
cmp esi, 0x3e
jne 0x1002d845
test dl, 0xc0
jne 0x1002d85c
mov eax, dword [esp + 0x18]
sub eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [ebp + 8], eax
cmp ecx, 1
jne 0x1002d7f0
xor edi, edi
mov dword [esp + 0x14], edi
cmp ebx, ecx
jne 0x1002d825
cmp dword [esp + 0x24], 0x2f
jne 0x1002d825
mov eax, dword [esp + 0x28]
test eax, eax
je 0x1002d7e3
test edx, 0x200
je 0x1002d7e3
add eax, 0xfffffff7
cmp eax, 0x1e
ja 0x1002d825
mov eax, dword [esp + 0x28]
movsx eax, byte [eax + 0x10141c6f]
test eax, eax
je 0x1002d825
mov eax, dword [esp + 0x3c]
or dword [eax + 0xc], 0x10000
jmp 0x1002d825
dec eax
cmp eax, ecx
jle 0x1002d825
mov eax, dword [esp + 0x18]
sub eax, ecx
mov esi, edi
inc eax
mov dword [esp + 0x2c], ecx
sub esi, eax
mov edi, ecx
sub edi, 1
je 0x1002d81f
mov dl, byte [esi + eax]
mov cl, byte [eax]
inc eax
cmp cl, dl
mov edx, dword [esp + 0x38]
je 0x1002d806
mov edi, dword [esp + 0x14]
jmp 0x1002d825
xor edi, edi
mov dword [esp + 0x14], edi
and edx, 0xfffffdff
mov dword [esp + 0x38], edx
test edi, edi
jne 0x1002da20
test dl, 0x20
je 0x1002dcf0
jmp 0x1002da20
cmp esi, 0x3c
jne 0x1002d85c
cmp ebx, 2
je 0x1002ddf9
cmp ebx, 0xffffffff
je 0x1002ddf9
test bl, 1
je 0x1002d9ae
test edx, 0x2c0
je 0x1002d8f9
cmp esi, 0x22
jne 0x1002d895
test dl, dl
jns 0x1002d8b7
xor edx, 0x80
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
jmp 0x1002da20
cmp esi, 0x27
jne 0x1002d8b7
test dl, 0x40
je 0x1002d8b7
xor edx, 0x40
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
jmp 0x1002da20
test edx, 0x200
je 0x1002d9a0
lea eax, [esi - 9]
cmp eax, 0x17
ja 0x1002d9a0
movsx eax, byte [esi + 0x10141a07]
test eax, eax
je 0x1002d9a0
xor edx, 0x200
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
jmp 0x1002da20
cmp esi, 0x22
jne 0x1002d925
test edx, 0x100
je 0x1002d9a0
xor edx, 0x180
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
jmp 0x1002da20
cmp esi, 0x27
jne 0x1002d94d
test edx, 0x100
je 0x1002d9a0
xor edx, 0x140
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
jmp 0x1002da20
cmp esi, 0x3d
jne 0x1002d97b
cmp dword [esp + 0x24], esi
je 0x1002d97b
test edx, 0x100
jne 0x1002d983
xor edx, 0x100
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
jmp 0x1002da20
test edx, 0x100
je 0x1002d9a0
lea ecx, [esi - 9]
cmp ecx, 0x17
ja 0x1002d996
movsx eax, byte [esi + 0x10141a07]
test eax, eax
jne 0x1002d9a0
xor edx, 0x300
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
jmp 0x1002da20
test bl, 0x40
je 0x1002da20
cmp esi, 0x22
jne 0x1002d9c9
test dl, 0x40
jne 0x1002da20
xor edx, 0x80
mov dword [esp + 0x38], edx
jmp 0x1002da20
cmp esi, 0x27
jne 0x1002da20
test dl, dl
js 0x1002da20
xor edx, 0x40
mov dword [esp + 0x38], edx
jmp 0x1002da20
test edx, edx
je 0x1002dd0b
test dl, 0x10
je 0x1002da40
cmp esi, 0x3c
je 0x1002de05
lea eax, [esi - 9]
cmp eax, 0x17
ja 0x1002da04
movsx eax, byte [esi + 0x10141a07]
test eax, eax
jne 0x1002da20
xor edx, 0x10
mov dword [esp + 0x38], edx
mov ebx, 2
mov dword [esp + 0x14], 0x10141c98
mov dword [esp + 0x1c], 1
mov esi, dword [esp + 0x18]
push esi
call fcn.100f5e86
mov edx, dword [esp + 0x3c]
add esi, eax
add esp, 4
mov dword [esp + 0x18], esi
xor eax, eax
mov ecx, esi
jmp 0x1002d685
test dl, 1
je 0x1002db1b
mov ecx, 1
xor edx, ecx
mov dword [esp + 0x38], edx
cmp esi, 0x60
ja 0x1002dafd
cmp esi, 0x40
jbe 0x1002da6b
cmp esi, 0x5b
jb 0x1002dafd
cmp esi, 0x5f
je 0x1002dafd
cmp esi, 0x3a
je 0x1002dafd
cmp esi, 0x2f
jne 0x1002da9f
mov eax, dword [esp + 0x18]
sub eax, dword [ebp + 0xc]
xor ebx, ebx
add eax, ecx
mov dword [esp + 0x14], 0x10141c9c
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
jmp 0x1002da20
cmp esi, 0x21
jne 0x1002dab0
or edx, 2
mov dword [esp + 0x38], edx
jmp 0x1002da20
cmp esi, 0x3f
jne 0x1002dada
mov eax, dword [esp + 0x18]
sub eax, dword [ebp + 0xc]
mov dword [esp + 0x14], 0x10141ca0
add eax, ecx
mov dword [esp + 0x1c], 2
lea ebx, [esi - 0x2f]
mov dword [esp + 0x20], eax
jmp 0x1002da20
push 0xffffffffffffffff
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
push ecx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.first_tag_syntax
jmp 0x1002dc9f
mov eax, dword [esp + 0x18]
sub eax, dword [ebp + 0xc]
mov dword [esp + 0x14], 0x10141c9c
mov dword [esp + 0x1c], ecx
mov ebx, ecx
mov dword [esp + 0x20], eax
jmp 0x1002da20
test dl, 2
je 0x1002dbe9
xor edx, 2
mov dword [esp + 0x38], edx
cmp esi, 0x2d
jne 0x1002db3c
or edx, 4
mov dword [esp + 0x38], edx
jmp 0x1002da20
test dl, 0x20
je 0x1002db85
lea eax, [esi - 0x41]
cmp eax, 0xd
ja 0x1002db66
movsx eax, byte [esi + 0x10141c77]
test eax, eax
je 0x1002db66
mov dword [esp + 0x14], 0x10141c9c
mov ebx, 0x40
jmp 0x1002da18
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.doctype_tag_syntax
jmp 0x1002dc97
cmp esi, 0x5b
jne 0x1002db96
or edx, 8
mov dword [esp + 0x38], edx
jmp 0x1002da20
cmp esi, 0x44
jne 0x1002dba7
or edx, 0x20
mov dword [esp + 0x38], edx
jmp 0x1002da20
mov eax, dword [ebp + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
push ecx
mov ecx, dword [esp + 0x50]
mov dword [eax], 0
mov eax, esp
add ecx, 0x10
push ecx
mov dword [esp + 0x2c], 0x10141c9c
mov dword [esp + 0x34], 1
mov dword [eax], str.exclamation_tag_syntax
call fcn.1002a3e0
add esp, 0x18
or ebx, 0xffffffff
jmp 0x1002da20
test dl, 4
je 0x1002dc54
xor edx, 4
mov dword [esp + 0x38], edx
cmp esi, 0x2d
jne 0x1002dc12
mov dword [esp + 0x14], 0x10141cf4
mov dword [esp + 0x1c], 3
lea ebx, [esi - 0xd]
jmp 0x1002da20
mov edx, dword [ebp + 8]
push 0xffffffffffffffff
push edx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.comment_tag_syntax
mov eax, dword [esp + 0x50]
add eax, 0x10
push eax
mov dword [esp + 0x2c], 0x10141c9c
mov dword [esp + 0x34], 1
call fcn.1002a3e0
add esp, 0x18
or ebx, 0xffffffff
jmp 0x1002da20
test dl, 8
je 0x1002dcbf
xor edx, 8
mov dword [esp + 0x38], edx
cmp esi, 0x43
jne 0x1002dc7d
mov dword [esp + 0x14], 0x10141d0c
mov dword [esp + 0x1c], 3
lea ebx, [esi - 0x3b]
jmp 0x1002da20
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.cdata_section_syntax
mov dword [esp + 0x30], 1
mov edx, dword [esp + 0x50]
add edx, 0x10
push edx
mov dword [esp + 0x2c], 0x10141c9c
call fcn.1002a3e0
add esp, 0x18
or ebx, 0xffffffff
jmp 0x1002da20
test dl, 0x20
je 0x1002da20
cmp esi, 0x3c
jne 0x1002dcd9
or edx, 1
mov dword [esp + 0x38], edx
jmp 0x1002da20
cmp esi, 0x3e
jne 0x1002da20
mov eax, dword [esp + 0x18]
sub eax, dword [ebp + 0xc]
lea ebx, [esi + 2]
inc eax
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 8]
sub ecx, dword [eax + 4]
mov dword [eax], ebx
mov dword [eax + 8], ecx
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 8
cmp esi, 0x3c
jne 0x1002dd1d
mov dword [esp + 0x38], 1
jmp 0x1002da20
lea eax, [esi - 9]
mov ebx, 4
cmp eax, 0x17
ja 0x1002da0b
movsx eax, byte [esi + 0x10141a07]
test eax, eax
je 0x1002da0b
mov dword [esp + 0x38], 0x10
jmp 0x1002da20
mov esi, dword [esp + 0x3c]
mov eax, dword [esi + 4]
cmp dword [ebp + 8], eax
jne 0x1002dd72
pop edi
mov dword [esi + 8], 0
mov dword [esi], 0
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x24
ret 8
cmp ebx, 4
je 0x1002dcf0
cmp ebx, 2
je 0x1002dcf0
mov ecx, 0x10141bd0
test dl, 0x20
jne 0x1002ddce
cmp ebx, 0x40
je 0x1002ddce
cmp ebx, 1
jne 0x1002dd9f
mov ecx, str.start_tag
jmp 0x1002ddd3
test ebx, ebx
jne 0x1002ddaa
mov ecx, str.end_tag
jmp 0x1002ddd3
cmp ebx, 8
jne 0x1002ddb6
mov ecx, 0x10141bf8
jmp 0x1002ddd3
cmp ebx, 0x10
jne 0x1002ddc2
mov ecx, str.processing_instruction
jmp 0x1002ddd3
cmp ebx, 0x20
jne 0x1002ddd3
mov ecx, 0x10141c20
jmp 0x1002ddd3
mov ecx, str.document_type
or ebx, 0xffffffff
push ebx
push eax
push 2
push ecx
mov eax, esp
push ecx
mov dword [eax], ecx
mov eax, esp
add esi, 0x10
push esi
mov dword [eax], str.unterminated_tag_syntax
call fcn.1002a3e0
add esp, 0x18
jmp 0x1002dcf0
mov eax, dword [esp + 0x18]
sub eax, dword [ebp + 0xc]
jmp 0x1002dced
mov eax, dword [esp + 0x18]
sub eax, dword [ebp + 0xc]
mov ebx, 4
jmp 0x1002dced