Function at 0x404e10
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 0x40534b
cmp ecx, 0x7c
je 0x40534b
cmp ecx, 0x29
jne 0x404e58
cmp dword [esi + 0x10], 0
jne 0x40534b
cmp ecx, ecx
jne 0x404e58
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x405359
jmp 0x4052b9
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x404f0d
push 0x14
call fcn.0040ae52
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
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 0x404eb1
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]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x40532f
cmp word [ecx], 0x5c
jne 0x404f03
lea edx, [ecx + 2]
cmp edx, eax
je 0x404f03
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x404eed
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x404f01
cmp ecx, 0x29
je 0x404f01
mov ecx, dword [esi]
test bl, 0x10
jne 0x404f03
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x404f01
cmp edi, 0x7d
jne 0x404f03
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x40532f
cmp ecx, 0x5c
jne 0x4050a6
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x404f60
cmp word [ecx], 0x5c
jne 0x404f5b
lea edx, [ecx + 2]
cmp edx, eax
je 0x404f5b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x404f45
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x404f59
cmp ecx, 0x29
je 0x404f59
mov ecx, dword [esi]
test bl, 0x10
jne 0x404f5b
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x404f59
cmp ebx, 0x7d
jne 0x404f5b
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.00404010
mov eax, dword [edi]
and eax, 0x80
je 0x40502e
cmp word [esi + 0x48], 0x62
jne 0x40502e
push 0x14
call fcn.0040ae52
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
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 0x404fcc
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]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x405289
cmp word [ecx], 0x5c
jne 0x40501d
lea edx, [ecx + 2]
cmp edx, eax
je 0x40501d
mov ebx, dword [edi]
test bl, 8
jne 0x405007
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x40501b
cmp ecx, 0x29
je 0x40501b
mov ecx, dword [esi]
test bl, 0x10
jne 0x40501d
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x40501b
cmp edi, 0x7d
jne 0x40501d
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.00404010
jmp 0x40533d
test eax, eax
je 0x40509a
cmp word [esi + 0x48], 0x42
jne 0x40509a
push 0x14
call fcn.0040ae52
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
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 0x405086
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 0x405244
mov ecx, esi
call fcn.00405ec0
jmp 0x405336
cmp ecx, 0x5b
jne 0x40510d
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x4050f0
cmp word [ecx], 0x5c
jne 0x4050ed
add ecx, 2
cmp ecx, eax
je 0x4050ed
mov edx, dword [edi]
test dl, 8
jne 0x4050d7
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x4050eb
cmp ebx, 0x29
je 0x4050eb
test dl, 0x10
jne 0x4050ed
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x4050eb
cmp edx, 0x7d
jne 0x4050ed
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404010
mov ecx, esi
call fcn.00405d70
cmp dword [esi + 0x4c], 0x5d
jne 0x405360
jmp 0x4052ea
cmp ecx, 0x28
jne 0x4051ce
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x40515b
cmp word [ecx], 0x5c
jne 0x405158
add ecx, 2
cmp ecx, eax
je 0x405158
mov edx, dword [edi]
test dl, 8
jne 0x405142
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x405156
cmp ebx, 0x29
je 0x405156
test dl, 0x10
jne 0x405158
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x405156
cmp edx, 0x7d
jne 0x405158
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404010
mov ecx, esi
call fcn.00406010
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x405359
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x4051ba
cmp word [ecx], 0x5c
jne 0x4051b7
add ecx, 2
cmp ecx, edx
je 0x4051b7
mov edx, dword [edi]
test dl, 8
jne 0x4051a1
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x4051b5
cmp edi, 0x29
je 0x4051b5
test dl, 0x10
jne 0x4051b7
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x4051b5
cmp edx, 0x7d
jne 0x4051b7
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404010
test bl, bl
je 0x40533d
jmp 0x405336
cmp ecx, 0x5e
jne 0x4051e5
push 0x14
call fcn.0040ae52
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x4051fe
cmp ecx, 0x24
jne 0x405295
push 0x14
call fcn.0040ae52
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 dword [ebp - 4], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40523b
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 + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x405289
cmp word [ecx], 0x5c
jne 0x405286
add ecx, 2
cmp ecx, eax
je 0x405286
mov edx, dword [edi]
test dl, 8
jne 0x405270
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x405284
cmp edi, 0x29
je 0x405284
test dl, 0x10
jne 0x405286
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x405284
cmp edx, 0x7d
jne 0x405286
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404010
jmp 0x40533d
cmp ecx, 0x2a
je 0x405352
cmp ecx, 0x2b
je 0x405352
cmp ecx, 0x3f
je 0x405352
cmp ecx, 0x7b
je 0x405352
cmp ecx, 0x7d
jne 0x4052cc
test dword [edi], 0x10000000
je 0x405367
jmp 0x4052dd
cmp ecx, 0x5d
jne 0x4052dd
test dword [edi], 0x10000000
je 0x405360
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00406490
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x40532f
cmp word [ecx], 0x5c
jne 0x40532c
add ecx, 2
cmp ecx, eax
je 0x40532c
mov edx, dword [edi]
test dl, 8
jne 0x405316
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x40532a
cmp edi, 0x29
je 0x40532a
test dl, 0x10
jne 0x40532c
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x40532a
cmp edx, 0x7d
jne 0x40532c
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404010
mov ecx, esi
call fcn.00406260
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x404e27
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00404000
push 5
call fcn.00404000
push 4
call fcn.00404000
push 6
call fcn.00404000
int3