Function at 0x40cc40
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, eax
xor ebx, ebx
xor al, al
cmp dword [edi + 0x40], 0xffffffff
je 0x40cf9d
jmp 0x40cc57
xor ebx, ebx
mov ecx, dword [edi + 0x40]
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x40cf9d
cmp ecx, 0x29
jne 0x40cc8a
cmp dword [edi + 0x10], ebx
jne 0x40cf9d
test dword [edi + 0x44], edx
jne 0x40cc8a
push 5
call fcn.004203c6
add esp, 4
jmp 0x40cf8a
cmp ecx, 0x2e
jne 0x40cd27
push 0x14
call fcn.0042101c
add esp, 4
cmp eax, ebx
je 0x40ccb9
mov dword [eax], vtable.std::tr1::_Node_base.0
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x40ccbb
xor eax, eax
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x40ccd7
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40cd1b
cmp byte [eax], 0x5c
jne 0x40cd19
inc eax
cmp eax, ecx
je 0x40cd05
test byte [edi + 0x44], 8
jne 0x40cd05
mov cl, byte [eax]
cmp cl, 0x28
je 0x40cd17
cmp cl, 0x29
je 0x40cd17
test byte [edi + 0x44], 0x10
jne 0x40cd19
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40cd17
cmp cl, 0x7d
jne 0x40cd19
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040b7e0
jmp 0x40cf8a
cmp ecx, 0x5c
jne 0x40ce3d
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40cd6b
cmp byte [eax], 0x5c
jne 0x40cd69
inc eax
cmp eax, ecx
je 0x40cd55
test byte [edi + 0x44], 8
jne 0x40cd55
mov cl, byte [eax]
cmp cl, 0x28
je 0x40cd67
cmp cl, 0x29
je 0x40cd67
test byte [edi + 0x44], 0x10
jne 0x40cd69
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40cd67
cmp cl, 0x7d
jne 0x40cd69
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040b7e0
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40cdd1
cmp byte [edi + 0x3e], 0x62
jne 0x40cdd1
lea esi, [edi + 0x18]
call fcn.0040e280
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40cdc5
cmp byte [eax], 0x5c
jne 0x40cdc3
inc eax
cmp eax, ecx
je 0x40cdaf
test byte [edi + 0x44], 8
jne 0x40cdaf
mov cl, byte [eax]
cmp cl, 0x28
je 0x40cdc1
cmp cl, 0x29
je 0x40cdc1
test byte [edi + 0x44], 0x10
jne 0x40cdc3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40cdc1
cmp cl, 0x7d
jne 0x40cdc3
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040b7e0
jmp 0x40cf91
cmp eax, ebx
je 0x40ce31
cmp byte [edi + 0x3e], 0x42
jne 0x40ce31
lea esi, [edi + 0x18]
call fcn.0040e280
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ce25
cmp byte [eax], 0x5c
jne 0x40ce23
inc eax
cmp eax, ecx
je 0x40ce0f
test byte [edi + 0x44], 8
jne 0x40ce0f
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ce21
cmp cl, 0x29
je 0x40ce21
test byte [edi + 0x44], 0x10
jne 0x40ce23
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ce21
cmp cl, 0x7d
jne 0x40ce23
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040b7e0
jmp 0x40cf91
mov eax, edi
call fcn.0040df40
jmp 0x40cf8a
cmp ecx, 0x5b
jne 0x40cee2
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ce81
cmp byte [eax], 0x5c
jne 0x40ce7f
inc eax
cmp eax, ecx
je 0x40ce6b
test byte [edi + 0x44], 8
jne 0x40ce6b
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ce7d
cmp cl, 0x29
je 0x40ce7d
test byte [edi + 0x44], 0x10
jne 0x40ce7f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ce7d
cmp cl, 0x7d
jne 0x40ce7f
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040b7e0
call fcn.0040de90
cmp dword [edi + 0x40], 0x5d
je 0x40ce9d
push 4
call fcn.004203c6
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ced8
cmp byte [eax], 0x5c
jne 0x40ced6
inc eax
cmp eax, ecx
je 0x40cec2
test byte [edi + 0x44], 8
jne 0x40cec2
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ced4
cmp cl, 0x29
je 0x40ced4
test byte [edi + 0x44], 0x10
jne 0x40ced6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ced4
cmp cl, 0x7d
jne 0x40ced6
mov dword [edi], eax
inc dword [edi]
call fcn.0040b7e0
jmp 0x40cf8a
cmp ecx, 0x28
jne 0x40cfa1
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40cf26
cmp byte [eax], 0x5c
jne 0x40cf24
inc eax
cmp eax, ecx
je 0x40cf10
test byte [edi + 0x44], 8
jne 0x40cf10
mov cl, byte [eax]
cmp cl, 0x28
je 0x40cf22
cmp cl, 0x29
je 0x40cf22
test byte [edi + 0x44], 0x10
jne 0x40cf24
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40cf22
cmp cl, 0x7d
jne 0x40cf24
mov dword [edi], eax
inc dword [edi]
mov esi, edi
call fcn.0040b7e0
mov eax, edi
call fcn.0040e000
cmp dword [edi + 0x40], 0x29
mov bl, al
je 0x40cf46
push 5
call fcn.004203c6
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40cf81
cmp byte [eax], 0x5c
jne 0x40cf7f
inc eax
cmp eax, ecx
je 0x40cf6b
test byte [edi + 0x44], 8
jne 0x40cf6b
mov cl, byte [eax]
cmp cl, 0x28
je 0x40cf7d
cmp cl, 0x29
je 0x40cf7d
test byte [edi + 0x44], 0x10
jne 0x40cf7f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40cf7d
cmp cl, 0x7d
jne 0x40cf7f
mov dword [edi], eax
inc dword [edi]
call fcn.0040b7e0
test bl, bl
je 0x40cf91
mov eax, edi
call fcn.0040e0b0
cmp dword [edi + 0x40], 0xffffffff
mov al, 1
jne 0x40cc55
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x40cfb7
lea esi, [edi + 0x18]
call fcn.0040e1e0
mov eax, edi
call fcn.0040cbf0
jmp 0x40cf91
cmp ecx, 0x24
jne 0x40cfcd
lea esi, [edi + 0x18]
call fcn.0040e230
mov eax, edi
call fcn.0040cbf0
jmp 0x40cf91
cmp ecx, 0x2a
je 0x40d029
cmp ecx, 0x2b
je 0x40d029
cmp ecx, 0x3f
je 0x40d029
cmp ecx, 0x7b
je 0x40d029
cmp ecx, 0x7d
jne 0x40cff7
test dword [edi + 0x44], edx
jne 0x40cff7
push 6
call fcn.004203c6
add esp, 4
jmp 0x40cf8a
cmp ecx, 0x5d
jne 0x40d010
test dword [edi + 0x44], edx
jne 0x40d010
push 4
call fcn.004203c6
add esp, 4
jmp 0x40cf8a
movzx edx, byte [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.0040e2d0
mov eax, edi
call fcn.0040cbf0
jmp 0x40cf8a
push 0xa
call fcn.004203c6
add esp, 4
jmp 0x40cf8a