Function at 0x40bd80
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40c1b4
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x40c1b2
cmp eax, 0x29
jne 0x40bdc0
cmp dword [esi + 0x10], 0
jne 0x40c1b2
test dword [esi + 0x50], 0x10000000
je 0x40c1c1
jmp 0x40c14b
cmp eax, 0x2e
jne 0x40be16
push 5
lea ecx, [esi + 0x24]
call fcn.0040e6d0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40c193
cmp byte [eax], 0x5c
jne 0x40be0e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40be0e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40bdfb
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40be0c
cmp dl, 0x29
je 0x40be0c
test bl, 0x10
jne 0x40be0e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40be0c
cmp dl, 0x7d
jne 0x40be0e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x40c193
cmp eax, 0x5c
jne 0x40bf34
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40be5d
cmp byte [eax], 0x5c
jne 0x40be5a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40be5a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40be47
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40be58
cmp dl, 0x29
je 0x40be58
test bl, 0x10
jne 0x40be5a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40be58
cmp dl, 0x7d
jne 0x40be5a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040eaf0
test byte [esi + 0x50], 0x80
je 0x40bf28
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x40bec9
push 4
lea ecx, [esi + 0x24]
call fcn.0040e6d0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40bebd
cmp byte [eax], 0x5c
jne 0x40beba
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40beba
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40bea7
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40beb8
cmp dl, 0x29
je 0x40beb8
test bl, 0x10
jne 0x40beba
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40beb8
cmp dl, 0x7d
jne 0x40beba
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040eaf0
jmp 0x40c1a4
cmp al, 0x42
jne 0x40bf28
push 4
lea ecx, [esi + 0x24]
call fcn.0040e6d0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40bf1c
cmp byte [eax], 0x5c
jne 0x40bf19
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40bf19
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40bf06
mov al, byte [ecx]
cmp al, 0x28
je 0x40bf17
cmp al, 0x29
je 0x40bf17
mov eax, dword [esi]
test dl, 0x10
jne 0x40bf19
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40bf17
cmp dl, 0x7d
jne 0x40bf19
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040eaf0
jmp 0x40c1a4
mov ecx, esi
call fcn.0040c200
jmp 0x40c19a
cmp eax, 0x5b
jne 0x40bfde
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40bf7b
cmp byte [eax], 0x5c
jne 0x40bf78
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40bf78
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40bf65
mov al, byte [ecx]
cmp al, 0x28
je 0x40bf76
cmp al, 0x29
je 0x40bf76
mov eax, dword [esi]
test dl, 0x10
jne 0x40bf78
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40bf76
cmp dl, 0x7d
jne 0x40bf78
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040eaf0
lea ecx, [esi + 0x24]
call fcn.0040b3b0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x40bfa3
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.0040e750
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x40bfc1
cmp eax, 0x5d
jne 0x40bfc1
push eax
lea ecx, [esi + 0x24]
call fcn.0040b340
mov ecx, esi
call fcn.0040e750
mov ecx, esi
call fcn.0040ca60
cmp dword [esi + 0x4c], 0x5d
jne 0x40c1d3
mov ecx, esi
call fcn.0040e750
jmp 0x40c19a
cmp eax, 0x28
jne 0x40c04f
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40c021
cmp byte [eax], 0x5c
jne 0x40c01e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40c01e
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40c00b
mov al, byte [ecx]
cmp al, 0x28
je 0x40c01c
cmp al, 0x29
je 0x40c01c
mov eax, dword [esi]
test dl, 0x10
jne 0x40c01e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40c01c
cmp dl, 0x7d
jne 0x40c01e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040eaf0
mov ecx, esi
call fcn.0040ed30
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40c1c1
mov ecx, esi
call fcn.0040e750
test bl, bl
je 0x40c1a4
jmp 0x40c19a
cmp eax, 0x5e
jne 0x40c0a8
push 2
lea ecx, [esi + 0x24]
call fcn.0040e6d0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40c09c
cmp byte [eax], 0x5c
jne 0x40c099
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40c099
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40c086
mov al, byte [ecx]
cmp al, 0x28
je 0x40c097
cmp al, 0x29
je 0x40c097
mov eax, dword [esi]
test dl, 0x10
jne 0x40c099
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40c097
cmp dl, 0x7d
jne 0x40c099
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040eaf0
jmp 0x40c1a4
cmp eax, 0x24
jne 0x40c101
push 3
lea ecx, [esi + 0x24]
call fcn.0040e6d0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40c0f5
cmp byte [eax], 0x5c
jne 0x40c0f2
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40c0f2
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40c0df
mov al, byte [ecx]
cmp al, 0x28
je 0x40c0f0
cmp al, 0x29
je 0x40c0f0
mov eax, dword [esi]
test dl, 0x10
jne 0x40c0f2
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40c0f0
cmp dl, 0x7d
jne 0x40c0f2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040eaf0
jmp 0x40c1a4
cmp eax, 0x2a
je 0x40c1b8
cmp eax, 0x2b
je 0x40c1b8
cmp eax, 0x3f
je 0x40c1b8
cmp eax, 0x7b
je 0x40c1b8
cmp eax, 0x7d
jne 0x40c139
test dword [esi + 0x50], 0x10000000
je 0x40c1ca
jmp 0x40c14b
cmp eax, 0x5d
jne 0x40c14b
test dword [esi + 0x50], 0x10000000
je 0x40c1d3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040b180
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40c193
cmp byte [eax], 0x5c
jne 0x40c191
inc eax
cmp eax, ecx
je 0x40c191
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40c17e
mov dl, byte [eax]
cmp dl, 0x28
je 0x40c18f
cmp dl, 0x29
je 0x40c18f
test cl, 0x10
jne 0x40c191
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40c18f
cmp cl, 0x7d
jne 0x40c191
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040eaf0
mov ecx, esi
call fcn.0040e7b0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40bd96
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.0040db50
push 5
mov ecx, esi
call fcn.0040db50
push 6
mov ecx, esi
call fcn.0040db50
push 4
mov ecx, esi
call fcn.0040db50
int3