Function at 0x409b00
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x409bc0
nop dword [eax + eax]
cmp eax, 0x7c
je 0x409bc0
cmp eax, 0x29
jne 0x409bc8
cmp dword [esi + 0x10], 0
jne 0x409bc0
test dword [esi + 0x50], 0x10000000
je 0x409fe0
cmp eax, 0x5d
jne 0x409b5b
test dword [esi + 0x50], 0x10000000
je 0x409fd2
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040b150
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x409ba4
cmp byte [eax], 0x5c
jne 0x409ba2
inc eax
cmp eax, ecx
je 0x409ba2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409b8f
mov dl, byte [eax]
cmp dl, 0x28
je 0x409ba0
cmp dl, 0x29
je 0x409ba0
test cl, 0x10
jne 0x409ba2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x409ba0
cmp cl, 0x7d
jne 0x409ba2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00408600
mov ecx, esi
call fcn.0040af20
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x409b20
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x2e
jne 0x409c35
push 0x14
call fcn.0040e373
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x409c2a
mov dword [ecx + 0xc], edx
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
jmp 0x409b68
cmp eax, 0x5c
jne 0x409dbb
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x409c7a
cmp byte [eax], 0x5c
jne 0x409c78
inc eax
cmp eax, ecx
je 0x409c78
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409c65
mov dl, byte [eax]
cmp dl, 0x28
je 0x409c76
cmp dl, 0x29
je 0x409c76
test cl, 0x10
jne 0x409c78
mov cl, byte [eax]
cmp cl, 0x7b
je 0x409c76
cmp cl, 0x7d
jne 0x409c78
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00408600
test byte [esi + 0x50], 0x80
je 0x409daf
cmp byte [esi + 0x48], 0x62
jne 0x409d3b
push 0x14
call fcn.0040e373
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x409cf2
mov dword [ecx + 0xc], edx
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 0x409f94
cmp byte [eax], 0x5c
jne 0x409f92
inc eax
cmp eax, ecx
je 0x409f92
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x409d33
mov cl, byte [eax]
cmp cl, 0x28
je 0x409f90
cmp cl, 0x29
je 0x409f90
test dl, 0x10
jmp 0x409f82
cmp byte [esi + 0x48], 0x42
jne 0x409daf
push 0x14
call fcn.0040e373
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x409d9e
mov dword [ecx + 0xc], edx
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 eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x409cf8
mov ecx, esi
call fcn.0040ac30
jmp 0x409bab
cmp eax, 0x5b
jne 0x409e19
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x409dfc
cmp byte [eax], 0x5c
jne 0x409dfa
inc eax
cmp eax, ecx
je 0x409dfa
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409de7
mov dl, byte [eax]
cmp dl, 0x28
je 0x409df8
cmp dl, 0x29
je 0x409df8
test cl, 0x10
jne 0x409dfa
mov cl, byte [eax]
cmp cl, 0x7b
je 0x409df8
cmp cl, 0x7d
jne 0x409dfa
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00408600
mov ecx, esi
call fcn.0040ab10
cmp dword [esi + 0x4c], 0x5d
jne 0x409fd2
jmp 0x409b68
cmp eax, 0x28
jne 0x409ec8
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x409e5e
cmp byte [eax], 0x5c
jne 0x409e5c
inc eax
cmp eax, ecx
je 0x409e5c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409e49
mov dl, byte [eax]
cmp dl, 0x28
je 0x409e5a
cmp dl, 0x29
je 0x409e5a
test cl, 0x10
jne 0x409e5c
mov cl, byte [eax]
cmp cl, 0x7b
je 0x409e5a
cmp cl, 0x7d
jne 0x409e5c
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00408600
mov ecx, esi
call fcn.0040ad80
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x409fe0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x409eb4
cmp byte [eax], 0x5c
jne 0x409eb2
inc eax
cmp eax, ecx
je 0x409eb2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409e9f
mov dl, byte [eax]
cmp dl, 0x28
je 0x409eb0
cmp dl, 0x29
je 0x409eb0
test cl, 0x10
jne 0x409eb2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x409eb0
cmp cl, 0x7d
jne 0x409eb2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00408600
test bl, bl
je 0x409bb2
jmp 0x409bab
cmp eax, 0x5e
jne 0x409eec
push 0x14
call fcn.0040e373
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 2
jmp 0x409f12
cmp eax, 0x24
jne 0x409fa0
push 0x14
call fcn.0040e373
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 3
mov dword [ecx], vtable.std::_Node_base.0
add esp, 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 4], ecx
mov edx, dword [eax + 0xc]
test edx, edx
je 0x409f52
mov dword [ecx + 0xc], edx
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 ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x409f94
cmp byte [eax], 0x5c
jne 0x409f92
inc eax
cmp eax, ecx
je 0x409f92
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409f7f
mov dl, byte [eax]
cmp dl, 0x28
je 0x409f90
cmp dl, 0x29
je 0x409f90
test cl, 0x10
jne 0x409f92
mov cl, byte [eax]
cmp cl, 0x7b
je 0x409f90
cmp cl, 0x7d
jne 0x409f92
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00408600
jmp 0x409bb2
cmp eax, 0x2a
je 0x409fcb
cmp eax, 0x2b
je 0x409fcb
cmp eax, 0x3f
je 0x409fcb
cmp eax, 0x7b
je 0x409fcb
cmp eax, 0x7d
jne 0x409b49
test dword [esi + 0x50], 0x10000000
je 0x409fd9
jmp 0x409b5b
push 0xa
call fcn.004085f0
push 4
call fcn.004085f0
push 6
call fcn.004085f0
push 5
call fcn.004085f0
int3