Function at 0x4086f0
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x408a6e
push ebx
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x408a6d
cmp eax, 0x29
jne 0x408728
cmp dword [esi + 0x10], 0
jne 0x408a6d
test dword [esi + 0x50], 0x10000000
je 0x408a72
cmp eax, 0x2e
jne 0x4087da
push 0x14
call sub.MSVCR110.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x408765
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x408767
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x408783
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4087ce
cmp word [eax], 0x5c
jne 0x4087cb
add eax, 2
cmp eax, ecx
je 0x4087cb
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4087b7
movzx edx, word [eax]
cmp edx, 0x28
je 0x4087c9
cmp edx, 0x29
je 0x4087c9
test cl, 0x10
jne 0x4087cb
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4087c9
cmp ecx, 0x7d
jne 0x4087cb
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040c710
jmp 0x408a5a
cmp eax, 0x5c
jne 0x4088c9
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x408825
cmp word [eax], 0x5c
jne 0x408822
add eax, 2
cmp eax, ecx
je 0x408822
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40880e
movzx edx, word [eax]
cmp edx, 0x28
je 0x408820
cmp edx, 0x29
je 0x408820
test cl, 0x10
jne 0x408822
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x408820
cmp ecx, 0x7d
jne 0x408822
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040c710
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x408895
cmp word [esi + 0x48], 0x62
jne 0x408895
lea ecx, [esi + 0x24]
push 4
call fcn.0040be10
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x408889
cmp word [eax], 0x5c
jne 0x408886
add eax, 2
cmp eax, ecx
je 0x408886
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x408872
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x408884
cmp ecx, 0x29
je 0x408884
test dl, 0x10
jne 0x408886
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x408884
cmp ecx, 0x7d
jne 0x408886
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040c710
jmp 0x408a61
test eax, eax
je 0x4088bd
cmp word [esi + 0x48], 0x42
jne 0x4088bd
lea ecx, [esi + 0x24]
push 4
call fcn.0040be10
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.0040be80
jmp 0x408a61
mov ecx, esi
call fcn.00408bc0
jmp 0x408a5a
cmp eax, 0x5b
jne 0x40897a
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x408914
cmp word [eax], 0x5c
jne 0x408911
add eax, 2
cmp eax, ecx
je 0x408911
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4088fd
movzx edx, word [eax]
cmp edx, 0x28
je 0x40890f
cmp edx, 0x29
je 0x40890f
test cl, 0x10
jne 0x408911
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40890f
cmp ecx, 0x7d
jne 0x408911
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040c710
mov ecx, esi
call fcn.004091f0
cmp dword [esi + 0x4c], 0x5d
jne 0x408a7a
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40896e
cmp word [eax], 0x5c
jne 0x40896b
add eax, 2
cmp eax, ecx
je 0x40896b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408957
movzx edx, word [eax]
cmp edx, 0x28
je 0x408969
cmp edx, 0x29
je 0x408969
test cl, 0x10
jne 0x40896b
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x408969
cmp ecx, 0x7d
jne 0x40896b
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040c710
jmp 0x408a5a
cmp eax, 0x28
jne 0x4089e6
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4089c1
cmp word [eax], 0x5c
jne 0x4089be
add eax, 2
cmp eax, ecx
je 0x4089be
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4089aa
movzx edx, word [eax]
cmp edx, 0x28
je 0x4089bc
cmp edx, 0x29
je 0x4089bc
test cl, 0x10
jne 0x4089be
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4089bc
cmp ecx, 0x7d
jne 0x4089be
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040c710
mov ecx, esi
call fcn.0040c9c0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.0040aa80
test bl, bl
je 0x408a61
jmp 0x408a5a
cmp eax, 0x5e
jne 0x4089fe
lea ecx, [esi + 0x24]
push 2
call fcn.0040be10
mov ecx, esi
call fcn.0040be80
jmp 0x408a61
cmp eax, 0x24
jne 0x408a16
lea ecx, [esi + 0x24]
push 3
call fcn.0040be10
mov ecx, esi
call fcn.0040be80
jmp 0x408a61
cmp eax, 0x2a
je 0x408a8a
cmp eax, 0x2b
je 0x408a8a
cmp eax, 0x3f
je 0x408a8a
cmp eax, 0x7b
je 0x408a8a
cmp eax, 0x7d
jne 0x408a38
test dword [esi + 0x50], 0x10000000
je 0x408a82
cmp eax, 0x5d
jne 0x408a46
test dword [esi + 0x50], 0x10000000
je 0x408a7a
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00407e80
mov ecx, esi
call fcn.0040be80
mov ecx, esi
call fcn.0040bf60
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x408700
pop ebx
mov al, cl
pop esi
ret
push 5
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 4
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 6
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 0xa
call dword [sym.imp.MSVCP110.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
int3