Function at 0x40eb10
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40ef44
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x40ef42
cmp eax, 0x29
jne 0x40eb50
cmp dword [esi + 0x10], 0
jne 0x40ef42
test dword [esi + 0x50], 0x10000000
je 0x40ef51
jmp 0x40eedb
cmp eax, 0x2e
jne 0x40eba6
push 5
lea ecx, [esi + 0x24]
call fcn.00411070
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ef23
cmp byte [eax], 0x5c
jne 0x40eb9e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40eb9e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40eb8b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40eb9c
cmp dl, 0x29
je 0x40eb9c
test bl, 0x10
jne 0x40eb9e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40eb9c
cmp dl, 0x7d
jne 0x40eb9e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x40ef23
cmp eax, 0x5c
jne 0x40ecc4
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ebed
cmp byte [eax], 0x5c
jne 0x40ebea
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40ebea
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40ebd7
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40ebe8
cmp dl, 0x29
je 0x40ebe8
test bl, 0x10
jne 0x40ebea
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40ebe8
cmp dl, 0x7d
jne 0x40ebea
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411590
test byte [esi + 0x50], 0x80
je 0x40ecb8
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x40ec59
push 4
lea ecx, [esi + 0x24]
call fcn.00411070
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ec4d
cmp byte [eax], 0x5c
jne 0x40ec4a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40ec4a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40ec37
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40ec48
cmp dl, 0x29
je 0x40ec48
test bl, 0x10
jne 0x40ec4a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40ec48
cmp dl, 0x7d
jne 0x40ec4a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411590
jmp 0x40ef34
cmp al, 0x42
jne 0x40ecb8
push 4
lea ecx, [esi + 0x24]
call fcn.00411070
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ecac
cmp byte [eax], 0x5c
jne 0x40eca9
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40eca9
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40ec96
mov al, byte [ecx]
cmp al, 0x28
je 0x40eca7
cmp al, 0x29
je 0x40eca7
mov eax, dword [esi]
test dl, 0x10
jne 0x40eca9
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40eca7
cmp dl, 0x7d
jne 0x40eca9
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411590
jmp 0x40ef34
mov ecx, esi
call fcn.0040ef70
jmp 0x40ef2a
cmp eax, 0x5b
jne 0x40ed6e
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ed0b
cmp byte [eax], 0x5c
jne 0x40ed08
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40ed08
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40ecf5
mov al, byte [ecx]
cmp al, 0x28
je 0x40ed06
cmp al, 0x29
je 0x40ed06
mov eax, dword [esi]
test dl, 0x10
jne 0x40ed08
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40ed06
cmp dl, 0x7d
jne 0x40ed08
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411590
lea ecx, [esi + 0x24]
call fcn.0040e3b0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x40ed33
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.004110e0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x40ed51
cmp eax, 0x5d
jne 0x40ed51
push eax
lea ecx, [esi + 0x24]
call fcn.0040e340
mov ecx, esi
call fcn.004110e0
mov ecx, esi
call fcn.0040f7c0
cmp dword [esi + 0x4c], 0x5d
jne 0x40ef63
mov ecx, esi
call fcn.004110e0
jmp 0x40ef2a
cmp eax, 0x28
jne 0x40eddf
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40edb1
cmp byte [eax], 0x5c
jne 0x40edae
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40edae
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40ed9b
mov al, byte [ecx]
cmp al, 0x28
je 0x40edac
cmp al, 0x29
je 0x40edac
mov eax, dword [esi]
test dl, 0x10
jne 0x40edae
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40edac
cmp dl, 0x7d
jne 0x40edae
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411590
mov ecx, esi
call fcn.00411790
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40ef51
mov ecx, esi
call fcn.004110e0
test bl, bl
je 0x40ef34
jmp 0x40ef2a
cmp eax, 0x5e
jne 0x40ee38
push 2
lea ecx, [esi + 0x24]
call fcn.00411070
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ee2c
cmp byte [eax], 0x5c
jne 0x40ee29
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40ee29
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40ee16
mov al, byte [ecx]
cmp al, 0x28
je 0x40ee27
cmp al, 0x29
je 0x40ee27
mov eax, dword [esi]
test dl, 0x10
jne 0x40ee29
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40ee27
cmp dl, 0x7d
jne 0x40ee29
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411590
jmp 0x40ef34
cmp eax, 0x24
jne 0x40ee91
push 3
lea ecx, [esi + 0x24]
call fcn.00411070
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40ee85
cmp byte [eax], 0x5c
jne 0x40ee82
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40ee82
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40ee6f
mov al, byte [ecx]
cmp al, 0x28
je 0x40ee80
cmp al, 0x29
je 0x40ee80
mov eax, dword [esi]
test dl, 0x10
jne 0x40ee82
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40ee80
cmp dl, 0x7d
jne 0x40ee82
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00411590
jmp 0x40ef34
cmp eax, 0x2a
je 0x40ef48
cmp eax, 0x2b
je 0x40ef48
cmp eax, 0x3f
je 0x40ef48
cmp eax, 0x7b
je 0x40ef48
cmp eax, 0x7d
jne 0x40eec9
test dword [esi + 0x50], 0x10000000
je 0x40ef5a
jmp 0x40eedb
cmp eax, 0x5d
jne 0x40eedb
test dword [esi + 0x50], 0x10000000
je 0x40ef63
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040e190
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40ef23
cmp byte [eax], 0x5c
jne 0x40ef21
inc eax
cmp eax, ecx
je 0x40ef21
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40ef0e
mov dl, byte [eax]
cmp dl, 0x28
je 0x40ef1f
cmp dl, 0x29
je 0x40ef1f
test cl, 0x10
jne 0x40ef21
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40ef1f
cmp cl, 0x7d
jne 0x40ef21
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00411590
mov ecx, esi
call fcn.00411140
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40eb26
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.004105f0
push 5
mov ecx, esi
call fcn.004105f0
push 6
mov ecx, esi
call fcn.004105f0
push 4
mov ecx, esi
call fcn.004105f0
int3