Function at 0x4171f0
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x4172a3
cmp eax, 0x7c
je 0x4172a3
cmp eax, 0x29
jne 0x4172a9
cmp dword [esi + 0x10], 0
jne 0x4172a3
test dword [esi + 0x50], 0x10000000
je 0x417674
cmp eax, 0x5d
jne 0x41723e
test dword [esi + 0x50], 0x10000000
je 0x417666
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004185b0
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x417287
cmp byte [eax], 0x5c
jne 0x417285
inc eax
cmp eax, ecx
je 0x417285
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x417272
mov dl, byte [eax]
cmp dl, 0x28
je 0x417283
cmp dl, 0x29
je 0x417283
test cl, 0x10
jne 0x417285
mov cl, byte [eax]
cmp cl, 0x7b
je 0x417283
cmp cl, 0x7d
jne 0x417285
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004163b0
mov ecx, esi
call fcn.00418380
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x417203
pop esi
mov al, cl
pop ebx
pop ecx
ret
cmp eax, 0x2e
jne 0x417306
push 0x14
call fcn.0041c108
mov ecx, eax
add esp, 4
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 0x4172fb
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 0x41724b
cmp eax, 0x5c
jne 0x41746c
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41734b
cmp byte [eax], 0x5c
jne 0x417349
inc eax
cmp eax, ecx
je 0x417349
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x417336
mov dl, byte [eax]
cmp dl, 0x28
je 0x417347
cmp dl, 0x29
je 0x417347
test cl, 0x10
jne 0x417349
mov cl, byte [eax]
cmp cl, 0x7b
je 0x417347
cmp cl, 0x7d
jne 0x417349
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004163b0
test byte [esi + 0x50], 0x80
je 0x417460
cmp byte [esi + 0x48], 0x62
jne 0x4173fc
push 0x14
call fcn.0041c108
mov ecx, eax
add esp, 4
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 0x4173b3
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 0x417628
cmp byte [eax], 0x5c
jne 0x417626
inc eax
cmp eax, ecx
je 0x417626
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4173f4
mov cl, byte [eax]
cmp cl, 0x28
je 0x417624
cmp cl, 0x29
je 0x417624
test dl, 0x10
jmp 0x417616
cmp byte [esi + 0x48], 0x42
jne 0x417460
push 0x14
call fcn.0041c108
mov ecx, eax
add esp, 4
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 0x41744f
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 0x4173b9
mov ecx, esi
call fcn.00418020
jmp 0x41728e
cmp eax, 0x5b
jne 0x4174ca
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4174ad
cmp byte [eax], 0x5c
jne 0x4174ab
inc eax
cmp eax, ecx
je 0x4174ab
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x417498
mov dl, byte [eax]
cmp dl, 0x28
je 0x4174a9
cmp dl, 0x29
je 0x4174a9
test cl, 0x10
jne 0x4174ab
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4174a9
cmp cl, 0x7d
jne 0x4174ab
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004163b0
mov ecx, esi
call fcn.00417f00
cmp dword [esi + 0x4c], 0x5d
jne 0x417666
jmp 0x41724b
cmp eax, 0x28
jne 0x417579
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41750f
cmp byte [eax], 0x5c
jne 0x41750d
inc eax
cmp eax, ecx
je 0x41750d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4174fa
mov dl, byte [eax]
cmp dl, 0x28
je 0x41750b
cmp dl, 0x29
je 0x41750b
test cl, 0x10
jne 0x41750d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41750b
cmp cl, 0x7d
jne 0x41750d
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004163b0
mov ecx, esi
call fcn.00418160
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x417674
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x417565
cmp byte [eax], 0x5c
jne 0x417563
inc eax
cmp eax, ecx
je 0x417563
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x417550
mov dl, byte [eax]
cmp dl, 0x28
je 0x417561
cmp dl, 0x29
je 0x417561
test cl, 0x10
jne 0x417563
mov cl, byte [eax]
cmp cl, 0x7b
je 0x417561
cmp cl, 0x7d
jne 0x417563
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004163b0
test bl, bl
je 0x417295
jmp 0x41728e
cmp eax, 0x5e
jne 0x417590
push 0x14
call fcn.0041c108
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x4175a9
cmp eax, 0x24
jne 0x417634
push 0x14
call fcn.0041c108
mov ecx, eax
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 edx, dword [eax + 0xc]
test edx, edx
je 0x4175e6
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 0x417628
cmp byte [eax], 0x5c
jne 0x417626
inc eax
cmp eax, ecx
je 0x417626
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x417613
mov dl, byte [eax]
cmp dl, 0x28
je 0x417624
cmp dl, 0x29
je 0x417624
test cl, 0x10
jne 0x417626
mov cl, byte [eax]
cmp cl, 0x7b
je 0x417624
cmp cl, 0x7d
jne 0x417626
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004163b0
jmp 0x417295
cmp eax, 0x2a
je 0x41765f
cmp eax, 0x2b
je 0x41765f
cmp eax, 0x3f
je 0x41765f
cmp eax, 0x7b
je 0x41765f
cmp eax, 0x7d
jne 0x41722c
test dword [esi + 0x50], 0x10000000
je 0x41766d
jmp 0x41723e
push 0xa
call fcn.004163a0
push 4
call fcn.004163a0
push 6
call fcn.004163a0
push 5
call fcn.004163a0
int3