Function at 0x414660
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 0x414720
nop dword [eax + eax]
cmp eax, 0x7c
je 0x414720
cmp eax, 0x29
jne 0x414728
cmp dword [esi + 0x10], 0
jne 0x414720
test dword [esi + 0x50], 0x10000000
je 0x414b40
cmp eax, 0x5d
jne 0x4146bb
test dword [esi + 0x50], 0x10000000
je 0x414b32
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004162e0
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x414704
cmp byte [eax], 0x5c
jne 0x414702
inc eax
cmp eax, ecx
je 0x414702
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4146ef
mov dl, byte [eax]
cmp dl, 0x28
je 0x414700
cmp dl, 0x29
je 0x414700
test cl, 0x10
jne 0x414702
mov cl, byte [eax]
cmp cl, 0x7b
je 0x414700
cmp cl, 0x7d
jne 0x414702
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00412d60
mov ecx, esi
call fcn.004160b0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x414680
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x2e
jne 0x414795
push 0x14
call fcn.0041aecb
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 0x41478a
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 0x4146c8
cmp eax, 0x5c
jne 0x41491b
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4147da
cmp byte [eax], 0x5c
jne 0x4147d8
inc eax
cmp eax, ecx
je 0x4147d8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4147c5
mov dl, byte [eax]
cmp dl, 0x28
je 0x4147d6
cmp dl, 0x29
je 0x4147d6
test cl, 0x10
jne 0x4147d8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4147d6
cmp cl, 0x7d
jne 0x4147d8
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00412d60
test byte [esi + 0x50], 0x80
je 0x41490f
cmp byte [esi + 0x48], 0x62
jne 0x41489b
push 0x14
call fcn.0041aecb
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 0x414852
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 0x414af4
cmp byte [eax], 0x5c
jne 0x414af2
inc eax
cmp eax, ecx
je 0x414af2
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x414893
mov cl, byte [eax]
cmp cl, 0x28
je 0x414af0
cmp cl, 0x29
je 0x414af0
test dl, 0x10
jmp 0x414ae2
cmp byte [esi + 0x48], 0x42
jne 0x41490f
push 0x14
call fcn.0041aecb
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 0x4148fe
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 0x414858
mov ecx, esi
call fcn.00415dc0
jmp 0x41470b
cmp eax, 0x5b
jne 0x414979
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41495c
cmp byte [eax], 0x5c
jne 0x41495a
inc eax
cmp eax, ecx
je 0x41495a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x414947
mov dl, byte [eax]
cmp dl, 0x28
je 0x414958
cmp dl, 0x29
je 0x414958
test cl, 0x10
jne 0x41495a
mov cl, byte [eax]
cmp cl, 0x7b
je 0x414958
cmp cl, 0x7d
jne 0x41495a
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00412d60
mov ecx, esi
call fcn.00415ca0
cmp dword [esi + 0x4c], 0x5d
jne 0x414b32
jmp 0x4146c8
cmp eax, 0x28
jne 0x414a28
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4149be
cmp byte [eax], 0x5c
jne 0x4149bc
inc eax
cmp eax, ecx
je 0x4149bc
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4149a9
mov dl, byte [eax]
cmp dl, 0x28
je 0x4149ba
cmp dl, 0x29
je 0x4149ba
test cl, 0x10
jne 0x4149bc
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4149ba
cmp cl, 0x7d
jne 0x4149bc
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00412d60
mov ecx, esi
call fcn.00415f10
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x414b40
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x414a14
cmp byte [eax], 0x5c
jne 0x414a12
inc eax
cmp eax, ecx
je 0x414a12
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4149ff
mov dl, byte [eax]
cmp dl, 0x28
je 0x414a10
cmp dl, 0x29
je 0x414a10
test cl, 0x10
jne 0x414a12
mov cl, byte [eax]
cmp cl, 0x7b
je 0x414a10
cmp cl, 0x7d
jne 0x414a12
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00412d60
test bl, bl
je 0x414712
jmp 0x41470b
cmp eax, 0x5e
jne 0x414a4c
push 0x14
call fcn.0041aecb
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 2
jmp 0x414a72
cmp eax, 0x24
jne 0x414b00
push 0x14
call fcn.0041aecb
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 0x414ab2
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 0x414af4
cmp byte [eax], 0x5c
jne 0x414af2
inc eax
cmp eax, ecx
je 0x414af2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x414adf
mov dl, byte [eax]
cmp dl, 0x28
je 0x414af0
cmp dl, 0x29
je 0x414af0
test cl, 0x10
jne 0x414af2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x414af0
cmp cl, 0x7d
jne 0x414af2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00412d60
jmp 0x414712
cmp eax, 0x2a
je 0x414b2b
cmp eax, 0x2b
je 0x414b2b
cmp eax, 0x3f
je 0x414b2b
cmp eax, 0x7b
je 0x414b2b
cmp eax, 0x7d
jne 0x4146a9
test dword [esi + 0x50], 0x10000000
je 0x414b39
jmp 0x4146bb
push 0xa
call fcn.00412d50
push 4
call fcn.00412d50
push 6
call fcn.00412d50
push 5
call fcn.00412d50
int3