Function at 0x40e7a0
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40ea14
cmp eax, 0x7c
je 0x40ea14
cmp eax, 0x29
jne 0x40e7de
cmp dword [esi + 0x10], 0
jne 0x40ea14
test dword [esi + 0x50], 0x10000000
je 0x40ea24
jmp 0x40e923
cmp eax, 0x2e
jne 0x40e7f2
push 5
lea ecx, [esi + 0x24]
call fcn.00411850
jmp 0x40e930
cmp eax, 0x5c
jne 0x40e84e
mov ecx, esi
call fcn.004118c0
test byte [esi + 0x50], 0x80
je 0x40e842
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x40e821
push 4
lea ecx, [esi + 0x24]
call fcn.00411850
mov ecx, esi
call fcn.004118c0
jmp 0x40ea06
cmp al, 0x42
jne 0x40e842
push 4
lea ecx, [esi + 0x24]
call fcn.00411850
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.004118c0
jmp 0x40ea06
mov ecx, esi
call fcn.0040ea50
jmp 0x40e937
cmp eax, 0x5b
jne 0x40e870
mov ecx, esi
call fcn.004118c0
mov ecx, esi
call fcn.0040ef80
cmp dword [esi + 0x4c], 0x5d
jne 0x40ea2d
jmp 0x40e930
cmp eax, 0x28
jne 0x40e8a3
mov ecx, esi
call fcn.004118c0
mov ecx, esi
call fcn.00412760
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40ea24
mov ecx, esi
call fcn.004118c0
test bl, bl
je 0x40ea06
jmp 0x40e937
cmp eax, 0x5e
jne 0x40e8be
push 2
lea ecx, [esi + 0x24]
call fcn.00411850
mov ecx, esi
call fcn.004118c0
jmp 0x40ea06
cmp eax, 0x24
jne 0x40e8d9
push 3
lea ecx, [esi + 0x24]
call fcn.00411850
mov ecx, esi
call fcn.004118c0
jmp 0x40ea06
cmp eax, 0x2a
je 0x40ea1b
cmp eax, 0x2b
je 0x40ea1b
cmp eax, 0x3f
je 0x40ea1b
cmp eax, 0x7b
je 0x40ea1b
cmp eax, 0x7d
jne 0x40e911
test dword [esi + 0x50], 0x10000000
je 0x40ea36
jmp 0x40e923
cmp eax, 0x5d
jne 0x40e923
test dword [esi + 0x50], 0x10000000
je 0x40ea2d
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040dd90
mov ecx, esi
call fcn.004118c0
mov eax, dword [esi + 0x4c]
xor ebx, ebx
or edi, 0xffffffff
cmp eax, 0x2a
je 0x40e9c8
cmp eax, 0x2b
jne 0x40e952
lea ebx, [edi + 2]
jmp 0x40e9c8
cmp eax, 0x3f
jne 0x40e95c
lea edi, [eax - 0x3e]
jmp 0x40e9c8
cmp eax, 0x7b
jne 0x40ea06
mov ecx, esi
call fcn.004118c0
push 7
push 0x7fffffff
push 0xa
mov ecx, esi
call fcn.0040fa10
cmp eax, 0x7fffffff
je 0x40ea3f
cmp dword [esi + 0x4c], 0x2c
mov ebx, dword [esi + 0x44]
je 0x40e994
mov edi, ebx
jmp 0x40e9b5
mov ecx, esi
call fcn.004118c0
cmp dword [esi + 0x4c], 0x7d
je 0x40e9bf
push 7
mov ecx, esi
call fcn.0040f550
test al, al
je 0x40ea3f
mov edi, dword [esi + 0x44]
cmp dword [esi + 0x4c], 0x7d
jne 0x40ea3f
cmp edi, 0xffffffff
je 0x40e9c8
cmp edi, ebx
jl 0x40ea3f
mov eax, dword [esi + 0x28]
mov ecx, esi
or dword [eax + 8], 4
call fcn.004118c0
test dword [esi + 0x50], 0x400
je 0x40e9f3
cmp dword [esi + 0x4c], 0x3f
jne 0x40e9f3
mov ecx, esi
mov byte [esp + 0xc], 0
call fcn.004118c0
jmp 0x40e9f8
mov byte [esp + 0xc], 1
push dword [esp + 0xc]
lea ecx, [esi + 0x24]
push edi
push ebx
call fcn.0040e420
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40e7b4
pop edi
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 0xa
mov ecx, esi
call fcn.00410380
push 5
mov ecx, esi
call fcn.00410380
push 4
mov ecx, esi
call fcn.00410380
push 6
mov ecx, esi
call fcn.00410380
push 7
mov ecx, esi
call fcn.00410380
int3