Function at 0x414220
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 0x4142d3
cmp eax, 0x7c
je 0x4142d3
cmp eax, 0x29
jne 0x4142d9
cmp dword [esi + 0x10], 0
jne 0x4142d3
test dword [esi + 0x50], 0x10000000
je 0x4146a4
cmp eax, 0x5d
jne 0x41426e
test dword [esi + 0x50], 0x10000000
je 0x414696
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004155e0
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x4142b7
cmp byte [eax], 0x5c
jne 0x4142b5
inc eax
cmp eax, ecx
je 0x4142b5
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4142a2
mov dl, byte [eax]
cmp dl, 0x28
je 0x4142b3
cmp dl, 0x29
je 0x4142b3
test cl, 0x10
jne 0x4142b5
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4142b3
cmp cl, 0x7d
jne 0x4142b5
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004133e0
mov ecx, esi
call fcn.004153b0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x414233
pop esi
mov al, cl
pop ebx
pop ecx
ret
cmp eax, 0x2e
jne 0x414336
push 0x14
call fcn.00418fe8
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 0x41432b
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 0x41427b
cmp eax, 0x5c
jne 0x41449c
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41437b
cmp byte [eax], 0x5c
jne 0x414379
inc eax
cmp eax, ecx
je 0x414379
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x414366
mov dl, byte [eax]
cmp dl, 0x28
je 0x414377
cmp dl, 0x29
je 0x414377
test cl, 0x10
jne 0x414379
mov cl, byte [eax]
cmp cl, 0x7b
je 0x414377
cmp cl, 0x7d
jne 0x414379
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004133e0
test byte [esi + 0x50], 0x80
je 0x414490
cmp byte [esi + 0x48], 0x62
jne 0x41442c
push 0x14
call fcn.00418fe8
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 0x4143e3
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 0x414658
cmp byte [eax], 0x5c
jne 0x414656
inc eax
cmp eax, ecx
je 0x414656
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x414424
mov cl, byte [eax]
cmp cl, 0x28
je 0x414654
cmp cl, 0x29
je 0x414654
test dl, 0x10
jmp 0x414646
cmp byte [esi + 0x48], 0x42
jne 0x414490
push 0x14
call fcn.00418fe8
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 0x41447f
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 0x4143e9
mov ecx, esi
call fcn.00415050
jmp 0x4142be
cmp eax, 0x5b
jne 0x4144fa
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4144dd
cmp byte [eax], 0x5c
jne 0x4144db
inc eax
cmp eax, ecx
je 0x4144db
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4144c8
mov dl, byte [eax]
cmp dl, 0x28
je 0x4144d9
cmp dl, 0x29
je 0x4144d9
test cl, 0x10
jne 0x4144db
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4144d9
cmp cl, 0x7d
jne 0x4144db
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004133e0
mov ecx, esi
call fcn.00414f30
cmp dword [esi + 0x4c], 0x5d
jne 0x414696
jmp 0x41427b
cmp eax, 0x28
jne 0x4145a9
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41453f
cmp byte [eax], 0x5c
jne 0x41453d
inc eax
cmp eax, ecx
je 0x41453d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41452a
mov dl, byte [eax]
cmp dl, 0x28
je 0x41453b
cmp dl, 0x29
je 0x41453b
test cl, 0x10
jne 0x41453d
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41453b
cmp cl, 0x7d
jne 0x41453d
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004133e0
mov ecx, esi
call fcn.00415190
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4146a4
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x414595
cmp byte [eax], 0x5c
jne 0x414593
inc eax
cmp eax, ecx
je 0x414593
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x414580
mov dl, byte [eax]
cmp dl, 0x28
je 0x414591
cmp dl, 0x29
je 0x414591
test cl, 0x10
jne 0x414593
mov cl, byte [eax]
cmp cl, 0x7b
je 0x414591
cmp cl, 0x7d
jne 0x414593
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004133e0
test bl, bl
je 0x4142c5
jmp 0x4142be
cmp eax, 0x5e
jne 0x4145c0
push 0x14
call fcn.00418fe8
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x4145d9
cmp eax, 0x24
jne 0x414664
push 0x14
call fcn.00418fe8
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 0x414616
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 0x414658
cmp byte [eax], 0x5c
jne 0x414656
inc eax
cmp eax, ecx
je 0x414656
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x414643
mov dl, byte [eax]
cmp dl, 0x28
je 0x414654
cmp dl, 0x29
je 0x414654
test cl, 0x10
jne 0x414656
mov cl, byte [eax]
cmp cl, 0x7b
je 0x414654
cmp cl, 0x7d
jne 0x414656
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004133e0
jmp 0x4142c5
cmp eax, 0x2a
je 0x41468f
cmp eax, 0x2b
je 0x41468f
cmp eax, 0x3f
je 0x41468f
cmp eax, 0x7b
je 0x41468f
cmp eax, 0x7d
jne 0x41425c
test dword [esi + 0x50], 0x10000000
je 0x41469d
jmp 0x41426e
push 0xa
call fcn.004133d0
push 4
call fcn.004133d0
push 6
call fcn.004133d0
push 5
call fcn.004133d0
int3