Function at 0x405480
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 0x4059bb
cmp ecx, 0x7c
je 0x4059bb
cmp ecx, 0x29
jne 0x4054c8
cmp dword [esi + 0x10], 0
jne 0x4059bb
cmp ecx, ecx
jne 0x4054c8
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x4059c9
jmp 0x405929
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x40557d
push 0x14
call fcn.0040b577
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 0x405521
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 0x40599f
cmp word [ecx], 0x5c
jne 0x405573
lea edx, [ecx + 2]
cmp edx, eax
je 0x405573
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40555d
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x405571
cmp ecx, 0x29
je 0x405571
mov ecx, dword [esi]
test bl, 0x10
jne 0x405573
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x405571
cmp edi, 0x7d
jne 0x405573
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x40599f
cmp ecx, 0x5c
jne 0x405716
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x4055d0
cmp word [ecx], 0x5c
jne 0x4055cb
lea edx, [ecx + 2]
cmp edx, eax
je 0x4055cb
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4055b5
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x4055c9
cmp ecx, 0x29
je 0x4055c9
mov ecx, dword [esi]
test bl, 0x10
jne 0x4055cb
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x4055c9
cmp ebx, 0x7d
jne 0x4055cb
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.00404680
mov eax, dword [edi]
and eax, 0x80
je 0x40569e
cmp word [esi + 0x48], 0x62
jne 0x40569e
push 0x14
call fcn.0040b577
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 0x40563c
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 0x4058f9
cmp word [ecx], 0x5c
jne 0x40568d
lea edx, [ecx + 2]
cmp edx, eax
je 0x40568d
mov ebx, dword [edi]
test bl, 8
jne 0x405677
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x40568b
cmp ecx, 0x29
je 0x40568b
mov ecx, dword [esi]
test bl, 0x10
jne 0x40568d
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x40568b
cmp edi, 0x7d
jne 0x40568d
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.00404680
jmp 0x4059ad
test eax, eax
je 0x40570a
cmp word [esi + 0x48], 0x42
jne 0x40570a
push 0x14
call fcn.0040b577
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 0x4056f6
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 0x4058b4
mov ecx, esi
call fcn.00406530
jmp 0x4059a6
cmp ecx, 0x5b
jne 0x40577d
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x405760
cmp word [ecx], 0x5c
jne 0x40575d
add ecx, 2
cmp ecx, eax
je 0x40575d
mov edx, dword [edi]
test dl, 8
jne 0x405747
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x40575b
cmp ebx, 0x29
je 0x40575b
test dl, 0x10
jne 0x40575d
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x40575b
cmp edx, 0x7d
jne 0x40575d
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404680
mov ecx, esi
call fcn.004063e0
cmp dword [esi + 0x4c], 0x5d
jne 0x4059d0
jmp 0x40595a
cmp ecx, 0x28
jne 0x40583e
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x4057cb
cmp word [ecx], 0x5c
jne 0x4057c8
add ecx, 2
cmp ecx, eax
je 0x4057c8
mov edx, dword [edi]
test dl, 8
jne 0x4057b2
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x4057c6
cmp ebx, 0x29
je 0x4057c6
test dl, 0x10
jne 0x4057c8
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x4057c6
cmp edx, 0x7d
jne 0x4057c8
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404680
mov ecx, esi
call fcn.00406680
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4059c9
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x40582a
cmp word [ecx], 0x5c
jne 0x405827
add ecx, 2
cmp ecx, edx
je 0x405827
mov edx, dword [edi]
test dl, 8
jne 0x405811
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x405825
cmp edi, 0x29
je 0x405825
test dl, 0x10
jne 0x405827
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x405825
cmp edx, 0x7d
jne 0x405827
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404680
test bl, bl
je 0x4059ad
jmp 0x4059a6
cmp ecx, 0x5e
jne 0x405855
push 0x14
call fcn.0040b577
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x40586e
cmp ecx, 0x24
jne 0x405905
push 0x14
call fcn.0040b577
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 0x4058ab
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 0x4058f9
cmp word [ecx], 0x5c
jne 0x4058f6
add ecx, 2
cmp ecx, eax
je 0x4058f6
mov edx, dword [edi]
test dl, 8
jne 0x4058e0
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x4058f4
cmp edi, 0x29
je 0x4058f4
test dl, 0x10
jne 0x4058f6
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x4058f4
cmp edx, 0x7d
jne 0x4058f6
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404680
jmp 0x4059ad
cmp ecx, 0x2a
je 0x4059c2
cmp ecx, 0x2b
je 0x4059c2
cmp ecx, 0x3f
je 0x4059c2
cmp ecx, 0x7b
je 0x4059c2
cmp ecx, 0x7d
jne 0x40593c
test dword [edi], 0x10000000
je 0x4059d7
jmp 0x40594d
cmp ecx, 0x5d
jne 0x40594d
test dword [edi], 0x10000000
je 0x4059d0
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00406b00
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x40599f
cmp word [ecx], 0x5c
jne 0x40599c
add ecx, 2
cmp ecx, eax
je 0x40599c
mov edx, dword [edi]
test dl, 8
jne 0x405986
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x40599a
cmp edi, 0x29
je 0x40599a
test dl, 0x10
jne 0x40599c
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x40599a
cmp edx, 0x7d
jne 0x40599c
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404680
mov ecx, esi
call fcn.004068d0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x405497
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00404670
push 5
call fcn.00404670
push 4
call fcn.00404670
push 6
call fcn.00404670
int3