Function at 0x40d6d0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40db37
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x40db37
cmp eax, 0x29
jne 0x40d710
cmp dword [esi + 0x10], 0
jne 0x40db37
test dword [esi + 0x50], 0x10000000
je 0x40db44
jmp 0x40dad0
cmp eax, 0x2e
jne 0x40d763
push 5
lea ecx, [esi + 0x24]
call fcn.0040db60
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40db18
cmp byte [eax], 0x5c
jne 0x40d91f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d91f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40d75b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40d91d
cmp dl, 0x29
je 0x40d91d
test bl, 0x10
jmp 0x40d90f
cmp eax, 0x5c
jne 0x40d881
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40d7aa
cmp byte [eax], 0x5c
jne 0x40d7a7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d7a7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40d794
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40d7a5
cmp dl, 0x29
je 0x40d7a5
test bl, 0x10
jne 0x40d7a7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d7a5
cmp dl, 0x7d
jne 0x40d7a7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040c590
test byte [esi + 0x50], 0x80
je 0x40d875
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x40d816
push 4
lea ecx, [esi + 0x24]
call fcn.0040db60
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40d80a
cmp byte [eax], 0x5c
jne 0x40d807
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d807
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40d7f4
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40d805
cmp dl, 0x29
je 0x40d805
test bl, 0x10
jne 0x40d807
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d805
cmp dl, 0x7d
jne 0x40d807
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040c590
jmp 0x40db29
cmp al, 0x42
jne 0x40d875
push 4
lea ecx, [esi + 0x24]
call fcn.0040db60
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40d869
cmp byte [eax], 0x5c
jne 0x40d866
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d866
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40d853
mov al, byte [ecx]
cmp al, 0x28
je 0x40d864
cmp al, 0x29
je 0x40d864
mov eax, dword [esi]
test dl, 0x10
jne 0x40d866
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d864
cmp dl, 0x7d
jne 0x40d866
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040c590
jmp 0x40db29
mov ecx, esi
call fcn.0040ebc0
jmp 0x40db1f
cmp eax, 0x5b
jne 0x40d927
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40d8c8
cmp byte [eax], 0x5c
jne 0x40d8c5
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d8c5
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40d8b2
mov al, byte [ecx]
cmp al, 0x28
je 0x40d8c3
cmp al, 0x29
je 0x40d8c3
mov eax, dword [esi]
test dl, 0x10
jne 0x40d8c5
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d8c3
cmp dl, 0x7d
jne 0x40d8c5
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040c590
mov ecx, esi
call fcn.0040ea90
cmp dword [esi + 0x4c], 0x5d
jne 0x40db52
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40db18
cmp byte [eax], 0x5c
jne 0x40d91f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d91f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40d90c
mov al, byte [ecx]
cmp al, 0x28
je 0x40d91d
cmp al, 0x29
je 0x40d91d
mov eax, dword [esi]
test dl, 0x10
jne 0x40d91f
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d91d
cmp dl, 0x7d
jne 0x40d91f
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x40db18
cmp eax, 0x28
jne 0x40d9da
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40d96e
cmp byte [eax], 0x5c
jne 0x40d96b
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d96b
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40d958
mov al, byte [ecx]
cmp al, 0x28
je 0x40d969
cmp al, 0x29
je 0x40d969
mov eax, dword [esi]
test dl, 0x10
jne 0x40d96b
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d969
cmp dl, 0x7d
jne 0x40d96b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040c590
mov ecx, esi
call fcn.0040ed10
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40db44
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40d9c6
cmp byte [eax], 0x5c
jne 0x40d9c3
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d9c3
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40d9b0
mov al, byte [ecx]
cmp al, 0x28
je 0x40d9c1
cmp al, 0x29
je 0x40d9c1
mov eax, dword [esi]
test dl, 0x10
jne 0x40d9c3
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d9c1
cmp dl, 0x7d
jne 0x40d9c3
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040c590
test bl, bl
je 0x40db29
jmp 0x40db1f
cmp eax, 0x5e
jne 0x40da30
push 2
lea ecx, [esi + 0x24]
call fcn.0040db60
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40da24
cmp byte [eax], 0x5c
jne 0x40da22
inc eax
cmp eax, ecx
je 0x40da22
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40da0f
mov dl, byte [eax]
cmp dl, 0x28
je 0x40da20
cmp dl, 0x29
je 0x40da20
test cl, 0x10
jne 0x40da22
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40da20
cmp cl, 0x7d
jne 0x40da22
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040c590
jmp 0x40db29
cmp eax, 0x24
jne 0x40da86
push 3
lea ecx, [esi + 0x24]
call fcn.0040db60
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40da7a
cmp byte [eax], 0x5c
jne 0x40da78
inc eax
cmp eax, ecx
je 0x40da78
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40da65
mov dl, byte [eax]
cmp dl, 0x28
je 0x40da76
cmp dl, 0x29
je 0x40da76
test cl, 0x10
jne 0x40da78
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40da76
cmp cl, 0x7d
jne 0x40da78
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040c590
jmp 0x40db29
cmp eax, 0x2a
je 0x40db3d
cmp eax, 0x2b
je 0x40db3d
cmp eax, 0x3f
je 0x40db3d
cmp eax, 0x7b
je 0x40db3d
cmp eax, 0x7d
jne 0x40dabe
test dword [esi + 0x50], 0x10000000
je 0x40db4b
jmp 0x40dad0
cmp eax, 0x5d
jne 0x40dad0
test dword [esi + 0x50], 0x10000000
je 0x40db52
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040f1c0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40db18
cmp byte [eax], 0x5c
jne 0x40db16
inc eax
cmp eax, ecx
je 0x40db16
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40db03
mov dl, byte [eax]
cmp dl, 0x28
je 0x40db14
cmp dl, 0x29
je 0x40db14
test cl, 0x10
jne 0x40db16
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40db14
cmp cl, 0x7d
jne 0x40db16
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040c590
mov ecx, esi
call fcn.0040ef90
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40d6e6
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.0040c580
push 5
call fcn.0040c580
push 6
call fcn.0040c580
push 4
call fcn.0040c580
int3