Function at 0x4115e4
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdbc
xor eax, eax
xor edx, edx
xor ecx, ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
or edi, 0xffffffff
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ecx
xor eax, eax
mov dword [ebp - 0x14], eax
xor ebx, ebx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edx + 8]
mov dword [eax + 4], ecx
xor ecx, ecx
mov edx, dword [ebp + 0xc]
mov dword [edx + 0xc], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xc]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
movsx esi, byte [edx]
test esi, esi
jne 0x41165a
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax + 8], edx
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov dword [ecx], eax
mov eax, 0xfffffffe
jmp 0x411d69
mov edx, dword [ebp - 0x1c]
movsx esi, byte [edx]
test esi, esi
jne 0x41172a
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
sub edx, dword [eax + 0xc]
dec edx
cmp edi, 4
mov dword [ebp - 0x18], edx
je 0x411d4c
cmp edi, 2
je 0x411d4c
test bl, 0x20
mov eax, 0x4bf3a4
jne 0x411696
cmp edi, 0x40
jne 0x41169d
mov eax, str.Doctype
jmp 0x4116d6
cmp edi, 1
jne 0x4116a9
mov eax, str.Element_tag
jmp 0x4116d6
test edi, edi
jne 0x4116b4
mov eax, str.Element_end_tag
jmp 0x4116d6
cmp edi, 8
jne 0x4116c0
mov eax, str.CDATA_Section
jmp 0x4116d6
cmp edi, 0x10
jne 0x4116cc
mov eax, str.Processing_instruction
jmp 0x4116d6
cmp edi, 0x20
jne 0x4116d6
mov eax, str.Comment
or edi, 0xffffffff
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 4]
push ecx
push eax
push str._s_at_offset__d_unterminated
lea eax, [ebp - 0xb4]
push eax
call fcn.0047d588
add esp, 0x10
lea eax, [ebp - 0xb4]
push eax
call fcn.00479a2c
pop ecx
lea edx, [ebp - 0xb4]
add eax, edx
lea ecx, [ebp - 0x24]
push ecx
push eax
lea eax, [ebp - 0xb4]
push eax
mov edx, dword [ebp + 0xc]
add edx, 0x10
push edx
call fcn.0040f7c0
add esp, 0x10
jmp 0x411d4c
cmp dword [ebp - 0xc], 0
je 0x4117a6
mov ecx, esi
movsx eax, cl
push eax
push str.__t_n_r__
call fcn.00479b39
add esp, 8
test eax, eax
je 0x41179e
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
sub eax, dword [edx + 0xc]
sub eax, dword [ebp - 0xc]
test edi, edi
jne 0x41176b
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword [edx], ecx
add eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
dec eax
mov dword [edx + 4], eax
jmp 0x41178d
mov edx, eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x2c]
mov eax, dword [eax + 0xc]
add eax, dword [ebp - 0xc]
push ecx
add edx, eax
push edx
push eax
mov edx, dword [ebp + 0xc]
add edx, 0x10
push edx
call fcn.0040f7c0
add esp, 0x10
xor eax, eax
mov dword [ebp - 0xc], eax
xor edx, edx
mov dword [ebp - 0x14], edx
xor ecx, ecx
mov dword [ebp - 0x10], ecx
jmp 0x4117a6
inc dword [ebp - 0x1c]
jmp 0x41165a
cmp dword [ebp - 4], 0
je 0x41194f
cmp esi, 0x3e
jne 0x411855
test bl, 0xc0
jne 0x411855
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
sub edx, dword [eax + 0xc]
mov dword [ebp - 0x18], edx
cmp dword [ebp - 8], 1
jne 0x41180c
xor ecx, ecx
cmp edi, 1
mov dword [ebp - 4], ecx
jne 0x41183d
cmp dword [ebp - 0x10], 0x2f
jne 0x41183d
cmp dword [ebp - 0x14], 0
je 0x411800
movsx eax, byte [ebp - 0x14]
push eax
push 0x4bf41d
call fcn.00479b39
add esp, 8
test eax, eax
je 0x41183d
mov edx, dword [ebp + 0xc]
or dword [edx + 0xc], 0x10000
jmp 0x41183d
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 8]
jle 0x41183d
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
sub edx, dword [ebp - 8]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
inc edx
dec eax
je 0x411834
mov cl, byte [edx]
mov esi, dword [ebp - 0x30]
inc dword [ebp - 0x30]
inc edx
cmp cl, byte [esi]
je 0x411824
test eax, eax
jne 0x41183d
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x411d44
test bl, 0x20
je 0x411d4c
jmp 0x411d44
cmp esi, 0x3c
jne 0x411876
cmp edi, 2
je 0x411864
cmp edi, 0xffffffff
jne 0x411876
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [edx + 0xc]
dec ecx
mov dword [ebp - 0x18], ecx
jmp 0x411d4c
test edi, 1
je 0x411914
test bl, 0xc0
je 0x4118a8
cmp esi, 0x22
jne 0x411899
test bl, 0x80
je 0x411899
xor ebx, 0x80
jmp 0x411906
cmp esi, 0x27
jne 0x411906
test bl, 0x40
je 0x411906
xor ebx, 0x40
jmp 0x411906
cmp esi, 0x22
jne 0x4118ba
test bh, 1
je 0x4118ba
xor ebx, 0x180
jmp 0x411906
cmp esi, 0x27
jne 0x4118cc
test bh, 1
je 0x4118cc
xor ebx, 0x140
jmp 0x411906
cmp esi, 0x3d
jne 0x4118e4
cmp dword [ebp - 0x10], 0x3d
je 0x4118e4
test bh, 1
jne 0x4118e4
xor ebx, 0x100
jmp 0x411906
test bh, 1
je 0x411906
mov eax, esi
movsx edx, al
push edx
push 0x4bf424
call fcn.00479b39
add esp, 8
test eax, eax
jne 0x411906
xor ebx, 0x100
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], esi
jmp 0x411d44
test edi, 0x40
je 0x411d44
cmp esi, 0x22
jne 0x411935
test bl, 0x40
jne 0x411935
xor ebx, 0x80
jmp 0x411d44
cmp esi, 0x27
jne 0x411d44
test bl, 0x80
jne 0x411d44
xor ebx, 0x40
jmp 0x411d44
test ebx, ebx
je 0x411cf7
test bl, 0x10
je 0x4119bb
cmp esi, 0x3c
jne 0x411978
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
mov edi, 4
sub edx, dword [eax + 0xc]
dec edx
mov dword [ebp - 0x18], edx
jmp 0x411d4c
mov eax, esi
movsx edx, al
push edx
push 0x4bf429
call fcn.00479b39
add esp, 8
test eax, eax
jne 0x411d44
xor ebx, 0x10
mov dword [ebp - 4], 0x4bf42e
mov dword [ebp - 8], 1
mov edi, 2
jmp 0x411d44
test bl, 1
je 0x411ac5
xor ebx, 1
cmp esi, 0x60
ja 0x4119e0
cmp esi, 0x40
jbe 0x4119d6
cmp esi, 0x5b
jb 0x4119e0
cmp esi, 0x5f
je 0x4119e0
cmp esi, 0x3a
jne 0x411a04
mov dword [ebp - 4], 0x4bf430
mov dword [ebp - 8], 1
mov edi, 1
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
sub edx, dword [eax + 0xc]
mov dword [ebp - 0xc], edx
jmp 0x411d44
cmp esi, 0x2f
jne 0x411a2b
mov dword [ebp - 4], 0x4bf432
mov dword [ebp - 8], 1
xor edi, edi
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
sub edx, dword [eax + 0xc]
inc edx
mov dword [ebp - 0xc], edx
jmp 0x411d44
cmp esi, 0x21
jne 0x411a38
or ebx, 2
jmp 0x411d44
cmp esi, 0x3f
jne 0x411a62
mov dword [ebp - 4], 0x4bf434
mov dword [ebp - 8], 2
mov edi, 0x10
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
sub edx, dword [eax + 0xc]
inc edx
mov dword [ebp - 0xc], edx
jmp 0x411d44
mov dword [ebp - 4], 0x4bf437
mov dword [ebp - 8], 1
mov ecx, dword [ebp - 0x18]
push ecx
push str.tag_name_character
push 0x4bf439
lea eax, [ebp - 0x118]
push eax
call fcn.0047d588
add esp, 0x10
lea edx, [ebp - 0x118]
push edx
call fcn.00479a2c
pop ecx
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x118]
push edx
add eax, ecx
push eax
lea eax, [ebp - 0x118]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x10
push ecx
call fcn.0040f7c0
add esp, 0x10
or edi, 0xffffffff
jmp 0x411d44
test bl, 2
je 0x411ba1
xor ebx, 2
cmp esi, 0x2d
jne 0x411ade
or ebx, 4
jmp 0x411d44
cmp esi, 0x5b
jne 0x411af0
test bl, 0x20
jne 0x411af0
or ebx, 8
jmp 0x411d44
cmp esi, 0x44
jne 0x411b02
test bl, 0x20
jne 0x411b02
or ebx, 0x20
jmp 0x411d44
mov eax, esi
movsx edx, al
push edx
push 0x4bf466
call fcn.00479b39
add esp, 8
test eax, eax
je 0x411b3e
mov dword [ebp - 4], 0x4bf46a
mov dword [ebp - 8], 1
mov edi, 0x40
jmp 0x411d44
mov dword [ebp - 4], 0x4bf46c
mov dword [ebp - 8], 1
mov ecx, dword [ebp - 0x18]
push ecx
push str.__tag
push 0x4bf46e
lea eax, [ebp - 0x17c]
push eax
call fcn.0047d588
add esp, 0x10
lea edx, [ebp - 0x17c]
push edx
call fcn.00479a2c
pop ecx
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x17c]
push edx
add eax, ecx
push eax
lea eax, [ebp - 0x17c]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x10
push ecx
call fcn.0040f7c0
add esp, 0x10
or edi, 0xffffffff
jmp 0x411d44
test bl, 4
je 0x411c3a
xor ebx, 4
cmp esi, 0x2d
jne 0x411bd7
mov dword [ebp - 4], 0x4bf48e
mov dword [ebp - 8], 3
mov edi, 0x20
jmp 0x411d44
mov dword [ebp - 4], 0x4bf492
mov dword [ebp - 8], 1
mov ecx, dword [ebp - 0x18]
push ecx
push str.comment_tag
push 0x4bf494
lea eax, [ebp - 0x1e0]
push eax
call fcn.0047d588
add esp, 0x10
lea edx, [ebp - 0x1e0]
push edx
call fcn.00479a2c
pop ecx
lea edx, [ebp - 0x48]
lea ecx, [ebp - 0x1e0]
push edx
add eax, ecx
push eax
lea eax, [ebp - 0x1e0]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x10
push ecx
call fcn.0040f7c0
add esp, 0x10
or edi, 0xffffffff
jmp 0x411d44
test bl, 8
je 0x411cd0
xor ebx, 8
cmp esi, 0x43
jne 0x411c70
mov dword [ebp - 4], 0x4bf4ba
mov dword [ebp - 8], 3
mov edi, 8
jmp 0x411d44
mov dword [ebp - 4], 0x4bf4be
mov dword [ebp - 8], 1
mov ecx, dword [ebp - 0x18]
push ecx
push 0x4bf4da
push str.Incorrect__s_at_offset__d
lea eax, [ebp - 0x244]
push eax
call fcn.0047d588
add esp, 0x10
lea edx, [ebp - 0x244]
push edx
call fcn.00479a2c
pop ecx
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x244]
push edx
add eax, ecx
push eax
lea eax, [ebp - 0x244]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x10
push ecx
call fcn.0040f7c0
add esp, 0x10
or edi, 0xffffffff
jmp 0x411d44
test bl, 0x20
je 0x411d44
cmp esi, 0x3c
jne 0x411cdf
or ebx, 1
jmp 0x411d44
cmp esi, 0x3e
jne 0x411d44
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
mov edi, 0x40
sub edx, dword [eax + 0xc]
mov dword [ebp - 0x18], edx
jmp 0x411d4c
cmp esi, 0x3c
jne 0x411d01
or ebx, 1
jmp 0x411d44
mov edi, 4
mov eax, esi
movsx edx, al
push edx
push str.__t_n_r
call fcn.00479b39
add esp, 8
test eax, eax
je 0x411d22
or ebx, 0x10
jmp 0x411d44
mov dword [ebp - 4], 0x4bf4e3
mov dword [ebp - 8], 1
mov edi, 2
jmp 0x411d44
inc dword [ebp - 0x1c]
jmp 0x41165a
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x18]
inc eax
mov dword [edx + 8], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0xc]
sub eax, dword [ecx + 4]
mov dword [edx + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret