Function at 0x449000
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov edx, dword [esi + 8]
xor ecx, ecx
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
push edi
or ebx, 0xffffffff
xor edi, edi
lea eax, [edx + eax*2]
mov dword [ebp - 4], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0xc], eax
nop
mov edx, dword [ebp - 0xc]
movzx eax, word [edx]
test eax, eax
jne 0x4490d5
mov eax, edx
sub eax, dword [esi + 0xc]
sar eax, 1
mov dword [esi + 8], eax
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4496d2
mov edi, dword [eax + 0xa4]
mov ecx, eax
call fcn.00448e60
test al, al
je 0x4496ca
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 8]
mov eax, dword [eax + 0xa4]
sub edx, ecx
sub eax, edi
mov edi, dword [ebp + 8]
je 0x4490b1
sub ecx, eax
cmp dword [ebp - 0x14], 0
mov dword [edi + 4], ecx
je 0x4490a3
sub dword [ebp - 0x14], eax
jmp 0x4490ae
cmp dword [ebp - 0x20], 0
je 0x4490ae
sub dword [esi], eax
sub dword [esi + 4], eax
sub dword [esi + 8], eax
mov ecx, dword [esi + 0x1c]
mov eax, dword [edi + 4]
mov ecx, dword [ecx + 0x28]
mov ecx, dword [ecx]
add eax, edx
lea eax, [ecx + eax*2]
mov dword [esi + 0xc], ecx
mov dword [ebp - 0xc], eax
movzx eax, word [eax]
test eax, eax
je 0x4496cd
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x44911e
lea ecx, [eax - 9]
cmp ecx, 0x35
ja 0x449112
movsx ecx, byte [eax + 0x544edf]
test ecx, ecx
je 0x449112
mov ecx, dword [ebp - 0xc]
sub ecx, dword [esi + 0xc]
mov dword [esi], edx
sar ecx, 1
sub ecx, edx
lea edx, [ecx + edx - 1]
mov dword [esi + 4], edx
xor edx, edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
jmp 0x449121
add dword [ebp - 0xc], 2
mov ecx, dword [ebp - 4]
jmp 0x449040
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 8], 0
je 0x449332
cmp eax, 0x3e
jne 0x4491e5
mov ecx, dword [ebp - 4]
test cl, 0xc0
jne 0x4491ff
mov eax, dword [ebp - 0xc]
sub eax, dword [esi + 0xc]
sar eax, 1
inc eax
mov dword [esi + 8], eax
cmp edi, 1
jne 0x449185
mov dword [ebp - 8], 0
cmp ebx, edi
jne 0x4491d3
cmp dword [ebp - 0x18], 0x2f
jne 0x4491d3
test edx, edx
je 0x449179
lea eax, [edx - 9]
cmp eax, 0x1e
ja 0x4491d3
movsx eax, byte [edx + 0x544ebf]
test eax, eax
je 0x4491d3
mov eax, dword [ebp + 8]
or dword [eax + 0xc], 0x10000
jmp 0x4491d3
dec eax
cmp eax, edi
jle 0x449378
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
lea ecx, [edi + edi]
sub eax, ecx
add eax, 2
sub edx, eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], edx
jmp 0x4491a9
mov edx, dword [ebp - 0x28]
dec dword [ebp - 0x24]
je 0x4491c9
mov cx, word [eax]
mov dx, word [edx + eax]
add eax, 2
cmp cx, dx
je 0x4491a6
mov ecx, dword [ebp - 4]
add dword [ebp - 0xc], 2
jmp 0x449040
mov ecx, dword [ebp - 4]
mov dword [ebp - 8], 0
test cl, 0x20
je 0x449666
add dword [ebp - 0xc], 2
jmp 0x449040
cmp eax, 0x3c
jne 0x4491fc
cmp ebx, 2
je 0x44977f
cmp ebx, 0xffffffff
je 0x44977f
mov ecx, dword [ebp - 4]
test bl, 1
je 0x4492f9
test cl, 0xc0
je 0x44925f
cmp eax, 0x22
jne 0x449235
test cl, cl
jns 0x4492e7
mov edx, dword [ebp - 0x18]
xor ecx, 0x80
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
jmp 0x449040
cmp eax, 0x27
jne 0x4492e7
test cl, 0x40
je 0x4492e7
mov edx, dword [ebp - 0x18]
xor ecx, 0x40
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
jmp 0x449040
cmp eax, 0x22
jne 0x449287
test ecx, 0x100
je 0x4492e7
mov edx, dword [ebp - 0x18]
xor ecx, 0x180
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
jmp 0x449040
cmp eax, 0x27
jne 0x4492af
test ecx, 0x100
je 0x4492e7
mov edx, dword [ebp - 0x18]
xor ecx, 0x140
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
jmp 0x449040
cmp eax, 0x3d
jne 0x4492c3
cmp dword [ebp - 0x18], eax
je 0x4492c3
test ecx, 0x100
jne 0x4492cb
jmp 0x4492de
test ecx, 0x100
je 0x4492e7
lea edx, [eax - 9]
cmp edx, 0x17
ja 0x4492de
movsx edx, byte [eax + 0x54472f]
test edx, edx
jne 0x4492e7
xor ecx, 0x100
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x18]
add dword [ebp - 0xc], 2
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
jmp 0x449040
test bl, 0x40
je 0x449378
cmp eax, 0x22
jne 0x44931a
test cl, 0x40
jne 0x449378
xor ecx, 0x80
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
jmp 0x449040
cmp eax, 0x27
jne 0x449378
test cl, cl
js 0x449378
xor ecx, 0x40
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
jmp 0x449040
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x44967f
test cl, 0x10
je 0x449381
cmp eax, 0x3c
je 0x44978c
lea edx, [eax - 9]
cmp edx, 0x17
ja 0x44935e
movsx eax, byte [eax + 0x54472f]
test eax, eax
jne 0x449378
xor ecx, 0x10
mov dword [ebp - 4], ecx
mov edi, 1
mov ebx, 2
mov dword [ebp - 8], 0x544ae0
mov dword [ebp - 0x10], edi
add dword [ebp - 0xc], 2
jmp 0x449040
test cl, 1
je 0x449465
xor ecx, 1
mov dword [ebp - 4], ecx
cmp eax, 0x60
ja 0x449440
cmp eax, 0x40
jbe 0x4493a7
cmp eax, 0x5b
jb 0x449440
cmp eax, 0x5f
je 0x449440
cmp eax, 0x3a
je 0x449440
cmp eax, 0x2f
jne 0x4493e4
mov eax, dword [ebp - 0xc]
sub eax, dword [esi + 0xc]
mov edi, 1
sar eax, 1
inc eax
xor ebx, ebx
add dword [ebp - 0xc], 2
mov dword [ebp - 8], 0x544acc
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edi
jmp 0x449040
cmp eax, 0x21
jne 0x4493f8
or ecx, 2
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
jmp 0x449040
cmp eax, 0x3f
jne 0x449421
lea edi, [eax - 0x3d]
lea ebx, [eax - 0x2f]
mov eax, dword [ebp - 0xc]
sub eax, dword [esi + 0xc]
mov dword [ebp - 8], 0x544af8
sar eax, 1
inc eax
add dword [ebp - 0xc], edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edi
jmp 0x449040
mov eax, dword [esi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.first_tag_syntax
jmp 0x449602
mov eax, dword [ebp - 0xc]
sub eax, dword [esi + 0xc]
mov edi, 1
sar eax, 1
add dword [ebp - 0xc], 2
mov dword [ebp - 8], 0x544acc
mov ebx, edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edi
jmp 0x449040
test cl, 2
je 0x44954b
xor ecx, 2
mov dword [ebp - 4], ecx
cmp eax, 0x2d
jne 0x449488
or ecx, 4
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
jmp 0x449040
test cl, 0x20
je 0x4494dc
lea edx, [eax - 0x41]
cmp edx, 0xd
ja 0x4494bd
movsx eax, byte [eax + 0x544e53]
test eax, eax
je 0x4494bd
add dword [ebp - 0xc], 2
mov edi, 1
mov dword [ebp - 8], 0x544acc
mov ebx, 0x40
mov dword [ebp - 0x10], edi
jmp 0x449040
mov eax, dword [esi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.doctype_tag_syntax
jmp 0x449602
cmp eax, 0x5b
jne 0x4494f0
or ecx, 8
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
jmp 0x449040
cmp eax, 0x44
jne 0x449504
or ecx, 0x20
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
jmp 0x449040
mov edx, dword [esi + 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.exclamation_tag_syntax
mov eax, dword [ebp + 8]
add eax, 0x10
mov edi, 1
push eax
mov dword [ebp - 8], 0x544acc
mov dword [ebp - 0x10], edi
call fcn.00448460
mov ecx, dword [ebp - 4]
add esp, 0x18
or ebx, 0xffffffff
add dword [ebp - 0xc], 2
jmp 0x449040
test cl, 4
je 0x4495bd
xor ecx, 4
mov dword [ebp - 4], ecx
cmp eax, 0x2d
jne 0x449576
add dword [ebp - 0xc], 2
mov edi, 3
mov dword [ebp - 8], 0x544ae4
lea ebx, [eax - 0xd]
mov dword [ebp - 0x10], edi
jmp 0x449040
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 8]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
add edx, 0x10
mov edi, 1
push edx
mov dword [ebp - 8], 0x544acc
mov dword [ebp - 0x10], edi
mov dword [eax], str.comment_tag_syntax
call fcn.00448460
mov ecx, dword [ebp - 4]
add esp, 0x18
or ebx, 0xffffffff
add dword [ebp - 0xc], 2
jmp 0x449040
test cl, 8
je 0x44962f
xor ecx, 8
mov dword [ebp - 4], ecx
cmp eax, 0x43
jne 0x4495e8
add dword [ebp - 0xc], 2
mov edi, 3
mov dword [ebp - 8], 0x544ac4
lea ebx, [eax - 0x3b]
mov dword [ebp - 0x10], edi
jmp 0x449040
mov eax, dword [esi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.cdata_section_syntax
mov ecx, dword [ebp + 8]
add ecx, 0x10
mov edi, 1
push ecx
mov dword [ebp - 8], 0x544acc
mov dword [ebp - 0x10], edi
call fcn.00448460
mov ecx, dword [ebp - 4]
add esp, 0x18
or ebx, 0xffffffff
add dword [ebp - 0xc], 2
jmp 0x449040
test cl, 0x20
je 0x449378
cmp eax, 0x3c
jne 0x44964c
or ecx, 1
add dword [ebp - 0xc], 2
mov dword [ebp - 4], ecx
jmp 0x449040
cmp eax, 0x3e
jne 0x449378
mov eax, dword [ebp - 0xc]
sub eax, dword [esi + 0xc]
mov ebx, 0x40
sar eax, 1
inc eax
mov dword [esi + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 8]
sub ecx, dword [eax + 4]
mov dword [eax], ebx
mov dword [eax + 8], ecx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x3c
jne 0x449697
add dword [ebp - 0xc], 2
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 4]
jmp 0x449040
lea edx, [eax - 9]
mov ebx, 4
cmp edx, 0x17
ja 0x449364
movsx eax, byte [eax + 0x54472f]
test eax, eax
je 0x449364
add dword [ebp - 0xc], 2
mov dword [ebp - 4], 0x10
mov ecx, dword [ebp - 4]
jmp 0x449040
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 4]
jmp 0x4496d5
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
cmp dword [esi + 8], eax
jne 0x4496f8
mov dword [edi + 8], 0
mov dword [edi], 0
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 4
je 0x449666
cmp ebx, 2
je 0x449666
mov edx, 0x544de0
test cl, 0x20
jne 0x449754
cmp ebx, 0x40
je 0x449754
cmp ebx, 1
jne 0x449725
mov edx, str.start_tag
jmp 0x449759
test ebx, ebx
jne 0x449730
mov edx, str.end_tag
jmp 0x449759
cmp ebx, 8
jne 0x44973c
mov edx, str.cdata_section
jmp 0x449759
cmp ebx, 0x10
jne 0x449748
mov edx, str.processing_instruction
jmp 0x449759
cmp ebx, 0x20
jne 0x449759
mov edx, str.comment
jmp 0x449759
mov edx, str.document_type
or ebx, 0xffffffff
push ebx
push eax
push 2
push ecx
mov eax, esp
push ecx
mov dword [eax], edx
mov eax, esp
add edi, 0x10
push edi
mov dword [eax], str.unterminated_tag_syntax
call fcn.00448460
add esp, 0x18
jmp 0x449666
mov eax, dword [ebp - 0xc]
sub eax, dword [esi + 0xc]
sar eax, 1
jmp 0x449663
mov eax, dword [ebp - 0xc]
sub eax, dword [esi + 0xc]
mov ebx, 4
sar eax, 1
jmp 0x449663