Function at 0x421b30
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
cmp dword [esi + 0x4c], 0xffffffff
je 0x421ebc
mov edi, dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
jmp 0x421b50
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x421ebc
cmp eax, 0x29
jne 0x421b78
cmp dword [esi + 0x10], 0
jne 0x421ebc
test dword [esi + 0x50], 0x10000000
je 0x421ec2
cmp eax, 0x2e
jne 0x421c27
push 0x14
call edi
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x421bb2
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 0x421bb4
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 0x421bd0
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 0x421c1b
cmp word [eax], 0x5c
jne 0x421c18
add eax, 2
cmp eax, ecx
je 0x421c18
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x421c04
movzx edx, word [eax]
cmp edx, 0x28
je 0x421c16
cmp edx, 0x29
je 0x421c16
test cl, 0x10
jne 0x421c18
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x421c16
cmp ecx, 0x7d
jne 0x421c18
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004205d0
jmp 0x421ea9
cmp eax, 0x5c
jne 0x421d16
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x421c72
cmp word [eax], 0x5c
jne 0x421c6f
add eax, 2
cmp eax, ecx
je 0x421c6f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x421c5b
movzx edx, word [eax]
cmp edx, 0x28
je 0x421c6d
cmp edx, 0x29
je 0x421c6d
test cl, 0x10
jne 0x421c6f
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x421c6d
cmp ecx, 0x7d
jne 0x421c6f
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004205d0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x421ce2
cmp word [esi + 0x48], 0x62
jne 0x421ce2
push 4
lea ecx, [esi + 0x24]
call fcn.004220a0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x421cd6
cmp word [eax], 0x5c
jne 0x421cd3
add eax, 2
cmp eax, ecx
je 0x421cd3
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x421cbf
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x421cd1
cmp ecx, 0x29
je 0x421cd1
test dl, 0x10
jne 0x421cd3
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x421cd1
cmp ecx, 0x7d
jne 0x421cd3
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004205d0
jmp 0x421eb0
test eax, eax
je 0x421d0a
cmp word [esi + 0x48], 0x42
jne 0x421d0a
push 4
lea ecx, [esi + 0x24]
call fcn.004220a0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00421ae0
jmp 0x421eb0
mov ecx, esi
call fcn.00423180
jmp 0x421ea9
cmp eax, 0x5b
jne 0x421dc7
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x421d61
cmp word [eax], 0x5c
jne 0x421d5e
add eax, 2
cmp eax, ecx
je 0x421d5e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x421d4a
movzx edx, word [eax]
cmp edx, 0x28
je 0x421d5c
cmp edx, 0x29
je 0x421d5c
test cl, 0x10
jne 0x421d5e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x421d5c
cmp ecx, 0x7d
jne 0x421d5e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004205d0
mov ecx, esi
call fcn.00423110
cmp dword [esi + 0x4c], 0x5d
jne 0x421eca
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x421dbb
cmp word [eax], 0x5c
jne 0x421db8
add eax, 2
cmp eax, ecx
je 0x421db8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x421da4
movzx edx, word [eax]
cmp edx, 0x28
je 0x421db6
cmp edx, 0x29
je 0x421db6
test cl, 0x10
jne 0x421db8
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x421db6
cmp ecx, 0x7d
jne 0x421db8
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004205d0
jmp 0x421ea9
cmp eax, 0x28
jne 0x421e35
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x421e0e
cmp word [eax], 0x5c
jne 0x421e0b
add eax, 2
cmp eax, ecx
je 0x421e0b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x421df7
movzx edx, word [eax]
cmp edx, 0x28
je 0x421e09
cmp edx, 0x29
je 0x421e09
test cl, 0x10
jne 0x421e0b
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x421e09
cmp ecx, 0x7d
jne 0x421e0b
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004205d0
mov ecx, esi
call fcn.00423250
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x421ec2
mov ecx, esi
call fcn.00421ae0
test bl, bl
je 0x421eb0
jmp 0x421ea9
cmp eax, 0x5e
jne 0x421e4d
push 2
lea ecx, [esi + 0x24]
call fcn.004220a0
mov ecx, esi
call fcn.00421ae0
jmp 0x421eb0
cmp eax, 0x24
jne 0x421e65
push 3
lea ecx, [esi + 0x24]
call fcn.004220a0
mov ecx, esi
call fcn.00421ae0
jmp 0x421eb0
cmp eax, 0x2a
je 0x421eda
cmp eax, 0x2b
je 0x421eda
cmp eax, 0x3f
je 0x421eda
cmp eax, 0x7b
je 0x421eda
cmp eax, 0x7d
jne 0x421e87
test dword [esi + 0x50], 0x10000000
je 0x421ed2
cmp eax, 0x5d
jne 0x421e95
test dword [esi + 0x50], 0x10000000
je 0x421eca
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00423430
mov ecx, esi
call fcn.00421ae0
mov ecx, esi
call fcn.00423300
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x421b50
pop edi
pop esi
mov al, cl
pop ebx
ret
push 5
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 4
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 6
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
push 0xa
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xregex_error_enum_std::regex_constants::error_type_]
int3