Function at 0x41e2e0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
mov esi, ecx
xor ebx, ebx
mov ecx, dword [ebp + 8]
or edx, 0xffffffff
push edi
xor edi, edi
mov dword [esp + 0x20], esi
xor eax, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov eax, dword [esi + 8]
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], ebx
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x28], ebx
lea eax, [eax + ecx*2]
movzx ecx, word [eax]
mov dword [esp + 0x18], eax
test ecx, ecx
jne 0x41e3c9
mov ecx, eax
sub ecx, dword [esi + 0xc]
sar ecx, 1
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x41e9dc
mov eax, dword [ecx + 0xa4]
mov dword [esp + 0x18], eax
call fcn.0041dc70
test al, al
je 0x41e9d8
mov eax, dword [ebp + 8]
mov edx, dword [esi + 8]
mov ecx, dword [eax + 4]
sub edx, ecx
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0xa4]
sub eax, dword [esp + 0x18]
je 0x41e3a0
mov esi, dword [ebp + 8]
sub ecx, eax
mov dword [esi + 4], ecx
mov esi, dword [esp + 0x20]
test edi, edi
je 0x41e391
sub edi, eax
jmp 0x41e39d
cmp dword [esp + 0x28], 0
je 0x41e39d
sub dword [esi], eax
sub dword [esi + 4], eax
sub dword [esi + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x1c]
add ecx, edx
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 0x28]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
lea ecx, [eax + ecx*2]
mov dword [esp + 0x18], ecx
movzx ecx, word [ecx]
test ecx, ecx
je 0x41e9dc
test edi, edi
je 0x41e40d
lea eax, [ecx - 9]
cmp eax, 0x35
ja 0x41e710
movsx eax, byte [ecx + 0x5ca737]
test eax, eax
je 0x41e710
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
sar eax, 1
sub eax, edi
mov dword [esi], edi
mov dword [esp + 0x28], eax
dec eax
add eax, edi
xor edi, edi
mov dword [esi + 4], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
jmp 0x41e411
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x10], 0
je 0x41e6cb
cmp ecx, 0x3e
jne 0x41e513
test bl, 0xc0
jne 0x41e52a
mov ecx, dword [esp + 0x18]
mov eax, ecx
sub eax, dword [esi + 0xc]
sar eax, 1
inc eax
cmp dword [esp + 0x14], 1
mov dword [esi + 8], eax
jne 0x41e48d
mov dword [esp + 0x10], 0
cmp edx, 1
jne 0x41e485
cmp dword [esp + 0x1c], 0x2f
jne 0x41e485
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x41e47b
test ebx, 0x200
je 0x41e47b
lea eax, [ecx - 9]
cmp eax, 0x1e
ja 0x41e485
movsx eax, byte [ecx + 0x5ca777]
test eax, eax
je 0x41e485
mov eax, dword [ebp + 8]
or dword [eax + 0xc], 0x10000
and ebx, 0xfffffdff
jmp 0x41e4e9
mov edx, dword [esp + 0x14]
dec eax
cmp eax, edx
jle 0x41e4d4
mov esi, dword [esp + 0x14]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [esp + 0x10]
lea edx, [ecx + 2]
sub eax, edx
mov dword [esp + 0x2c], eax
lea esp, [esp]
dec esi
je 0x41e4c8
mov ax, word [eax + edx]
mov cx, word [edx]
add edx, 2
cmp cx, ax
mov eax, dword [esp + 0x2c]
je 0x41e4b0
jmp 0x41e4d0
mov dword [esp + 0x10], 0
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0xc]
and ebx, 0xfffffdff
cmp dword [esp + 0x10], 0
jne 0x41e710
test bl, 0x20
jne 0x41e710
mov esi, dword [esp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 8]
sub ecx, dword [eax + 4]
mov dword [eax + 8], ecx
mov dword [eax], esi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ecx, 0x3c
jne 0x41e52a
cmp edx, 2
je 0x41ea89
cmp edx, 0xffffffff
je 0x41ea89
test dl, 1
je 0x41e692
test ebx, 0x2c0
je 0x41e5d0
cmp ecx, 0x22
jne 0x41e566
test bl, bl
jns 0x41e58b
mov eax, dword [esp + 0x1c]
xor ebx, 0x80
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
add eax, 2
jmp 0x41e328
cmp ecx, 0x27
jne 0x41e58b
test bl, 0x40
je 0x41e58b
mov eax, dword [esp + 0x1c]
xor ebx, 0x40
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
add eax, 2
jmp 0x41e328
test ebx, 0x200
je 0x41e67a
lea eax, [ecx - 9]
cmp eax, 0x17
ja 0x41e67a
movsx eax, byte [ecx + 0x5ca3b7]
test eax, eax
je 0x41e67a
mov eax, dword [esp + 0x1c]
xor ebx, 0x200
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
add eax, 2
jmp 0x41e328
cmp ecx, 0x22
jne 0x41e5ff
test ebx, 0x100
je 0x41e67a
mov eax, dword [esp + 0x1c]
xor ebx, 0x180
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
add eax, 2
jmp 0x41e328
cmp ecx, 0x27
jne 0x41e62a
test ebx, 0x100
je 0x41e67a
mov eax, dword [esp + 0x1c]
xor ebx, 0x140
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
add eax, 2
jmp 0x41e328
cmp ecx, 0x3d
jne 0x41e659
cmp eax, ecx
je 0x41e659
test ebx, 0x100
jne 0x41e661
mov eax, dword [esp + 0x1c]
xor ebx, 0x100
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
add eax, 2
jmp 0x41e328
test ebx, 0x100
je 0x41e67a
lea eax, [ecx - 9]
cmp eax, 0x17
ja 0x41e674
movsx eax, byte [ecx + 0x5ca3b7]
test eax, eax
jne 0x41e67a
xor ebx, 0x300
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
add eax, 2
jmp 0x41e328
test dl, 0x40
je 0x41e710
cmp ecx, 0x22
jne 0x41e6b3
test bl, 0x40
jne 0x41e710
mov eax, dword [esp + 0x18]
xor ebx, 0x80
add eax, 2
jmp 0x41e328
cmp ecx, 0x27
jne 0x41e710
test bl, bl
js 0x41e710
mov eax, dword [esp + 0x18]
xor ebx, 0x40
add eax, 2
jmp 0x41e328
test ebx, ebx
je 0x41e991
test bl, 0x10
je 0x41e71c
cmp ecx, 0x3c
je 0x41ea9a
lea eax, [ecx - 9]
cmp eax, 0x17
ja 0x41e6f4
movsx eax, byte [ecx + 0x5ca3b7]
test eax, eax
jne 0x41e710
xor ebx, 0x10
mov edx, 2
mov dword [esp + 0x10], 0x5ca7a0
mov dword [esp + 0x14], 1
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x18]
add eax, 2
jmp 0x41e328
test bl, 1
je 0x41e7e5
xor ebx, 1
cmp ecx, 0x60
ja 0x41e7ca
cmp ecx, 0x40
jbe 0x41e73f
cmp ecx, 0x5b
jb 0x41e7ca
cmp ecx, 0x5f
je 0x41e7ca
cmp ecx, 0x3a
je 0x41e7ca
cmp ecx, 0x2f
jne 0x41e768
mov edi, dword [esp + 0x18]
xor edx, edx
sub edi, dword [esi + 0xc]
sar edi, 1
mov dword [esp + 0x10], 0x5ca7a4
inc edi
jmp 0x41e704
cmp ecx, 0x21
jne 0x41e77c
mov eax, dword [esp + 0x18]
or ebx, 2
add eax, 2
jmp 0x41e328
cmp ecx, 0x3f
jne 0x41e7ae
mov edi, dword [esp + 0x18]
lea edx, [ecx - 0x2f]
sub edi, dword [esi + 0xc]
mov eax, dword [esp + 0x18]
sar edi, 1
inc edi
mov dword [esp + 0x10], 0x5ca7a8
mov dword [esp + 0x14], 2
add eax, 2
mov dword [esp + 0xc], edx
jmp 0x41e328
push 0xffffffffffffffff
push dword [esi + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.first_tag_syntax
jmp 0x41e923
mov edi, dword [esp + 0x18]
mov edx, 1
sub edi, dword [esi + 0xc]
mov dword [esp + 0x10], 0x5ca7a4
sar edi, 1
jmp 0x41e704
test bl, 2
je 0x41e88f
xor ebx, 2
cmp ecx, 0x2d
jne 0x41e805
mov eax, dword [esp + 0x18]
or ebx, 4
add eax, 2
jmp 0x41e328
test bl, 0x20
je 0x41e84b
lea eax, [ecx - 0x41]
cmp eax, 0xd
ja 0x41e82f
movsx eax, byte [ecx + 0x5ca793]
test eax, eax
je 0x41e82f
mov dword [esp + 0x10], 0x5ca7a4
mov edx, 0x40
jmp 0x41e704
push 0xffffffffffffffff
push dword [esi + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.doctype_tag_syntax
jmp 0x41e923
cmp ecx, 0x5b
jne 0x41e85f
mov eax, dword [esp + 0x18]
or ebx, 8
add eax, 2
jmp 0x41e328
cmp ecx, 0x44
jne 0x41e873
mov eax, dword [esp + 0x18]
or ebx, 0x20
add eax, 2
jmp 0x41e328
push 0xffffffffffffffff
push dword [esi + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.exclamation_tag_syntax
jmp 0x41e923
test bl, 4
je 0x41e8da
xor ebx, 4
cmp ecx, 0x2d
jne 0x41e8c1
mov eax, dword [esp + 0x18]
mov edx, 0x20
mov dword [esp + 0x10], 0x5ca83c
add eax, 2
mov dword [esp + 0x14], 3
mov dword [esp + 0xc], edx
jmp 0x41e328
push 0xffffffffffffffff
push dword [esi + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.comment_tag_syntax
jmp 0x41e923
test bl, 8
je 0x41e956
xor ebx, 8
cmp ecx, 0x43
jne 0x41e90c
mov eax, dword [esp + 0x18]
mov edx, 8
mov dword [esp + 0x10], 0x5ca86c
add eax, 2
mov dword [esp + 0x14], 3
mov dword [esp + 0xc], edx
jmp 0x41e328
push 0xffffffffffffffff
push dword [esi + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.cdata_section_syntax
mov ecx, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x20], 0x5ca7a4
mov dword [esp + 0x24], 1
lea ecx, [ecx + 0x10]
call fcn.0041b380
mov eax, dword [esp + 0x28]
or edx, 0xffffffff
add esp, 0x10
mov dword [esp + 0xc], edx
add eax, 2
jmp 0x41e328
test bl, 0x20
je 0x41e710
cmp ecx, 0x3c
jne 0x41e973
mov eax, dword [esp + 0x18]
or ebx, 1
add eax, 2
jmp 0x41e328
cmp ecx, 0x3e
jne 0x41e710
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
sar eax, 1
inc eax
mov dword [esi + 8], eax
lea esi, [ecx + 2]
jmp 0x41e4f6
cmp ecx, 0x3c
jne 0x41e9a5
mov eax, dword [esp + 0x18]
lea ebx, [ecx - 0x3b]
add eax, 2
jmp 0x41e328
lea eax, [ecx - 9]
mov edx, 4
mov dword [esp + 0xc], edx
cmp eax, 0x17
ja 0x41e6f7
movsx eax, byte [ecx + 0x5ca3b7]
test eax, eax
je 0x41e6f7
mov eax, dword [esp + 0x18]
lea ebx, [edx + 0xc]
add eax, 2
jmp 0x41e328
mov edx, dword [esp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
cmp dword [esi + 8], eax
jne 0x41ea02
mov dword [edi + 8], 0
mov eax, 0xfffffffe
mov dword [edi], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp edx, 4
je 0x41e4f2
cmp edx, 2
je 0x41e4f2
mov ecx, 0x5ca668
test bl, 0x20
jne 0x41ea5e
cmp edx, 0x40
je 0x41ea5e
cmp edx, 1
jne 0x41ea2f
mov ecx, str.start_tag
jmp 0x41ea63
test edx, edx
jne 0x41ea3a
mov ecx, str.end_tag
jmp 0x41ea63
cmp edx, 8
jne 0x41ea46
mov ecx, str.cdata_section
jmp 0x41ea63
cmp edx, 0x10
jne 0x41ea52
mov ecx, str.processing_instruction
jmp 0x41ea63
cmp edx, 0x20
jne 0x41ea63
mov ecx, str.comment
jmp 0x41ea63
mov ecx, str.document_type
or esi, 0xffffffff
push esi
push eax
push ecx
mov eax, esp
lea edx, [esi + 3]
push ecx
mov dword [eax], ecx
mov eax, esp
lea ecx, [edi + 0x10]
mov dword [eax], str.unterminated_tag_syntax
call fcn.0041b380
add esp, 0x10
jmp 0x41e4f6
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
sar eax, 1
mov dword [esi + 8], eax
jmp 0x41e4f2
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
sar eax, 1
mov dword [esi + 8], eax
mov esi, 4
jmp 0x41e4f6