Function at 0x410370
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
xor edx, edx
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 8]
push esi
mov esi, dword [ebx + 8]
mov dword [ecx + 4], esi
mov dword [ecx + 0xc], edx
mov ecx, dword [ebx + 0xc]
xor eax, eax
add ecx, dword [ebx + 8]
push edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], ecx
lea esp, [esp]
movsx edi, byte [ecx]
cmp edi, edx
jne 0x41045e
sub ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 0x1c]
mov dword [ebx + 8], ecx
cmp esi, edx
je 0x410a93
mov eax, dword [esi + 0xa4]
mov dword [esp + 0x34], eax
call fcn.0040fd40
test al, al
je 0x410441
mov esi, dword [ebp + 8]
mov ecx, dword [ebx + 0x1c]
mov eax, dword [esi + 4]
mov edx, dword [ebx + 8]
mov ecx, dword [ecx + 0xa4]
sub edx, eax
test ecx, ecx
je 0x410428
sub eax, ecx
cmp dword [esp + 0x24], 0
mov dword [esi + 4], eax
je 0x410419
sub dword [esp + 0x24], ecx
jmp 0x410425
cmp dword [esp + 0x30], 0
je 0x410425
sub dword [ebx], ecx
sub dword [ebx + 4], ecx
sub dword [ebx + 8], ecx
mov eax, dword [esi + 4]
add eax, edx
mov edx, dword [ebx + 0x1c]
mov ecx, dword [edx + 0x28]
mov ecx, dword [ecx]
add eax, ecx
mov dword [ebx + 0xc], ecx
movsx edi, byte [eax]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x410452
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0x10]
test edi, edi
je 0x410a93
mov edx, dword [esp + 0x24]
test edx, edx
je 0x4104a7
lea ecx, [edi - 9]
cmp ecx, 0x35
ja 0x410742
movsx ecx, byte [edi + 0x45579b]
test ecx, ecx
je 0x410742
mov ecx, dword [esp + 0x20]
sub ecx, dword [ebx + 0xc]
mov dword [ebx], edx
sub ecx, edx
xor esi, esi
lea edx, [ecx + edx - 1]
mov dword [esp + 0x30], ecx
mov dword [ebx + 4], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], esi
jmp 0x4104ab
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0x20]
je 0x4106fb
cmp edi, 0x3e
jne 0x41056c
test al, 0xc0
jne 0x410587
sub edx, dword [ebx + 0xc]
mov ecx, dword [esp + 0x1c]
inc edx
mov dword [ebx + 8], edx
cmp ecx, 1
jne 0x41051a
mov dword [esp + 0x18], 0
cmp dword [esp + 0x14], ecx
jne 0x41054b
cmp dword [esp + 0x28], 0x2f
jne 0x41054b
test esi, esi
je 0x41050e
test eax, 0x200
je 0x41050e
lea ecx, [esi - 9]
cmp ecx, 0x1e
ja 0x41054b
movsx ecx, byte [esi + 0x4557d3]
test ecx, ecx
je 0x41054b
mov ecx, dword [ebp + 8]
or dword [ecx + 0xc], 0x10000
jmp 0x41054b
dec edx
cmp edx, ecx
jle 0x41054b
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
sub edi, ecx
inc edi
mov dword [esp + 0x10], ecx
sub esi, edi
sub dword [esp + 0x10], 1
je 0x410543
mov dl, byte [edi]
mov cl, byte [esi + edi]
inc edi
cmp dl, cl
je 0x410530
jmp 0x41054b
mov dword [esp + 0x18], 0
and eax, 0xfffffdff
cmp dword [esp + 0x18], 0
mov dword [esp + 0x10], eax
jne 0x410742
test al, 0x20
je 0x410a34
jmp 0x410742
cmp edi, 0x3c
jne 0x410587
cmp dword [esp + 0x14], 2
je 0x410b4d
cmp dword [esp + 0x14], 0xffffffff
je 0x410b4d
mov cl, byte [esp + 0x14]
test cl, 1
je 0x4106d0
test eax, 0x2c0
je 0x410623
cmp edi, 0x22
jne 0x4105c2
test al, al
jns 0x4105e3
mov edx, dword [esp + 0x28]
xor eax, 0x80
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edi
jmp 0x410742
cmp edi, 0x27
jne 0x4105e3
test al, 0x40
je 0x4105e3
mov edx, dword [esp + 0x28]
xor eax, 0x40
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edi
jmp 0x410742
test eax, 0x200
je 0x4106c2
lea edx, [edi - 9]
cmp edx, 0x17
ja 0x4106c2
movsx ecx, byte [edi + 0x455573]
test ecx, ecx
je 0x4106c2
mov edx, dword [esp + 0x28]
xor eax, 0x200
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edi
jmp 0x410742
cmp edi, 0x22
jne 0x41064d
test eax, 0x100
je 0x4106c2
mov edx, dword [esp + 0x28]
xor eax, 0x180
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edi
jmp 0x410742
cmp edi, 0x27
jne 0x410673
test eax, 0x100
je 0x4106c2
mov edx, dword [esp + 0x28]
xor eax, 0x140
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edi
jmp 0x410742
cmp edi, 0x3d
jne 0x41069f
cmp dword [esp + 0x28], edi
je 0x41069f
test eax, 0x100
jne 0x4106a6
mov edx, dword [esp + 0x28]
xor eax, 0x100
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edi
jmp 0x410742
test eax, 0x100
je 0x4106c2
lea ecx, [edi - 9]
cmp ecx, 0x17
ja 0x4106b9
movsx ecx, byte [edi + 0x455573]
test ecx, ecx
jne 0x4106c2
xor eax, 0x300
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edi
jmp 0x410742
test cl, 0x40
je 0x410742
cmp edi, 0x22
jne 0x4106e9
test al, 0x40
jne 0x410742
xor eax, 0x80
mov dword [esp + 0x10], eax
jmp 0x410742
cmp edi, 0x27
jne 0x410742
test al, al
js 0x410742
xor eax, 0x40
mov dword [esp + 0x10], eax
jmp 0x410742
test eax, eax
je 0x410a51
test al, 0x10
je 0x410762
cmp edi, 0x3c
je 0x410b58
lea ecx, [edi - 9]
cmp ecx, 0x17
ja 0x410723
movsx ecx, byte [edi + 0x455573]
test ecx, ecx
jne 0x410742
xor eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 0x4557fc
mov dword [esp + 0x1c], 1
mov esi, dword [esp + 0x20]
push esi
call fcn.00434286
add esi, eax
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x20], esi
xor edx, edx
mov ecx, esi
jmp 0x4103c0
test al, 1
je 0x410846
mov ecx, 1
xor eax, ecx
mov dword [esp + 0x10], eax
cmp edi, 0x60
ja 0x410828
cmp edi, 0x40
jbe 0x41078c
cmp edi, 0x5b
jb 0x410828
cmp edi, 0x5f
je 0x410828
cmp edi, 0x3a
je 0x410828
cmp edi, 0x2f
jne 0x4107c7
mov eax, edx
sub eax, dword [ebx + 0xc]
mov dword [esp + 0x18], 0x455800
add eax, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], eax
jmp 0x410742
cmp edi, 0x21
jne 0x4107d8
or eax, 2
mov dword [esp + 0x10], eax
jmp 0x410742
cmp edi, 0x3f
jne 0x410805
mov eax, edx
sub eax, dword [ebx + 0xc]
mov dword [esp + 0x18], 0x455804
add eax, ecx
mov dword [esp + 0x1c], 2
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x24], eax
jmp 0x410742
mov edx, dword [ebx + 8]
push 0xffffffffffffffff
push edx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [esp + 0x30], ecx
mov dword [eax], str.first_tag_syntax
jmp 0x4109db
mov eax, edx
sub eax, dword [ebx + 0xc]
mov dword [esp + 0x18], 0x455800
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], eax
jmp 0x410742
test al, 2
je 0x410919
xor eax, 2
mov dword [esp + 0x10], eax
cmp edi, 0x2d
jne 0x410866
or eax, 4
mov dword [esp + 0x10], eax
jmp 0x410742
test al, 0x20
je 0x4108b1
lea ecx, [edi - 0x41]
cmp ecx, 0xd
ja 0x410892
movsx eax, byte [edi + 0x4557db]
test eax, eax
je 0x410892
mov dword [esp + 0x18], 0x455800
mov dword [esp + 0x14], 0x40
jmp 0x41073a
mov edx, dword [ebx + 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.doctype_tag_syntax
jmp 0x4109d3
cmp edi, 0x5b
jne 0x4108c2
or eax, 8
mov dword [esp + 0x10], eax
jmp 0x410742
cmp edi, 0x44
jne 0x4108d3
or eax, 0x20
mov dword [esp + 0x10], eax
jmp 0x410742
mov ecx, dword [ebx + 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
push edx
mov dword [esp + 0x30], 0x455800
mov dword [esp + 0x34], 1
mov dword [eax], str.exclamation_tag_syntax
call fcn.0040d4e0
add esp, 0x18
mov dword [esp + 0x14], 0xffffffff
jmp 0x410742
test al, 4
je 0x41098c
xor eax, 4
mov dword [esp + 0x10], eax
cmp edi, 0x2d
jne 0x410946
mov dword [esp + 0x18], 0x455858
mov dword [esp + 0x1c], 3
mov dword [esp + 0x14], 0x20
jmp 0x410742
mov eax, dword [ebx + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
push ecx
mov ecx, dword [ebp + 8]
mov dword [eax], 0
mov eax, esp
add ecx, 0x10
push ecx
mov dword [esp + 0x30], 0x455800
mov dword [esp + 0x34], 1
mov dword [eax], str.comment_tag_syntax
call fcn.0040d4e0
add esp, 0x18
mov dword [esp + 0x14], 0xffffffff
jmp 0x410742
test al, 8
je 0x4109ff
xor eax, 8
mov dword [esp + 0x10], eax
cmp edi, 0x43
jne 0x4109b9
mov dword [esp + 0x18], 0x455870
mov dword [esp + 0x1c], 3
mov dword [esp + 0x14], 8
jmp 0x410742
mov edx, dword [ebx + 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.cdata_section_syntax
mov dword [esp + 0x30], 1
mov eax, dword [ebp + 8]
add eax, 0x10
push eax
mov dword [esp + 0x30], 0x455800
call fcn.0040d4e0
add esp, 0x18
mov dword [esp + 0x14], 0xffffffff
jmp 0x410742
test al, 0x20
je 0x410742
cmp edi, 0x3c
jne 0x410a18
or eax, 1
mov dword [esp + 0x10], eax
jmp 0x410742
cmp edi, 0x3e
jne 0x410742
mov eax, dword [esp + 0x20]
sub eax, dword [ebx + 0xc]
mov dword [esp + 0x14], 0x40
inc eax
mov dword [ebx + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 8]
sub edx, dword [eax + 4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 8], edx
mov dword [eax], ecx
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp edi, 0x3c
jne 0x410a63
mov dword [esp + 0x10], 1
jmp 0x410742
lea ecx, [edi - 9]
mov dword [esp + 0x14], 4
cmp ecx, 0x17
ja 0x41072a
movsx eax, byte [edi + 0x455573]
test eax, eax
je 0x41072a
mov dword [esp + 0x10], 0x10
jmp 0x410742
mov edx, dword [ebp + 8]
mov esi, dword [edx + 4]
cmp dword [ebx + 8], esi
jne 0x410ab9
pop edi
pop esi
mov dword [edx + 8], 0
mov dword [edx], 0
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [esp + 0x14], 4
je 0x410a34
cmp dword [esp + 0x14], 2
je 0x410a34
mov ecx, 0x455734
test al, 0x20
jne 0x410b1c
mov eax, dword [esp + 0x14]
cmp eax, 0x40
je 0x410b1c
cmp eax, 1
jne 0x410aed
mov ecx, str.start_tag
jmp 0x410b21
test eax, eax
jne 0x410af8
mov ecx, str.end_tag
jmp 0x410b21
cmp eax, 8
jne 0x410b04
mov ecx, str.cdata_section
jmp 0x410b21
cmp eax, 0x10
jne 0x410b10
mov ecx, str.processing_instruction
jmp 0x410b21
cmp eax, 0x20
jne 0x410b21
mov ecx, str.comment
jmp 0x410b21
mov ecx, str.document_type
push 0xffffffffffffffff
push esi
push 2
push ecx
mov eax, esp
push ecx
mov dword [eax], ecx
mov eax, esp
add edx, 0x10
push edx
mov dword [esp + 0x2c], 0xffffffff
mov dword [eax], str.unterminated_tag_syntax
call fcn.0040d4e0
add esp, 0x18
jmp 0x410a34
sub edx, dword [ebx + 0xc]
mov dword [ebx + 8], edx
jmp 0x410a34
sub edx, dword [ebx + 0xc]
mov dword [esp + 0x14], 4
mov dword [ebx + 8], edx
jmp 0x410a34