Function at 0x40e840
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ebx
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x40ebed
jmp 0x40e860
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x40ebed
cmp eax, 0x29
jne 0x40e888
cmp dword [esi + 0x10], 0
jne 0x40ebed
test dword [esi + 0x50], 0x10000000
je 0x40ebf5
cmp eax, 0x2e
jne 0x40e942
push 0x14
call fcn.004c4200
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x40e8d3
xorps xmm0, xmm0
movdqu xmmword [ecx], xmm0
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 dword [ecx + 0x10], 0
jmp 0x40e8d5
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40e8f1
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]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e936
cmp byte [eax], 0x5c
jne 0x40e934
inc eax
cmp eax, ecx
je 0x40e934
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40e921
mov dl, byte [eax]
cmp dl, 0x28
je 0x40e932
cmp dl, 0x29
je 0x40e932
test cl, 0x10
jne 0x40e934
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e932
cmp cl, 0x7d
jne 0x40e934
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040e2e0
jmp 0x40ebda
cmp eax, 0x5c
jne 0x40ea5f
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e987
cmp byte [eax], 0x5c
jne 0x40e985
inc eax
cmp eax, ecx
je 0x40e985
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40e972
mov dl, byte [eax]
cmp dl, 0x28
je 0x40e983
cmp dl, 0x29
je 0x40e983
test cl, 0x10
jne 0x40e985
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e983
cmp cl, 0x7d
jne 0x40e985
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040e2e0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x40e9f0
cmp byte [esi + 0x48], 0x62
jne 0x40e9f0
push 4
lea ecx, [esi + 0x24]
call fcn.0040ee10
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40e9e4
cmp byte [eax], 0x5c
jne 0x40e9e2
inc eax
cmp eax, ecx
je 0x40e9e2
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40e9cf
mov cl, byte [eax]
cmp cl, 0x28
je 0x40e9e0
cmp cl, 0x29
je 0x40e9e0
test dl, 0x10
jne 0x40e9e2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40e9e0
cmp cl, 0x7d
jne 0x40e9e2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040e2e0
jmp 0x40ebe1
test eax, eax
je 0x40ea53
cmp byte [esi + 0x48], 0x42
jne 0x40ea53
push 4
lea ecx, [esi + 0x24]
call fcn.0040ee10
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40ea47
cmp byte [eax], 0x5c
jne 0x40ea45
inc eax
cmp eax, ecx
je 0x40ea45
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40ea32
mov cl, byte [eax]
cmp cl, 0x28
je 0x40ea43
cmp cl, 0x29
je 0x40ea43
test dl, 0x10
jne 0x40ea45
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ea43
cmp cl, 0x7d
jne 0x40ea45
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040e2e0
jmp 0x40ebe1
mov ecx, esi
call fcn.0040efb0
jmp 0x40ebda
cmp eax, 0x5b
jne 0x40eb04
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40eaa4
cmp byte [eax], 0x5c
jne 0x40eaa2
inc eax
cmp eax, ecx
je 0x40eaa2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40ea8f
mov dl, byte [eax]
cmp dl, 0x28
je 0x40eaa0
cmp dl, 0x29
je 0x40eaa0
test cl, 0x10
jne 0x40eaa2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40eaa0
cmp cl, 0x7d
jne 0x40eaa2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040e2e0
mov ecx, esi
call fcn.0040eef0
cmp dword [esi + 0x4c], 0x5d
jne 0x40ebfc
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40eaf8
cmp byte [eax], 0x5c
jne 0x40eaf6
inc eax
cmp eax, ecx
je 0x40eaf6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40eae3
mov dl, byte [eax]
cmp dl, 0x28
je 0x40eaf4
cmp dl, 0x29
je 0x40eaf4
test cl, 0x10
jne 0x40eaf6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40eaf4
cmp cl, 0x7d
jne 0x40eaf6
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040e2e0
jmp 0x40ebda
cmp eax, 0x28
jne 0x40eb66
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40eb45
cmp byte [eax], 0x5c
jne 0x40eb43
inc eax
cmp eax, ecx
je 0x40eb43
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40eb30
mov dl, byte [eax]
cmp dl, 0x28
je 0x40eb41
cmp dl, 0x29
je 0x40eb41
test cl, 0x10
jne 0x40eb43
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40eb41
cmp cl, 0x7d
jne 0x40eb43
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040e2e0
mov ecx, esi
call fcn.0040f080
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.0040ee90
test bl, bl
je 0x40ebe1
jmp 0x40ebda
cmp eax, 0x5e
jne 0x40eb7e
push 2
lea ecx, [esi + 0x24]
call fcn.0040ee10
mov ecx, esi
call fcn.0040e7f0
jmp 0x40ebe1
cmp eax, 0x24
jne 0x40eb96
push 3
lea ecx, [esi + 0x24]
call fcn.0040ee10
mov ecx, esi
call fcn.0040e7f0
jmp 0x40ebe1
cmp eax, 0x2a
je 0x40ec0a
cmp eax, 0x2b
je 0x40ec0a
cmp eax, 0x3f
je 0x40ec0a
cmp eax, 0x7b
je 0x40ec0a
cmp eax, 0x7d
jne 0x40ebb8
test dword [esi + 0x50], 0x10000000
je 0x40ec03
cmp eax, 0x5d
jne 0x40ebc6
test dword [esi + 0x50], 0x10000000
je 0x40ebfc
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040f270
mov ecx, esi
call fcn.0040e7f0
mov ecx, esi
call fcn.0040f140
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x40e860
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 5
call fcn.0058cb6f
push 4
call fcn.0058cb6f
push 6
call fcn.0058cb6f
push 0xa
call fcn.0058cb6f
int3