Function at 0x40d880
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40dcb4
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x40dcb2
cmp eax, 0x29
jne 0x40d8c0
cmp dword [esi + 0x10], 0
jne 0x40dcb2
test dword [esi + 0x50], 0x10000000
je 0x40dcc1
jmp 0x40dc4b
cmp eax, 0x2e
jne 0x40d916
push 5
lea ecx, [esi + 0x24]
call fcn.004100a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40dc93
cmp byte [eax], 0x5c
jne 0x40d90e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d90e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40d8fb
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40d90c
cmp dl, 0x29
je 0x40d90c
test bl, 0x10
jne 0x40d90e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d90c
cmp dl, 0x7d
jne 0x40d90e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x40dc93
cmp eax, 0x5c
jne 0x40da34
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40d95d
cmp byte [eax], 0x5c
jne 0x40d95a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d95a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40d947
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40d958
cmp dl, 0x29
je 0x40d958
test bl, 0x10
jne 0x40d95a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d958
cmp dl, 0x7d
jne 0x40d95a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004105f0
test byte [esi + 0x50], 0x80
je 0x40da28
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x40d9c9
push 4
lea ecx, [esi + 0x24]
call fcn.004100a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40d9bd
cmp byte [eax], 0x5c
jne 0x40d9ba
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40d9ba
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40d9a7
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40d9b8
cmp dl, 0x29
je 0x40d9b8
test bl, 0x10
jne 0x40d9ba
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40d9b8
cmp dl, 0x7d
jne 0x40d9ba
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004105f0
jmp 0x40dca4
cmp al, 0x42
jne 0x40da28
push 4
lea ecx, [esi + 0x24]
call fcn.004100a0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40da1c
cmp byte [eax], 0x5c
jne 0x40da19
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40da19
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40da06
mov al, byte [ecx]
cmp al, 0x28
je 0x40da17
cmp al, 0x29
je 0x40da17
mov eax, dword [esi]
test dl, 0x10
jne 0x40da19
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40da17
cmp dl, 0x7d
jne 0x40da19
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004105f0
jmp 0x40dca4
mov ecx, esi
call fcn.0040dce0
jmp 0x40dc9a
cmp eax, 0x5b
jne 0x40dade
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40da7b
cmp byte [eax], 0x5c
jne 0x40da78
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40da78
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40da65
mov al, byte [ecx]
cmp al, 0x28
je 0x40da76
cmp al, 0x29
je 0x40da76
mov eax, dword [esi]
test dl, 0x10
jne 0x40da78
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40da76
cmp dl, 0x7d
jne 0x40da78
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004105f0
lea ecx, [esi + 0x24]
call fcn.0040d130
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x40daa3
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00410110
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x40dac1
cmp eax, 0x5d
jne 0x40dac1
push eax
lea ecx, [esi + 0x24]
call fcn.0040d0c0
mov ecx, esi
call fcn.00410110
mov ecx, esi
call fcn.0040e590
cmp dword [esi + 0x4c], 0x5d
jne 0x40dcd3
mov ecx, esi
call fcn.00410110
jmp 0x40dc9a
cmp eax, 0x28
jne 0x40db4f
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40db21
cmp byte [eax], 0x5c
jne 0x40db1e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40db1e
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40db0b
mov al, byte [ecx]
cmp al, 0x28
je 0x40db1c
cmp al, 0x29
je 0x40db1c
mov eax, dword [esi]
test dl, 0x10
jne 0x40db1e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40db1c
cmp dl, 0x7d
jne 0x40db1e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004105f0
mov ecx, esi
call fcn.004107f0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40dcc1
mov ecx, esi
call fcn.00410110
test bl, bl
je 0x40dca4
jmp 0x40dc9a
cmp eax, 0x5e
jne 0x40dba8
push 2
lea ecx, [esi + 0x24]
call fcn.004100a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40db9c
cmp byte [eax], 0x5c
jne 0x40db99
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40db99
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40db86
mov al, byte [ecx]
cmp al, 0x28
je 0x40db97
cmp al, 0x29
je 0x40db97
mov eax, dword [esi]
test dl, 0x10
jne 0x40db99
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40db97
cmp dl, 0x7d
jne 0x40db99
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004105f0
jmp 0x40dca4
cmp eax, 0x24
jne 0x40dc01
push 3
lea ecx, [esi + 0x24]
call fcn.004100a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40dbf5
cmp byte [eax], 0x5c
jne 0x40dbf2
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40dbf2
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40dbdf
mov al, byte [ecx]
cmp al, 0x28
je 0x40dbf0
cmp al, 0x29
je 0x40dbf0
mov eax, dword [esi]
test dl, 0x10
jne 0x40dbf2
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40dbf0
cmp dl, 0x7d
jne 0x40dbf2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004105f0
jmp 0x40dca4
cmp eax, 0x2a
je 0x40dcb8
cmp eax, 0x2b
je 0x40dcb8
cmp eax, 0x3f
je 0x40dcb8
cmp eax, 0x7b
je 0x40dcb8
cmp eax, 0x7d
jne 0x40dc39
test dword [esi + 0x50], 0x10000000
je 0x40dcca
jmp 0x40dc4b
cmp eax, 0x5d
jne 0x40dc4b
test dword [esi + 0x50], 0x10000000
je 0x40dcd3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040cf10
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40dc93
cmp byte [eax], 0x5c
jne 0x40dc91
inc eax
cmp eax, ecx
je 0x40dc91
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40dc7e
mov dl, byte [eax]
cmp dl, 0x28
je 0x40dc8f
cmp dl, 0x29
je 0x40dc8f
test cl, 0x10
jne 0x40dc91
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40dc8f
cmp cl, 0x7d
jne 0x40dc91
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004105f0
mov ecx, esi
call fcn.00410170
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40d896
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.0040f3c0
push 5
mov ecx, esi
call fcn.0040f3c0
push 6
mov ecx, esi
call fcn.0040f3c0
push 4
mov ecx, esi
call fcn.0040f3c0
int3