Function at 0x410107
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x34c
mov eax, dword [0x487ba4]
xor eax, ebp
mov dword [ebp + 0x74], eax
mov eax, dword [edi + 8]
or dword [ebp - 0x2b4], 0xffffffff
xor edx, edx
push ebx
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], edx
mov eax, dword [edi + 8]
mov ebx, dword [edi + 0xc]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x2c4], eax
movzx eax, word [ebx]
push esi
xor esi, esi
mov dword [ebp - 0x2c8], ecx
mov dword [ebp - 0x2b0], edx
mov dword [ebp - 0x2bc], edx
mov dword [ebp - 0x2c0], edx
mov dword [ebp - 0x2cc], edx
mov dword [ebp - 0x2d0], edx
cmp ax, dx
jne 0x41017a
push 0xfffffffffffffffe
mov dword [ecx + 8], edx
mov dword [ecx], edx
pop eax
jmp 0x410844
movzx eax, ax
mov dword [ebp - 0x2b8], eax
cmp eax, edx
je 0x4104c2
jmp 0x41018f
xor edx, edx
cmp esi, edx
je 0x4101ef
push dword [ebp - 0x2b8]
push str.__t_n_r__
call fcn.0044cf02
pop ecx
pop ecx
test eax, eax
je 0x4104af
mov ecx, dword [edi + 0xc]
mov eax, ebx
sub eax, ecx
sar eax, 1
sub eax, esi
cmp dword [ebp - 0x2b4], 0
jne 0x4101cc
lea eax, [eax + esi - 1]
mov dword [edi], esi
mov dword [edi + 4], eax
jmp 0x4101dd
lea ecx, [ecx + esi*2]
mov esi, dword [ebp - 0x2c8]
add esi, 0x10
call fcn.00404293
xor edx, edx
xor esi, esi
mov dword [ebp - 0x2d0], edx
mov dword [ebp - 0x2cc], edx
jmp 0x4101f1
xor edx, edx
cmp dword [ebp - 0x2bc], edx
je 0x41044e
mov eax, dword [ebp - 0x2b8]
cmp eax, 0x3e
jne 0x4102e7
test byte [ebp - 0x2b0], 0xc0
jne 0x410306
mov ecx, dword [ebp - 0x2c0]
mov eax, ebx
sub eax, dword [edi + 0xc]
sar eax, 1
mov dword [ebp - 0x2c4], eax
cmp ecx, 1
jne 0x41027d
mov dword [ebp - 0x2bc], edx
cmp dword [ebp - 0x2b4], ecx
jne 0x4102d5
cmp dword [ebp - 0x2cc], 0x2f
jne 0x4102d5
cmp dword [ebp - 0x2d0], edx
je 0x41026e
push dword [ebp - 0x2d0]
push 0x47a8bc
call fcn.0044cf02
pop ecx
pop ecx
test eax, eax
je 0x4102d5
mov eax, dword [ebp - 0x2c8]
or dword [eax + 0xc], 0x10000
jmp 0x4102d5
cmp eax, ecx
jle 0x4102c9
lea eax, [ecx + ecx]
mov edx, ebx
sub edx, eax
mov dword [ebp - 0x2b8], ecx
mov ecx, dword [ebp - 0x2bc]
lea eax, [edx + 2]
sub ecx, eax
mov dword [ebp - 0x2d4], ecx
jmp 0x4102a7
mov ecx, dword [ebp - 0x2d4]
dec dword [ebp - 0x2b8]
je 0x4102c1
mov dx, word [eax]
mov cx, word [ecx + eax]
inc eax
inc eax
cmp dx, cx
je 0x4102a1
xor edx, edx
jmp 0x4102c9
xor edx, edx
mov dword [ebp - 0x2bc], edx
cmp dword [ebp - 0x2bc], edx
jne 0x4104af
test byte [ebp - 0x2b0], 0x20
je 0x410826
jmp 0x4104af
cmp eax, 0x3c
jne 0x410306
cmp dword [ebp - 0x2b4], 2
je 0x410908
cmp dword [ebp - 0x2b4], 0xffffffff
je 0x410908
test byte [ebp - 0x2b4], 1
je 0x410404
test byte [ebp - 0x2b0], 0xc0
je 0x41035f
cmp eax, 0x22
jne 0x41033d
test byte [ebp - 0x2b0], 0x80
je 0x4103ed
xor dword [ebp - 0x2b0], 0x80
jmp 0x4103ed
cmp eax, 0x27
jne 0x4103ed
test byte [ebp - 0x2b0], 0x40
je 0x4103ed
xor dword [ebp - 0x2b0], 0x40
jmp 0x4103ed
cmp eax, 0x22
jne 0x41037c
test dword [ebp - 0x2b0], 0x100
je 0x4103ed
xor dword [ebp - 0x2b0], 0x180
jmp 0x4103ed
cmp eax, 0x27
jne 0x410399
test dword [ebp - 0x2b0], 0x100
je 0x4103ed
xor dword [ebp - 0x2b0], 0x140
jmp 0x4103ed
cmp eax, 0x3d
jne 0x4103bb
cmp dword [ebp - 0x2cc], eax
je 0x4103bb
mov ecx, 0x100
test dword [ebp - 0x2b0], ecx
jne 0x4103bb
xor dword [ebp - 0x2b0], ecx
jmp 0x4103ed
test dword [ebp - 0x2b0], 0x100
je 0x4103ed
push dword [ebp - 0x2b8]
push str.__t_n_r
call fcn.0044cf02
pop ecx
test eax, eax
mov eax, dword [ebp - 0x2b8]
pop ecx
jne 0x4103ed
xor dword [ebp - 0x2b0], 0x100
mov ecx, dword [ebp - 0x2cc]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2cc], eax
jmp 0x4104af
test byte [ebp - 0x2b4], 0x40
je 0x4104af
cmp dword [ebp - 0x2b8], 0x22
jne 0x410433
test byte [ebp - 0x2b0], 0x40
jne 0x4104af
xor dword [ebp - 0x2b0], 0x80
jmp 0x4104af
cmp dword [ebp - 0x2b8], 0x27
jne 0x4104af
test byte [ebp - 0x2b0], 0x80
jne 0x4104af
xor dword [ebp - 0x2b0], 0x40
jmp 0x4104af
cmp dword [ebp - 0x2b0], edx
je 0x410855
test byte [ebp - 0x2b0], 0x10
je 0x41051c
cmp dword [ebp - 0x2b8], 0x3c
je 0x410913
push dword [ebp - 0x2b8]
push str.__t_n_r
call fcn.0044cf02
pop ecx
pop ecx
test eax, eax
jne 0x4104af
xor dword [ebp - 0x2b0], 0x10
mov dword [ebp - 0x2b4], 2
mov dword [ebp - 0x2c0], 1
mov dword [ebp - 0x2bc], 0x47a8cc
inc ebx
inc ebx
movzx eax, word [ebx]
mov dword [ebp - 0x2b8], eax
test eax, eax
jne 0x41018d
sub ebx, dword [edi + 0xc]
sar ebx, 1
dec ebx
cmp dword [ebp - 0x2b4], 4
mov dword [ebp - 0x2c4], ebx
je 0x410826
cmp dword [ebp - 0x2b4], 2
je 0x410826
test byte [ebp - 0x2b0], 0x20
mov ecx, 0x47a7c4
jne 0x4108cf
mov eax, dword [ebp - 0x2b4]
cmp eax, 0x40
je 0x4108cf
cmp eax, 1
jne 0x4108a0
mov ecx, str.Element_tag
jmp 0x4108d4
test byte [ebp - 0x2b0], 1
je 0x41061c
mov ecx, dword [ebp - 0x2b8]
xor eax, eax
inc eax
xor dword [ebp - 0x2b0], eax
cmp ecx, 0x60
ja 0x4105fa
cmp ecx, 0x40
jbe 0x41054f
cmp ecx, 0x5b
jb 0x4105fa
cmp ecx, 0x5f
je 0x4105fa
cmp ecx, 0x3a
je 0x4105fa
cmp ecx, 0x2f
jne 0x41057e
mov dword [ebp - 0x2bc], 0x47a8d0
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x2b4], edx
jmp 0x4105b2
cmp ecx, 0x21
jne 0x41058f
or dword [ebp - 0x2b0], 2
jmp 0x4104af
cmp ecx, 0x3f
jne 0x4105bf
mov dword [ebp - 0x2bc], 0x47a5e8
mov dword [ebp - 0x2c0], 2
mov dword [ebp - 0x2b4], 0x10
mov esi, ebx
sub esi, dword [edi + 0xc]
sar esi, 1
inc esi
jmp 0x4104af
push dword [ebp - 0x2c4]
lea eax, [ebp - 0x2ac]
push 0x47a8d4
push str.Incorrect__s_at_offset__d
push eax
mov dword [ebp - 0x2bc], 0x47a8d0
mov dword [ebp - 0x2c0], 1
call fcn.0044e685
lea eax, [ebp - 0x2ac]
jmp 0x4107c3
mov esi, ebx
sub esi, dword [edi + 0xc]
mov dword [ebp - 0x2bc], 0x47a8d0
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x2b4], eax
sar esi, 1
jmp 0x4104af
test byte [ebp - 0x2b0], 2
je 0x4106e1
xor dword [ebp - 0x2b0], 2
cmp dword [ebp - 0x2b8], 0x2d
jne 0x410645
or dword [ebp - 0x2b0], 4
jmp 0x4104af
cmp dword [ebp - 0x2b8], 0x5b
jne 0x410663
test byte [ebp - 0x2b0], 0x20
jne 0x410681
or dword [ebp - 0x2b0], 8
jmp 0x4104af
cmp dword [ebp - 0x2b8], 0x44
jne 0x410681
test byte [ebp - 0x2b0], 0x20
jne 0x410681
or dword [ebp - 0x2b0], 0x20
jmp 0x4104af
push dword [ebp - 0x2b8]
push 0x47a930
call fcn.0044cf02
pop ecx
pop ecx
mov dword [ebp - 0x2bc], 0x47a8d0
mov dword [ebp - 0x2c0], 1
test eax, eax
je 0x4106ba
mov dword [ebp - 0x2b4], 0x40
jmp 0x4104af
push dword [ebp - 0x2c4]
lea eax, [ebp - 0x1e4]
push str.__tag
push str.Incorrect__s_at_offset__d
push eax
call fcn.0044e685
lea eax, [ebp - 0x1e4]
jmp 0x4107c3
test byte [ebp - 0x2b0], 4
je 0x410755
xor dword [ebp - 0x2b0], 4
cmp dword [ebp - 0x2b8], 0x2d
jne 0x41071d
mov dword [ebp - 0x2bc], 0x47a944
mov dword [ebp - 0x2c0], 3
mov dword [ebp - 0x2b4], 0x20
jmp 0x4104af
push dword [ebp - 0x2c4]
lea eax, [ebp - 0x11c]
push str.comment_tag
push str.Incorrect__s_at_offset__d
push eax
mov dword [ebp - 0x2bc], 0x47a8d0
mov dword [ebp - 0x2c0], 1
call fcn.0044e685
lea eax, [ebp - 0x11c]
jmp 0x4107c3
test byte [ebp - 0x2b0], 8
je 0x4107e2
push 8
pop eax
xor dword [ebp - 0x2b0], eax
cmp dword [ebp - 0x2b8], 0x43
jne 0x410793
mov dword [ebp - 0x2bc], 0x47a964
mov dword [ebp - 0x2c0], 3
mov dword [ebp - 0x2b4], eax
jmp 0x4104af
push dword [ebp - 0x2c4]
lea eax, [ebp - 0x54]
push 0x47a7c4
push str.Incorrect__s_at_offset__d
push eax
mov dword [ebp - 0x2bc], 0x47a8d0
mov dword [ebp - 0x2c0], 1
call fcn.0044e685
lea eax, [ebp - 0x54]
add esp, 0x10
push eax
mov eax, dword [ebp - 0x2c8]
add eax, 0x10
push eax
call fcn.00403f6b
or dword [ebp - 0x2b4], 0xffffffff
jmp 0x4104af
test byte [ebp - 0x2b0], 0x20
je 0x4104af
cmp dword [ebp - 0x2b8], 0x3c
jne 0x410804
or dword [ebp - 0x2b0], 1
jmp 0x4104af
cmp dword [ebp - 0x2b8], 0x3e
jne 0x4104af
sub ebx, dword [edi + 0xc]
mov dword [ebp - 0x2b4], 0x40
sar ebx, 1
mov dword [ebp - 0x2c4], ebx
mov eax, dword [ebp - 0x2c4]
mov ecx, dword [ebp - 0x2c8]
inc eax
mov dword [edi + 8], eax
sub eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x2b4]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x74]
pop esi
xor ecx, ebp
pop ebx
call fcn.0044c18b
add ebp, 0x78
leave
ret
cmp dword [ebp - 0x2b8], 0x3c
jne 0x41086d
mov dword [ebp - 0x2b0], 1
jmp 0x4104af
push dword [ebp - 0x2b8]
mov dword [ebp - 0x2b4], 4
push str.__t_n_r
call fcn.0044cf02
pop ecx
pop ecx
test eax, eax
je 0x410491
mov dword [ebp - 0x2b0], 0x10
jmp 0x4104af
test eax, eax
jne 0x4108ab
mov ecx, str.Element_end_tag
jmp 0x4108d4
cmp eax, 8
jne 0x4108b7
mov ecx, str.CDATA_Section
jmp 0x4108d4
cmp eax, 0x10
jne 0x4108c3
mov ecx, str.Processing_instruction
jmp 0x4108d4
cmp eax, 0x20
jne 0x4108d4
mov ecx, str.Comment
jmp 0x4108d4
mov ecx, str.Doctype
mov esi, dword [ebp - 0x2c8]
push dword [esi + 4]
or dword [ebp - 0x2b4], 0xffffffff
push ecx
lea eax, [ebp - 0x54]
push str._s_at_offset__d_unterminated
push eax
call fcn.0044e685
add esp, 0x10
lea eax, [ebp - 0x54]
push eax
add esi, 0x10
push esi
call fcn.00403f6b
jmp 0x410826
sub ebx, dword [edi + 0xc]
sar ebx, 1
dec ebx
jmp 0x410820
sub ebx, dword [edi + 0xc]
mov dword [ebp - 0x2b4], 4
sar ebx, 1
dec ebx
jmp 0x410820