Function at 0x41fa50
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 8]
push ebx
xor edx, edx
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 8]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], edx
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
or ebx, 0xffffffff
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], edx
lea eax, [ecx + eax*2]
mov dword [ebp - 0x10], eax
lea ecx, [ecx]
movzx esi, word [eax]
cmp esi, edx
jne 0x41fb1e
sub eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x1c]
sar eax, 1
mov dword [edi + 8], eax
cmp ecx, edx
je 0x42019b
mov edx, dword [ecx + 0xa4]
mov dword [ebp - 0x24], edx
call fcn.0041f8c0
test al, al
je 0x42019b
mov esi, dword [ebp + 8]
mov eax, dword [edi + 0x1c]
mov ecx, dword [esi + 4]
mov edx, dword [edi + 8]
mov eax, dword [eax + 0xa4]
sub edx, ecx
sub eax, dword [ebp - 0x24]
je 0x41fafb
sub ecx, eax
cmp dword [ebp - 0x14], 0
mov dword [esi + 4], ecx
je 0x41faed
sub dword [ebp - 0x14], eax
jmp 0x41faf8
cmp dword [ebp - 0x20], 0
je 0x41faf8
sub dword [edi], eax
sub dword [edi + 4], eax
sub dword [edi + 8], eax
mov ecx, esi
mov eax, dword [ecx + 4]
add eax, edx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0x28]
mov ecx, dword [ecx]
lea eax, [ecx + eax*2]
mov dword [edi + 0xc], ecx
movzx esi, word [eax]
mov dword [ebp - 0x10], eax
test esi, esi
je 0x42019b
cmp dword [ebp - 0x14], 0
je 0x41fb6c
push esi
push str.__t_n_r__
call dword [sym.imp.MSVCR100.dll_wcschr]
add esp, 8
test eax, eax
je 0x41fb5f
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov eax, ecx
sub eax, dword [edi + 0xc]
mov dword [edi], edx
sar eax, 1
sub eax, edx
mov dword [ebp - 0x20], eax
lea eax, [eax + edx - 1]
mov dword [edi + 4], eax
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
jmp 0x41fb6f
mov eax, dword [ebp - 0x10]
add eax, 2
xor edx, edx
jmp 0x41fa8a
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 8], 0
je 0x41fdd9
cmp esi, 0x3e
jne 0x41fc45
mov edx, dword [ebp - 4]
test dl, 0xc0
jne 0x41fc5f
sub ecx, dword [edi + 0xc]
sar ecx, 1
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0xc]
mov dword [edi + 8], eax
cmp ecx, 1
jne 0x41fbe1
mov dword [ebp - 8], 0
cmp ebx, ecx
jne 0x41fc2e
cmp dword [ebp - 0x18], 0x2f
jne 0x41fc2e
cmp dword [ebp - 0x1c], 0
je 0x41fbd5
mov ecx, dword [ebp - 0x1c]
push ecx
push str.__t_n_r_
call dword [sym.imp.MSVCR100.dll_wcschr]
mov edx, dword [ebp - 4]
add esp, 8
test eax, eax
je 0x41fc2e
mov eax, dword [ebp + 8]
or dword [eax + 0xc], 0x10000
jmp 0x41fc2e
dec eax
cmp eax, ecx
jle 0x41fe1b
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
lea eax, [ecx + ecx]
sub esi, eax
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 8]
lea eax, [esi + 2]
sub ecx, eax
jmp 0x41fc05
mov edx, dword [ebp - 4]
dec dword [ebp - 0x24]
je 0x41fc27
mov dx, word [eax]
mov si, word [ecx + eax]
add eax, 2
cmp dx, si
je 0x41fc02
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x41fa90
mov dword [ebp - 8], 0
test dl, 0x20
je 0x420137
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x41fa90
cmp esi, 0x3c
jne 0x41fc5c
cmp ebx, 2
je 0x42024c
cmp ebx, 0xffffffff
je 0x42024c
mov edx, dword [ebp - 4]
test bl, 1
je 0x41fd92
test dl, 0xc0
je 0x41fcc9
cmp esi, 0x22
jne 0x41fc9a
test dl, dl
jns 0x41fd7b
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x80
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x41fa90
cmp esi, 0x27
jne 0x41fd7b
test dl, 0x40
je 0x41fd7b
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x40
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x41fa90
cmp esi, 0x22
jne 0x41fcfa
test edx, 0x100
je 0x41fd7b
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x180
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x41fa90
cmp esi, 0x27
jne 0x41fd27
test edx, 0x100
je 0x41fd7b
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x140
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x41fa90
cmp esi, 0x3d
jne 0x41fd59
cmp dword [ebp - 0x18], esi
je 0x41fd59
test edx, 0x100
jne 0x41fd61
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
xor edx, 0x100
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x41fa90
test edx, 0x100
je 0x41fd7b
push esi
push str.__t_n_r
call dword [sym.imp.MSVCR100.dll_wcschr]
add esp, 8
test eax, eax
jne 0x41fd7b
xor dword [ebp - 4], 0x100
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x10], 2
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
xor edx, edx
jmp 0x41fa90
test bl, 0x40
je 0x41fe1b
cmp esi, 0x22
jne 0x41fdbc
test dl, 0x40
jne 0x41fe1b
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, 0x80
mov dword [ebp - 4], edx
xor edx, edx
jmp 0x41fa90
cmp esi, 0x27
jne 0x41fe1b
test dl, dl
js 0x41fe1b
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, 0x40
mov dword [ebp - 4], edx
xor edx, edx
jmp 0x41fa90
mov eax, dword [ebp - 4]
test eax, eax
je 0x420150
test al, 0x10
je 0x41fe29
cmp esi, 0x3c
je 0x420259
push esi
push str.__t_n_r
call dword [sym.imp.MSVCR100.dll_wcschr]
add esp, 8
test eax, eax
jne 0x41fe1b
xor dword [ebp - 4], 0x10
mov ebx, 2
mov dword [ebp - 0xc], 1
mov dword [ebp - 8], 0x436bdc
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x41fa90
test al, 1
je 0x41ff1c
mov edx, 1
xor eax, edx
mov dword [ebp - 4], eax
cmp esi, 0x60
ja 0x41fefa
cmp esi, 0x40
jbe 0x41fe52
cmp esi, 0x5b
jb 0x41fefa
cmp esi, 0x5f
je 0x41fefa
cmp esi, 0x3a
je 0x41fefa
cmp esi, 0x2f
jne 0x41fe8f
add dword [ebp - 0x10], 2
mov eax, ecx
sub eax, dword [edi + 0xc]
mov dword [ebp - 0xc], edx
sar eax, 1
add eax, edx
xor ebx, ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], 0x436bc8
xor edx, edx
jmp 0x41fa90
cmp esi, 0x21
jne 0x41fea8
add dword [ebp - 0x10], 2
or eax, 2
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x41fa90
cmp esi, 0x3f
jne 0x41fed8
add dword [ebp - 0x10], 2
mov eax, ecx
sub eax, dword [edi + 0xc]
mov dword [ebp - 8], 0x436be8
sar eax, 1
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], 2
lea ebx, [esi - 0x2f]
xor edx, edx
jmp 0x41fa90
mov ecx, dword [edi + 8]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [ebp - 0xc], edx
mov dword [eax], str.first_tag_syntax
jmp 0x420063
sub ecx, dword [edi + 0xc]
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
sar ecx, 1
mov dword [ebp - 0xc], edx
mov ebx, edx
mov dword [ebp - 8], 0x436bc8
mov dword [ebp - 0x14], ecx
xor edx, edx
jmp 0x41fa90
test al, 2
je 0x420014
xor eax, 2
mov dword [ebp - 4], eax
cmp esi, 0x2d
jne 0x41ff43
add dword [ebp - 0x10], 2
or eax, 4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x41fa90
test al, 0x20
je 0x41ff9a
push esi
push 0x437024
call dword [sym.imp.MSVCR100.dll_wcschr]
add esp, 8
mov dword [ebp - 8], 0x436bc8
mov dword [ebp - 0xc], 1
test eax, eax
je 0x41ff7b
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov ebx, 0x40
xor edx, edx
jmp 0x41fa90
mov eax, dword [edi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.doctype_tag_syntax
jmp 0x4200e0
cmp esi, 0x5b
jne 0x41ffb3
add dword [ebp - 0x10], 2
or eax, 8
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x41fa90
cmp esi, 0x44
jne 0x41ffcc
add dword [ebp - 0x10], 2
or eax, 0x20
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x41fa90
mov edx, dword [edi + 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.exclamation_tag_syntax
mov eax, dword [ebp + 8]
add eax, 0x10
push eax
mov dword [ebp - 8], 0x436bc8
mov dword [ebp - 0xc], 1
call fcn.0041ee40
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
add esp, 0x18
or ebx, 0xffffffff
xor edx, edx
jmp 0x41fa90
test al, 4
je 0x42008a
xor eax, 4
mov dword [ebp - 4], eax
cmp esi, 0x2d
jne 0x420042
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], 0x436be0
mov dword [ebp - 0xc], 3
lea ebx, [esi - 0xd]
xor edx, edx
jmp 0x41fa90
mov ecx, dword [edi + 8]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [ebp - 0xc], 1
mov dword [eax], str.comment_tag_syntax
mov edx, dword [ebp + 8]
add edx, 0x10
push edx
mov dword [ebp - 8], 0x436bc8
call fcn.0041ee40
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
add esp, 0x18
or ebx, 0xffffffff
xor edx, edx
jmp 0x41fa90
test al, 8
je 0x420100
xor eax, 8
mov dword [ebp - 4], eax
cmp esi, 0x43
jne 0x4200b8
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], 0x436bc0
mov dword [ebp - 0xc], 3
lea ebx, [esi - 0x3b]
xor edx, edx
jmp 0x41fa90
mov eax, dword [edi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [ebp - 8], 0x436bc8
mov dword [ebp - 0xc], 1
mov dword [eax], str.cdata_section_syntax
mov ecx, dword [ebp + 8]
add ecx, 0x10
push ecx
call fcn.0041ee40
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
add esp, 0x18
or ebx, 0xffffffff
xor edx, edx
jmp 0x41fa90
test al, 0x20
je 0x41fe1b
cmp esi, 0x3c
jne 0x42011f
add dword [ebp - 0x10], 2
or dword [ebp - 4], 1
mov eax, dword [ebp - 0x10]
xor edx, edx
jmp 0x41fa90
cmp esi, 0x3e
jne 0x41fe1b
mov eax, dword [ebp - 0x10]
sub eax, dword [edi + 0xc]
lea ebx, [esi + 2]
sar eax, 1
inc eax
mov dword [edi + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 8]
sub ecx, dword [eax + 4]
mov dword [eax], ebx
mov dword [eax + 8], ecx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp esi, 0x3c
jne 0x42016a
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 1
xor edx, edx
jmp 0x41fa90
push esi
push str.__t_n_r
mov ebx, 4
call dword [sym.imp.MSVCR100.dll_wcschr]
add esp, 8
test eax, eax
je 0x41fe08
add dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0x10
xor edx, edx
jmp 0x41fa90
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
cmp dword [edi + 8], edx
jne 0x4201c1
pop edi
pop esi
mov dword [eax + 8], 0
mov dword [eax], 0
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 4
je 0x420137
cmp ebx, 2
je 0x420137
test byte [ebp - 4], 0x20
mov ecx, 0x436f70
jne 0x42021e
cmp ebx, 0x40
je 0x42021e
cmp ebx, 1
jne 0x4201ef
mov ecx, str.start_tag
jmp 0x420223
test ebx, ebx
jne 0x4201fa
mov ecx, str.end_tag
jmp 0x420223
cmp ebx, 8
jne 0x420206
mov ecx, str.cdata_section
jmp 0x420223
cmp ebx, 0x10
jne 0x420212
mov ecx, str.processing_instruction
jmp 0x420223
cmp ebx, 0x20
jne 0x420223
mov ecx, str.comment
jmp 0x420223
mov ecx, str.document_type
or ebx, 0xffffffff
push ebx
push edx
mov edx, dword [ebp + 8]
push 2
push ecx
mov eax, esp
push ecx
mov dword [eax], ecx
mov eax, esp
add edx, 0x10
push edx
mov dword [eax], str.unterminated_tag_syntax
call fcn.0041ee40
add esp, 0x18
jmp 0x420137
sub ecx, dword [edi + 0xc]
sar ecx, 1
mov dword [edi + 8], ecx
jmp 0x420137
sub ecx, dword [edi + 0xc]
mov ebx, 4
sar ecx, 1
mov dword [edi + 8], ecx
jmp 0x420137