Function at 0x4045bd
Capabilities:
Parse credit card information

Disassembly:
push 0xa8
mov eax, 0x4c2d56
call fcn.0048652b
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edi + 8]
or dword [ebp - 0x88], 0xffffffff
xor edx, edx
mov dword [eax + 4], ecx
mov dword [eax + 0xc], edx
mov ecx, dword [edi + 8]
mov ebx, dword [edi + 0xc]
mov dword [ebp - 0x9c], ecx
lea ecx, [ebx + ecx*2]
movzx ebx, word [ecx]
xor esi, esi
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0x98], ecx
cmp bx, dx
jne 0x404640
push 0xfffffffffffffffe
mov dword [eax + 8], edx
mov dword [eax], edx
pop eax
jmp 0x404e51
mov eax, ebx
mov dword [ebp - 0x8c], eax
cmp eax, edx
je 0x4049c2
mov ebx, str.Incorrect
jmp 0x404659
xor edx, edx
cmp esi, edx
je 0x4046ca
push dword [ebp - 0x8c]
push str.__t_n_r__
call dword [sym.imp.MSVCR100.dll_wcschr]
pop ecx
pop ecx
test eax, eax
je 0x40499e
mov ecx, dword [ebp - 0x98]
mov edx, dword [edi + 0xc]
mov eax, ecx
sub eax, edx
sar eax, 1
sub eax, esi
cmp dword [ebp - 0x88], 0
jne 0x40469d
lea eax, [eax + esi - 1]
mov dword [edi], esi
mov dword [edi + 4], eax
jmp 0x4046b4
lea ecx, [edx + esi*2]
mov esi, dword [ebp - 0xa4]
add esi, 0x10
call fcn.0040885a
mov ecx, dword [ebp - 0x98]
xor esi, esi
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xac], esi
jmp 0x4046d0
mov ecx, dword [ebp - 0x98]
cmp dword [ebp - 0x90], 0
je 0x40493b
mov eax, dword [ebp - 0x8c]
cmp eax, 0x3e
jne 0x4047d3
test byte [ebp - 0x84], 0xc0
jne 0x4047f2
mov edx, dword [ebp - 0x94]
mov eax, ecx
sub eax, dword [edi + 0xc]
sar eax, 1
mov dword [ebp - 0x9c], eax
cmp edx, 1
jne 0x404760
and dword [ebp - 0x90], 0
cmp dword [ebp - 0x88], edx
jne 0x4047b5
cmp dword [ebp - 0xac], 0x2f
jne 0x4047b5
cmp dword [ebp - 0xb0], 0
je 0x404751
push dword [ebp - 0xb0]
push str.__t_n_r_
call dword [sym.imp.MSVCR100.dll_wcschr]
pop ecx
pop ecx
test eax, eax
je 0x4047b5
mov eax, dword [ebp - 0xa4]
or dword [eax + 0xc], 0x10000
jmp 0x4047b5
cmp eax, edx
jle 0x4047a8
lea eax, [edx + edx]
sub ecx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 0x90]
sub ecx, eax
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0xb4], ecx
jmp 0x404788
mov ecx, dword [ebp - 0xb4]
dec dword [ebp - 0x8c]
je 0x4047a1
mov dx, word [eax]
mov cx, word [ecx + eax]
add eax, 2
cmp dx, cx
je 0x404782
jmp 0x4047a8
and dword [ebp - 0x90], 0
cmp dword [ebp - 0x90], 0
jne 0x40499e
test byte [ebp - 0x84], 0x20
je 0x404e2d
mov esi, dword [ebp - 0xa0]
mov edi, dword [ebp - 0xa8]
jmp 0x40499e
cmp eax, 0x3c
jne 0x4047f2
cmp dword [ebp - 0x88], 2
je 0x404f52
cmp dword [ebp - 0x88], 0xffffffff
je 0x404f52
test byte [ebp - 0x88], 1
je 0x4048f1
test byte [ebp - 0x84], 0xc0
je 0x40484b
cmp eax, 0x22
jne 0x404829
test byte [ebp - 0x84], 0x80
je 0x4048d4
xor dword [ebp - 0x84], 0x80
jmp 0x4048d4
cmp eax, 0x27
jne 0x4048d4
test byte [ebp - 0x84], 0x40
je 0x4048d4
xor dword [ebp - 0x84], 0x40
jmp 0x4048d4
cmp eax, 0x22
jne 0x404868
test dword [ebp - 0x84], 0x100
je 0x4048d4
xor dword [ebp - 0x84], 0x180
jmp 0x4048d4
cmp eax, 0x27
jne 0x404885
test dword [ebp - 0x84], 0x100
je 0x4048d4
xor dword [ebp - 0x84], 0x140
jmp 0x4048d4
cmp eax, 0x3d
jne 0x4048a7
cmp dword [ebp - 0xac], eax
je 0x4048a7
mov eax, 0x100
test dword [ebp - 0x84], eax
jne 0x4048a7
xor dword [ebp - 0x84], eax
jmp 0x4048d4
test dword [ebp - 0x84], 0x100
je 0x4048d4
push dword [ebp - 0x8c]
push str.__t_n_r
call dword [sym.imp.MSVCR100.dll_wcschr]
pop ecx
pop ecx
test eax, eax
jne 0x4048d4
xor dword [ebp - 0x84], 0x100
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xac], eax
jmp 0x40499e
test byte [ebp - 0x88], 0x40
je 0x40499e
cmp dword [ebp - 0x8c], 0x22
jne 0x404920
test byte [ebp - 0x84], 0x40
jne 0x40499e
xor dword [ebp - 0x84], 0x80
jmp 0x40499e
cmp dword [ebp - 0x8c], 0x27
jne 0x40499e
test byte [ebp - 0x84], 0x80
jne 0x40499e
xor dword [ebp - 0x84], 0x40
jmp 0x40499e
cmp dword [ebp - 0x84], 0
je 0x404e57
test byte [ebp - 0x84], 0x10
je 0x404a1c
cmp dword [ebp - 0x8c], 0x3c
je 0x404f63
push dword [ebp - 0x8c]
push str.__t_n_r
call dword [sym.imp.MSVCR100.dll_wcschr]
pop ecx
pop ecx
test eax, eax
jne 0x40499e
xor dword [ebp - 0x84], 0x10
mov dword [ebp - 0x88], 2
mov dword [ebp - 0x90], 0x4df964
mov dword [ebp - 0x94], 1
add dword [ebp - 0x98], 2
mov eax, dword [ebp - 0x98]
movzx eax, word [eax]
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x404657
mov ecx, dword [ebp - 0x98]
sub ecx, dword [edi + 0xc]
sar ecx, 1
dec ecx
cmp dword [ebp - 0x88], 4
mov dword [ebp - 0x9c], ecx
je 0x404e2d
cmp dword [ebp - 0x88], 2
je 0x404e2d
test byte [ebp - 0x84], 0x20
mov esi, 0x4df864
jne 0x404ed2
mov eax, dword [ebp - 0x88]
cmp eax, 0x40
je 0x404ed2
cmp eax, 1
jne 0x404ea3
mov esi, str.Element_tag
jmp 0x404ed7
test byte [ebp - 0x84], 1
je 0x404b62
mov edx, dword [ebp - 0x8c]
xor eax, eax
inc eax
xor dword [ebp - 0x84], eax
cmp edx, 0x60
ja 0x404b3a
cmp edx, 0x40
jbe 0x404a4f
cmp edx, 0x5b
jb 0x404b3a
cmp edx, 0x5f
je 0x404b3a
cmp edx, 0x3a
je 0x404b3a
cmp edx, 0x2f
jne 0x404a7a
and dword [ebp - 0x88], 0
mov esi, ecx
sub esi, dword [edi + 0xc]
sar esi, 1
inc esi
jmp 0x404b47
cmp edx, 0x21
jne 0x404a8b
or dword [ebp - 0x84], 2
jmp 0x40499e
cmp edx, 0x3f
jne 0x404abb
mov esi, ecx
sub esi, dword [edi + 0xc]
mov dword [ebp - 0x90], 0x4df96c
sar esi, 1
mov dword [ebp - 0x94], 2
mov dword [ebp - 0x88], 0x10
inc esi
jmp 0x404b57
xor edi, edi
inc edi
push ebx
mov dword [ebp - 0x90], 0x4df968
mov dword [ebp - 0x94], edi
call dword [sym.imp.MSVCR100.dll_wcslen]
mov esi, dword [ebp - 0xa4]
pop ecx
add esi, 0x10
mov ecx, ebx
call fcn.0040885a
push str.tag_name_character
push esi
call fcn.0040883a
push dword [ebp - 0x9c]
lea eax, [ebp - 0x2c]
push eax
call sym.Uninstall.exe_protected:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_CMarkup::x_IntToStr_int_
push eax
push str._at_offset
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 2
call fcn.004090ba
add esp, 0x10
push 0
push eax
or eax, 0xffffffff
mov byte [ebp - 4], 3
call fcn.00408a5b
push edi
xor edi, edi
lea esi, [ebp - 0x48]
call fcn.00408e84
lea esi, [ebp - 0x2c]
jmp 0x404dca
mov esi, ecx
sub esi, dword [edi + 0xc]
mov dword [ebp - 0x88], eax
sar esi, 1
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], 0x4df968
mov dword [ebp - 0xa0], esi
jmp 0x40499e
test byte [ebp - 0x84], 2
je 0x404c6c
xor dword [ebp - 0x84], 2
cmp dword [ebp - 0x8c], 0x2d
jne 0x404b8b
or dword [ebp - 0x84], 4
jmp 0x40499e
cmp dword [ebp - 0x8c], 0x5b
jne 0x404ba9
test byte [ebp - 0x84], 0x20
jne 0x404bc7
or dword [ebp - 0x84], 8
jmp 0x40499e
cmp dword [ebp - 0x8c], 0x44
jne 0x404bc7
test byte [ebp - 0x84], 0x20
jne 0x404bc7
or dword [ebp - 0x84], 0x20
jmp 0x40499e
push dword [ebp - 0x8c]
push 0x4df9b4
call dword [sym.imp.MSVCR100.dll_wcschr]
pop ecx
pop ecx
mov dword [ebp - 0x90], 0x4df968
test eax, eax
je 0x404bf7
mov dword [ebp - 0x88], 0x40
jmp 0x404994
xor edi, edi
inc edi
push ebx
mov dword [ebp - 0x94], edi
call dword [sym.imp.MSVCR100.dll_wcslen]
mov esi, dword [ebp - 0xa4]
pop ecx
add esi, 0x10
mov ecx, ebx
call fcn.0040885a
push str.__tag
push esi
call fcn.0040883a
push dword [ebp - 0x9c]
lea eax, [ebp - 0x48]
push eax
call sym.Uninstall.exe_protected:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_CMarkup::x_IntToStr_int_
push eax
push str._at_offset
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], 4
call fcn.004090ba
add esp, 0x10
mov byte [ebp - 4], 5
push 0
push eax
or eax, 0xffffffff
call fcn.00408a5b
push edi
xor edi, edi
lea esi, [ebp - 0x2c]
call fcn.00408e84
lea esi, [ebp - 0x48]
jmp 0x404dca
test byte [ebp - 0x84], 4
je 0x404d12
xor dword [ebp - 0x84], 4
cmp dword [ebp - 0x8c], 0x2d
jne 0x404cac
mov dword [ebp - 0x90], 0x4df9c8
mov dword [ebp - 0x94], 3
mov dword [ebp - 0x88], 0x20
jmp 0x40499e
xor edi, edi
inc edi
push ebx
mov dword [ebp - 0x90], 0x4df968
mov dword [ebp - 0x94], edi
call dword [sym.imp.MSVCR100.dll_wcslen]
mov esi, dword [ebp - 0xa4]
pop ecx
add esi, 0x10
mov ecx, ebx
call fcn.0040885a
push str.comment_tag
push esi
call fcn.0040883a
push dword [ebp - 0x9c]
lea eax, [ebp - 0x48]
push eax
call sym.Uninstall.exe_protected:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_CMarkup::x_IntToStr_int_
push eax
push str._at_offset
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], 6
call fcn.004090ba
add esp, 0x10
mov byte [ebp - 4], 7
jmp 0x404c4e
test byte [ebp - 0x84], 8
je 0x404de3
push 8
pop eax
xor dword [ebp - 0x84], eax
cmp dword [ebp - 0x8c], 0x43
jne 0x404d50
mov dword [ebp - 0x90], 0x4df9e8
mov dword [ebp - 0x94], 3
mov dword [ebp - 0x88], eax
jmp 0x40499e
xor edi, edi
inc edi
push ebx
mov dword [ebp - 0x90], 0x4df968
mov dword [ebp - 0x94], edi
call dword [sym.imp.MSVCR100.dll_wcslen]
mov esi, dword [ebp - 0xa4]
pop ecx
add esi, 0x10
mov ecx, ebx
call fcn.0040885a
push 0x4df864
push esi
call fcn.0040883a
push dword [ebp - 0x9c]
lea eax, [ebp - 0x80]
push eax
call sym.Uninstall.exe_protected:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_CMarkup::x_IntToStr_int_
push eax
push str._at_offset
lea eax, [ebp - 0x64]
mov dword [ebp - 4], 8
call fcn.004090ba
add esp, 0x10
push 0
push eax
or eax, 0xffffffff
mov byte [ebp - 4], 9
call fcn.00408a5b
push edi
xor edi, edi
lea esi, [ebp - 0x64]
call fcn.00408e84
lea esi, [ebp - 0x80]
or dword [ebp - 4], 0xffffffff
xor edi, edi
push 1
call fcn.00408e84
or dword [ebp - 0x88], 0xffffffff
jmp 0x4047c2
test byte [ebp - 0x84], 0x20
je 0x40499e
cmp dword [ebp - 0x8c], 0x3c
jne 0x404e05
or dword [ebp - 0x84], 1
jmp 0x40499e
cmp dword [ebp - 0x8c], 0x3e
jne 0x40499e
mov eax, dword [ebp - 0x98]
sub eax, dword [edi + 0xc]
mov dword [ebp - 0x88], 0x40
sar eax, 1
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa8]
inc eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0xa4]
sub eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x88]
mov dword [ecx], eax
call fcn.004865ae
ret
cmp dword [ebp - 0x8c], 0x3c
jne 0x404e6f
mov dword [ebp - 0x84], 1
jmp 0x40499e
push dword [ebp - 0x8c]
mov dword [ebp - 0x88], 4
push str.__t_n_r
call dword [sym.imp.MSVCR100.dll_wcschr]
pop ecx
pop ecx
test eax, eax
je 0x404980
mov dword [ebp - 0x84], 0x10
jmp 0x40499e
test eax, eax
jne 0x404eae
mov esi, str.Element_end_tag
jmp 0x404ed7
cmp eax, 8
jne 0x404eba
mov esi, str.CDATA_Section
jmp 0x404ed7
cmp eax, 0x10
jne 0x404ec6
mov esi, str.Processing_instruction
jmp 0x404ed7
cmp eax, 0x20
jne 0x404ed7
mov esi, str.Comment
jmp 0x404ed7
mov esi, str.Doctype
or dword [ebp - 0x88], 0xffffffff
push esi
call dword [sym.imp.MSVCR100.dll_wcslen]
mov edi, dword [ebp - 0xa4]
pop ecx
lea ebx, [edi + 0x10]
mov ecx, esi
mov esi, ebx
call fcn.0040885a
push dword [edi + 4]
lea eax, [ebp - 0x48]
push eax
call sym.Uninstall.exe_protected:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_CMarkup::x_IntToStr_int_
and dword [ebp - 4], 0
push eax
push str._at_offset
lea eax, [ebp - 0x2c]
call fcn.004090ba
add esp, 0x10
push 0
push eax
or eax, 0xffffffff
mov byte [ebp - 4], 1
call fcn.00408a5b
push 1
xor edi, edi
lea esi, [ebp - 0x2c]
call fcn.00408e84
or dword [ebp - 4], 0xffffffff
push 1
lea esi, [ebp - 0x48]
call fcn.00408e84
push str._unterminated
push ebx
call fcn.0040883a
jmp 0x404e2d
sub ecx, dword [edi + 0xc]
sar ecx, 1
dec ecx
mov dword [ebp - 0x9c], ecx
jmp 0x404e2d
sub ecx, dword [edi + 0xc]
mov dword [ebp - 0x88], 4
sar ecx, 1
dec ecx
mov dword [ebp - 0x9c], ecx
jmp 0x404e2d