Function at 0x405a30
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x405cbd
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x405cbd
cmp eax, 0x29
jne 0x405a69
cmp dword [esi + 0x10], 0
jne 0x405cbd
test dword [esi + 0x50], 0x10000000
je 0x405cc3
cmp eax, 0x2e
jne 0x405ac0
push 5
lea ecx, [esi + 0x24]
call fcn.00405ea0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x405ab4
cmp byte [eax], 0x5c
jne 0x405ab2
inc eax
cmp eax, ecx
je 0x405ab2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x405a9f
mov dl, byte [eax]
cmp dl, 0x28
je 0x405ab0
cmp dl, 0x29
je 0x405ab0
test cl, 0x10
jne 0x405ab2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405ab0
cmp cl, 0x7d
jne 0x405ab2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004048a0
jmp 0x405caa
cmp eax, 0x5c
jne 0x405b65
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x405b05
cmp byte [eax], 0x5c
jne 0x405b03
inc eax
cmp eax, ecx
je 0x405b03
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x405af0
mov dl, byte [eax]
cmp dl, 0x28
je 0x405b01
cmp dl, 0x29
je 0x405b01
test cl, 0x10
jne 0x405b03
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405b01
cmp cl, 0x7d
jne 0x405b03
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004048a0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x405b32
cmp byte [esi + 0x48], 0x62
jne 0x405b32
push 4
lea ecx, [esi + 0x24]
call fcn.00405ea0
mov ecx, esi
call fcn.004059e0
jmp 0x405cb1
test eax, eax
je 0x405b59
cmp byte [esi + 0x48], 0x42
jne 0x405b59
push 4
lea ecx, [esi + 0x24]
call fcn.00405ea0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.004059e0
jmp 0x405cb1
mov ecx, esi
call fcn.00406a20
jmp 0x405caa
cmp eax, 0x5b
jne 0x405bca
mov ecx, esi
call fcn.004059e0
mov ecx, esi
call fcn.00406940
cmp dword [esi + 0x4c], 0x5d
jne 0x405cca
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x405bbe
cmp byte [eax], 0x5c
jne 0x405bbc
inc eax
cmp eax, ecx
je 0x405bbc
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x405ba9
mov dl, byte [eax]
cmp dl, 0x28
je 0x405bba
cmp dl, 0x29
je 0x405bba
test cl, 0x10
jne 0x405bbc
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405bba
cmp cl, 0x7d
jne 0x405bbc
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004048a0
jmp 0x405caa
cmp eax, 0x28
jne 0x405c36
mov ecx, esi
call fcn.004059e0
mov ecx, esi
call fcn.00406bb0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x405cc3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x405c25
cmp byte [eax], 0x5c
jne 0x405c23
inc eax
cmp eax, ecx
je 0x405c23
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x405c10
mov dl, byte [eax]
cmp dl, 0x28
je 0x405c21
cmp dl, 0x29
je 0x405c21
test cl, 0x10
jne 0x405c23
mov cl, byte [eax]
cmp cl, 0x7b
je 0x405c21
cmp cl, 0x7d
jne 0x405c23
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004048a0
test bl, bl
je 0x405cb1
jmp 0x405caa
cmp eax, 0x5e
jne 0x405c4e
push 2
lea ecx, [esi + 0x24]
call fcn.00405ea0
mov ecx, esi
call fcn.004059e0
jmp 0x405cb1
cmp eax, 0x24
jne 0x405c66
push 3
lea ecx, [esi + 0x24]
call fcn.00405ea0
mov ecx, esi
call fcn.004059e0
jmp 0x405cb1
cmp eax, 0x2a
je 0x405cd8
cmp eax, 0x2b
je 0x405cd8
cmp eax, 0x3f
je 0x405cd8
cmp eax, 0x7b
je 0x405cd8
cmp eax, 0x7d
jne 0x405c88
test dword [esi + 0x50], 0x10000000
je 0x405cd1
cmp eax, 0x5d
jne 0x405c96
test dword [esi + 0x50], 0x10000000
je 0x405cca
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00406de0
mov ecx, esi
call fcn.004059e0
mov ecx, esi
call fcn.00406cb0
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x405a41
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.00456d0a
push 4
call fcn.00456d0a
push 6
call fcn.00456d0a
push 0xa
call fcn.00456d0a
int3