Function at 0x40f8dc
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34c
mov eax, dword [0x4d04c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [edi + 8]
or dword [ebp - 0x32c], 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 - 0x33c], eax
movzx eax, word [ebx]
push esi
xor esi, esi
mov dword [ebp - 0x340], ecx
mov dword [ebp - 0x328], edx
mov dword [ebp - 0x334], edx
mov dword [ebp - 0x338], edx
mov dword [ebp - 0x344], edx
mov dword [ebp - 0x348], edx
cmp ax, dx
jne 0x40f94d
push 0xfffffffffffffffe
mov dword [ecx + 8], edx
mov dword [ecx], edx
pop eax
jmp 0x41001d
mov dword [ebp - 0x330], eax
cmp eax, edx
je 0x40fc96
jmp 0x40f95f
xor edx, edx
cmp esi, edx
je 0x40f9c1
push dword [ebp - 0x330]
push str.__t_n_r__
call fcn.0047b119
pop ecx
pop ecx
test eax, eax
je 0x40fc82
mov ecx, dword [edi + 0xc]
mov eax, ebx
sub eax, ecx
sar eax, 1
sub eax, esi
cmp dword [ebp - 0x32c], 0
jne 0x40f99c
lea eax, [eax + esi - 1]
mov dword [edi], esi
mov dword [edi + 4], eax
jmp 0x40f9af
push eax
lea eax, [ecx + esi*2]
mov ecx, dword [ebp - 0x340]
push eax
add ecx, 0x10
call fcn.0040291c
xor edx, edx
xor esi, esi
mov dword [ebp - 0x348], edx
mov dword [ebp - 0x344], edx
jmp 0x40f9c3
xor edx, edx
cmp dword [ebp - 0x334], edx
je 0x40fc21
mov eax, dword [ebp - 0x330]
cmp eax, 0x3e
jne 0x40faba
test byte [ebp - 0x328], 0xc0
jne 0x40fad9
mov ecx, dword [ebp - 0x338]
mov eax, ebx
sub eax, dword [edi + 0xc]
sar eax, 1
mov dword [ebp - 0x33c], eax
cmp ecx, 1
jne 0x40fa4f
mov dword [ebp - 0x334], edx
cmp dword [ebp - 0x32c], ecx
jne 0x40faa8
cmp dword [ebp - 0x344], 0x2f
jne 0x40faa8
cmp dword [ebp - 0x348], edx
je 0x40fa40
push dword [ebp - 0x348]
push 0x4bd0e4
call fcn.0047b119
pop ecx
pop ecx
test eax, eax
je 0x40faa8
mov eax, dword [ebp - 0x340]
or dword [eax + 0xc], 0x10000
jmp 0x40faa8
cmp eax, ecx
jle 0x40fa9c
lea eax, [ecx + ecx]
mov edx, ebx
sub edx, eax
mov dword [ebp - 0x330], ecx
mov ecx, dword [ebp - 0x334]
lea eax, [edx + 2]
sub ecx, eax
mov dword [ebp - 0x34c], ecx
jmp 0x40fa79
mov ecx, dword [ebp - 0x34c]
dec dword [ebp - 0x330]
je 0x40fa94
mov dx, word [eax]
mov cx, word [ecx + eax]
add eax, 2
cmp dx, cx
je 0x40fa73
xor edx, edx
jmp 0x40fa9c
xor edx, edx
mov dword [ebp - 0x334], edx
cmp dword [ebp - 0x334], edx
jne 0x40fc82
test byte [ebp - 0x328], 0x20
je 0x40ffff
jmp 0x40fc82
cmp eax, 0x3c
jne 0x40fad9
cmp dword [ebp - 0x32c], 2
je 0x4100e3
cmp dword [ebp - 0x32c], 0xffffffff
je 0x4100e3
test byte [ebp - 0x32c], 1
je 0x40fbd7
test byte [ebp - 0x328], 0xc0
je 0x40fb32
cmp eax, 0x22
jne 0x40fb10
test byte [ebp - 0x328], 0x80
je 0x40fbc0
xor dword [ebp - 0x328], 0x80
jmp 0x40fbc0
cmp eax, 0x27
jne 0x40fbc0
test byte [ebp - 0x328], 0x40
je 0x40fbc0
xor dword [ebp - 0x328], 0x40
jmp 0x40fbc0
cmp eax, 0x22
jne 0x40fb4f
test dword [ebp - 0x328], 0x100
je 0x40fbc0
xor dword [ebp - 0x328], 0x180
jmp 0x40fbc0
cmp eax, 0x27
jne 0x40fb6c
test dword [ebp - 0x328], 0x100
je 0x40fbc0
xor dword [ebp - 0x328], 0x140
jmp 0x40fbc0
cmp eax, 0x3d
jne 0x40fb8e
cmp dword [ebp - 0x344], eax
je 0x40fb8e
mov ecx, 0x100
test dword [ebp - 0x328], ecx
jne 0x40fb8e
xor dword [ebp - 0x328], ecx
jmp 0x40fbc0
test dword [ebp - 0x328], 0x100
je 0x40fbc0
push dword [ebp - 0x330]
push str.__t_n_r
call fcn.0047b119
pop ecx
test eax, eax
mov eax, dword [ebp - 0x330]
pop ecx
jne 0x40fbc0
xor dword [ebp - 0x328], 0x100
mov ecx, dword [ebp - 0x344]
mov dword [ebp - 0x348], ecx
mov dword [ebp - 0x344], eax
jmp 0x40fc82
test byte [ebp - 0x32c], 0x40
je 0x40fc82
cmp dword [ebp - 0x330], 0x22
jne 0x40fc06
test byte [ebp - 0x328], 0x40
jne 0x40fc82
xor dword [ebp - 0x328], 0x80
jmp 0x40fc82
cmp dword [ebp - 0x330], 0x27
jne 0x40fc82
test byte [ebp - 0x328], 0x80
jne 0x40fc82
xor dword [ebp - 0x328], 0x40
jmp 0x40fc82
cmp dword [ebp - 0x328], edx
je 0x41002b
test byte [ebp - 0x328], 0x10
je 0x40fcf0
cmp dword [ebp - 0x330], 0x3c
je 0x4100ee
push dword [ebp - 0x330]
push str.__t_n_r
call fcn.0047b119
pop ecx
pop ecx
test eax, eax
jne 0x40fc82
xor dword [ebp - 0x328], 0x10
mov dword [ebp - 0x32c], 2
mov dword [ebp - 0x338], 1
mov dword [ebp - 0x334], 0x4bd0f4
add ebx, 2
movzx eax, word [ebx]
mov dword [ebp - 0x330], eax
test eax, eax
jne 0x40f95d
sub ebx, dword [edi + 0xc]
sar ebx, 1
dec ebx
cmp dword [ebp - 0x32c], 4
mov dword [ebp - 0x33c], ebx
je 0x40ffff
cmp dword [ebp - 0x32c], 2
je 0x40ffff
test byte [ebp - 0x328], 0x20
mov ecx, 0x4bcfec
jne 0x4100a5
mov eax, dword [ebp - 0x32c]
cmp eax, 0x40
je 0x4100a5
cmp eax, 1
jne 0x410076
mov ecx, str.Element_tag
jmp 0x4100aa
test byte [ebp - 0x328], 1
je 0x40fdf0
mov ecx, dword [ebp - 0x330]
xor eax, eax
inc eax
xor dword [ebp - 0x328], eax
cmp ecx, 0x60
ja 0x40fdce
cmp ecx, 0x40
jbe 0x40fd23
cmp ecx, 0x5b
jb 0x40fdce
cmp ecx, 0x5f
je 0x40fdce
cmp ecx, 0x3a
je 0x40fdce
cmp ecx, 0x2f
jne 0x40fd52
mov dword [ebp - 0x334], 0x4bd0f8
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x32c], edx
jmp 0x40fd86
cmp ecx, 0x21
jne 0x40fd63
or dword [ebp - 0x328], 2
jmp 0x40fc82
cmp ecx, 0x3f
jne 0x40fd93
mov dword [ebp - 0x334], 0x4bce14
mov dword [ebp - 0x338], 2
mov dword [ebp - 0x32c], 0x10
mov esi, ebx
sub esi, dword [edi + 0xc]
sar esi, 1
inc esi
jmp 0x40fc82
push dword [ebp - 0x33c]
lea eax, [ebp - 0x324]
push 0x4bd0fc
push str.Incorrect__s_at_offset__d
push eax
mov dword [ebp - 0x334], 0x4bd0f8
mov dword [ebp - 0x338], 1
call fcn.0047c865
lea eax, [ebp - 0x324]
jmp 0x40ff9d
mov esi, ebx
sub esi, dword [edi + 0xc]
mov dword [ebp - 0x334], 0x4bd0f8
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x32c], eax
sar esi, 1
jmp 0x40fc82
test byte [ebp - 0x328], 2
je 0x40feb5
xor dword [ebp - 0x328], 2
cmp dword [ebp - 0x330], 0x2d
jne 0x40fe19
or dword [ebp - 0x328], 4
jmp 0x40fc82
cmp dword [ebp - 0x330], 0x5b
jne 0x40fe37
test byte [ebp - 0x328], 0x20
jne 0x40fe55
or dword [ebp - 0x328], 8
jmp 0x40fc82
cmp dword [ebp - 0x330], 0x44
jne 0x40fe55
test byte [ebp - 0x328], 0x20
jne 0x40fe55
or dword [ebp - 0x328], 0x20
jmp 0x40fc82
push dword [ebp - 0x330]
push 0x4bd158
call fcn.0047b119
pop ecx
pop ecx
mov dword [ebp - 0x334], 0x4bd0f8
mov dword [ebp - 0x338], 1
test eax, eax
je 0x40fe8e
mov dword [ebp - 0x32c], 0x40
jmp 0x40fc82
push dword [ebp - 0x33c]
lea eax, [ebp - 0x25c]
push str.__tag
push str.Incorrect__s_at_offset__d
push eax
call fcn.0047c865
lea eax, [ebp - 0x25c]
jmp 0x40ff9d
test byte [ebp - 0x328], 4
je 0x40ff29
xor dword [ebp - 0x328], 4
cmp dword [ebp - 0x330], 0x2d
jne 0x40fef1
mov dword [ebp - 0x334], 0x4bd16c
mov dword [ebp - 0x338], 3
mov dword [ebp - 0x32c], 0x20
jmp 0x40fc82
push dword [ebp - 0x33c]
lea eax, [ebp - 0x194]
push str.comment_tag
push str.Incorrect__s_at_offset__d
push eax
mov dword [ebp - 0x334], 0x4bd0f8
mov dword [ebp - 0x338], 1
call fcn.0047c865
lea eax, [ebp - 0x194]
jmp 0x40ff9d
test byte [ebp - 0x328], 8
je 0x40ffbb
push 8
pop eax
xor dword [ebp - 0x328], eax
cmp dword [ebp - 0x330], 0x43
jne 0x40ff67
mov dword [ebp - 0x334], 0x4bd18c
mov dword [ebp - 0x338], 3
mov dword [ebp - 0x32c], eax
jmp 0x40fc82
push dword [ebp - 0x33c]
lea eax, [ebp - 0xcc]
push 0x4bcfec
push str.Incorrect__s_at_offset__d
push eax
mov dword [ebp - 0x334], 0x4bd0f8
mov dword [ebp - 0x338], 1
call fcn.0047c865
lea eax, [ebp - 0xcc]
mov ecx, dword [ebp - 0x340]
add esp, 0x10
push eax
add ecx, 0x10
call fcn.0040299a
or dword [ebp - 0x32c], 0xffffffff
jmp 0x40fc82
test byte [ebp - 0x328], 0x20
je 0x40fc82
cmp dword [ebp - 0x330], 0x3c
jne 0x40ffdd
or dword [ebp - 0x328], 1
jmp 0x40fc82
cmp dword [ebp - 0x330], 0x3e
jne 0x40fc82
sub ebx, dword [edi + 0xc]
mov dword [ebp - 0x32c], 0x40
sar ebx, 1
mov dword [ebp - 0x33c], ebx
mov eax, dword [ebp - 0x33c]
mov ecx, dword [ebp - 0x340]
inc eax
mov dword [edi + 8], eax
sub eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x32c]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0047a0fb
leave
ret
cmp dword [ebp - 0x330], 0x3c
jne 0x410043
mov dword [ebp - 0x328], 1
jmp 0x40fc82
push dword [ebp - 0x330]
mov dword [ebp - 0x32c], 4
push str.__t_n_r
call fcn.0047b119
pop ecx
pop ecx
test eax, eax
je 0x40fc64
mov dword [ebp - 0x328], 0x10
jmp 0x40fc82
test eax, eax
jne 0x410081
mov ecx, str.Element_end_tag
jmp 0x4100aa
cmp eax, 8
jne 0x41008d
mov ecx, str.CDATA_Section
jmp 0x4100aa
cmp eax, 0x10
jne 0x410099
mov ecx, str.Processing_instruction
jmp 0x4100aa
cmp eax, 0x20
jne 0x4100aa
mov ecx, str.Comment
jmp 0x4100aa
mov ecx, str.Doctype
mov esi, dword [ebp - 0x340]
push dword [esi + 4]
or dword [ebp - 0x32c], 0xffffffff
push ecx
lea eax, [ebp - 0xcc]
push str._s_at_offset__d_unterminated
push eax
call fcn.0047c865
add esp, 0x10
lea eax, [ebp - 0xcc]
push eax
lea ecx, [esi + 0x10]
call fcn.0040299a
jmp 0x40ffff
sub ebx, dword [edi + 0xc]
sar ebx, 1
dec ebx
jmp 0x40fff9
sub ebx, dword [edi + 0xc]
mov dword [ebp - 0x32c], 4
sar ebx, 1
dec ebx
jmp 0x40fff9