Function at 0x405110
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor al, al
push edi
mov ecx, dword [esi + 0x4c]
cmp ecx, 0xffffffff
je 0x4051ce
cmp ecx, 0x7c
je 0x4051ce
cmp ecx, 0x29
jne 0x4051d5
cmp dword [esi + 0x10], 0
jne 0x4051ce
cmp ecx, ecx
jne 0x4051d5
test dword [esi + 0x50], 0x10000000
je 0x4056c0
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x40516c
test dword [edi], 0x10000000
je 0x4056c7
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004068c0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4051b2
cmp byte [eax], 0x5c
jne 0x4051b0
inc eax
cmp eax, ecx
je 0x4051b0
mov edx, dword [edi]
test dl, 8
jne 0x40519f
mov cl, byte [eax]
cmp cl, 0x28
je 0x4051ae
cmp cl, 0x29
je 0x4051ae
test dl, 0x10
jne 0x4051b0
mov al, byte [eax]
cmp al, 0x7b
je 0x4051ae
cmp al, 0x7d
jne 0x4051b0
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00403df0
mov ecx, esi
call fcn.004066a0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x405127
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x2e
jne 0x40529e
push 0x14
call fcn.0040b0d5
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 eax, dword [eax + 0xc]
test eax, eax
je 0x405238
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 edx, dword [esi + 8]
cmp eax, edx
je 0x4051b2
cmp byte [eax], 0x5c
jne 0x405296
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x405294
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x405274
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x405289
cmp cl, 0x29
je 0x405289
mov ecx, eax
test bl, 0x10
jne 0x405294
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x405289
mov edx, ecx
cmp bl, 0x7d
jne 0x405294
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x4051b2
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x4051b2
cmp ecx, 0x5c
jne 0x405465
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x4052f4
cmp byte [eax], cl
jne 0x4052f1
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x4052ef
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4052d5
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x4052ea
cmp cl, 0x29
je 0x4052ea
mov ecx, eax
test bl, 0x10
jne 0x4052ef
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x4052ea
mov edx, ecx
cmp bl, 0x7d
jne 0x4052ef
lea eax, [edx + 1]
jmp 0x4052f1
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00403df0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x4053e1
cmp byte [esi + 0x48], 0x62
jne 0x4053e1
push 0x14
call fcn.0040b0d5
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 eax, dword [eax + 0xc]
test eax, eax
je 0x40536d
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 edx, dword [esi + 8]
cmp eax, edx
je 0x405678
cmp byte [eax], 0x5c
jne 0x4053d2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x4053d0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4053a9
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x4053be
cmp cl, 0x29
je 0x4053be
mov ecx, eax
test bl, 0x10
jne 0x4053d0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x4053be
mov edx, ecx
cmp bl, 0x7d
jne 0x4053d0
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.00403df0
jmp 0x4051c0
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.00403df0
jmp 0x4051c0
test eax, eax
je 0x405459
cmp byte [esi + 0x48], 0x42
jne 0x405459
push 0x14
call fcn.0040b0d5
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 eax, dword [eax + 0xc]
test eax, eax
je 0x405445
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 eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x40563e
mov ecx, esi
call fcn.00406340
jmp 0x4051b9
cmp ecx, 0x5b
jne 0x405503
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4054a8
cmp byte [eax], 0x5c
jne 0x4054a6
inc eax
cmp eax, ecx
je 0x4054a6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x405495
mov cl, byte [eax]
cmp cl, 0x28
je 0x4054a4
cmp cl, 0x29
je 0x4054a4
test dl, 0x10
jne 0x4054a6
mov al, byte [eax]
cmp al, 0x7b
je 0x4054a4
cmp al, 0x7d
jne 0x4054a6
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00403df0
mov ecx, esi
call fcn.00406200
cmp dword [esi + 0x4c], 0x5d
jne 0x4056c7
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4051b2
cmp byte [eax], 0x5c
jne 0x4051b0
inc eax
cmp eax, ecx
je 0x4051b0
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4054fb
mov dl, byte [eax]
cmp dl, 0x28
je 0x4051ae
cmp dl, 0x29
je 0x4051ae
test cl, 0x10
jmp 0x4051a2
cmp ecx, 0x28
jne 0x4055ae
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x405546
cmp byte [eax], 0x5c
jne 0x405544
inc eax
cmp eax, ecx
je 0x405544
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x405533
mov dl, byte [eax]
cmp dl, 0x28
je 0x405542
cmp dl, 0x29
je 0x405542
test cl, 0x10
jne 0x405544
mov al, byte [eax]
cmp al, 0x7b
je 0x405542
cmp al, 0x7d
jne 0x405544
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00403df0
mov ecx, esi
call fcn.00406490
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4056c0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40559a
cmp byte [eax], 0x5c
jne 0x405598
inc eax
cmp eax, ecx
je 0x405598
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x405587
mov dl, byte [eax]
cmp dl, 0x28
je 0x405596
cmp dl, 0x29
je 0x405596
test cl, 0x10
jne 0x405598
mov al, byte [eax]
cmp al, 0x7b
je 0x405596
cmp al, 0x7d
jne 0x405598
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00403df0
test bl, bl
je 0x4051c0
jmp 0x4051b9
cmp ecx, 0x5e
jne 0x4055d2
push 0x14
call fcn.0040b0d5
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 2
jmp 0x4055f8
cmp ecx, 0x24
jne 0x405684
push 0x14
call fcn.0040b0d5
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 eax, dword [eax + 0xc]
test eax, eax
je 0x405635
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 ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x405678
cmp byte [eax], 0x5c
jne 0x405676
inc eax
cmp eax, ecx
je 0x405676
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x405665
mov dl, byte [eax]
cmp dl, 0x28
je 0x405674
cmp dl, 0x29
je 0x405674
test cl, 0x10
jne 0x405676
mov al, byte [eax]
cmp al, 0x7b
je 0x405674
cmp al, 0x7d
jne 0x405676
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00403df0
jmp 0x4051c0
cmp ecx, 0x2a
je 0x4056b2
cmp ecx, 0x2b
je 0x4056b2
cmp ecx, 0x3f
je 0x4056b2
cmp ecx, 0x7b
je 0x4056b2
cmp ecx, 0x7d
jne 0x405158
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x4056b9
jmp 0x40516c
push 0xa
call fcn.00403de0
push 6
call fcn.00403de0
push 5
call fcn.00403de0
push 4
call fcn.00403de0
int3