Function at 0x10012a20
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10012d26
cmp eax, 0x7c
je 0x10012d26
cmp eax, 0x29
jne 0x10012a58
cmp dword [esi + 0x10], 0
jne 0x10012d26
test dword [esi + 0x50], 0x10000000
je 0x10012d2c
cmp eax, 0x2e
jne 0x10012aaf
push 5
lea ecx, [esi + 0x24]
call fcn.10012fd0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012aa3
cmp byte [eax], 0x5c
jne 0x10012aa1
inc eax
cmp eax, ecx
je 0x10012aa1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10012a8e
mov dl, byte [eax]
cmp dl, 0x28
je 0x10012a9f
cmp dl, 0x29
je 0x10012a9f
test cl, 0x10
jne 0x10012aa1
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012a9f
cmp cl, 0x7d
jne 0x10012aa1
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10010030
jmp 0x10012d11
cmp eax, 0x5c
jne 0x10012b90
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012af4
cmp byte [eax], 0x5c
jne 0x10012af2
inc eax
cmp eax, ecx
je 0x10012af2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10012adf
mov dl, byte [eax]
cmp dl, 0x28
je 0x10012af0
cmp dl, 0x29
je 0x10012af0
test cl, 0x10
jne 0x10012af2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012af0
cmp cl, 0x7d
jne 0x10012af2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10010030
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x10012b5d
cmp byte [esi + 0x48], 0x62
jne 0x10012b5d
push 4
lea ecx, [esi + 0x24]
call fcn.10012fd0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012b51
cmp byte [eax], 0x5c
jne 0x10012b4f
inc eax
cmp eax, ecx
je 0x10012b4f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10012b3c
mov cl, byte [eax]
cmp cl, 0x28
je 0x10012b4d
cmp cl, 0x29
je 0x10012b4d
test dl, 0x10
jne 0x10012b4f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012b4d
cmp cl, 0x7d
jne 0x10012b4f
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10010030
jmp 0x10012d18
test eax, eax
je 0x10012b84
cmp byte [esi + 0x48], 0x42
jne 0x10012b84
push 4
lea ecx, [esi + 0x24]
call fcn.10012fd0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.100129d0
jmp 0x10012d18
mov ecx, esi
call fcn.10014bf0
jmp 0x10012d11
cmp eax, 0x5b
jne 0x10012c35
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012bd5
cmp byte [eax], 0x5c
jne 0x10012bd3
inc eax
cmp eax, ecx
je 0x10012bd3
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10012bc0
mov dl, byte [eax]
cmp dl, 0x28
je 0x10012bd1
cmp dl, 0x29
je 0x10012bd1
test cl, 0x10
jne 0x10012bd3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012bd1
cmp cl, 0x7d
jne 0x10012bd3
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10010030
mov ecx, esi
call fcn.10014b80
cmp dword [esi + 0x4c], 0x5d
jne 0x10012d33
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012c29
cmp byte [eax], 0x5c
jne 0x10012c27
inc eax
cmp eax, ecx
je 0x10012c27
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10012c14
mov dl, byte [eax]
cmp dl, 0x28
je 0x10012c25
cmp dl, 0x29
je 0x10012c25
test cl, 0x10
jne 0x10012c27
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012c25
cmp cl, 0x7d
jne 0x10012c27
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10010030
jmp 0x10012d11
cmp eax, 0x28
jne 0x10012c9d
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012c76
cmp byte [eax], 0x5c
jne 0x10012c74
inc eax
cmp eax, ecx
je 0x10012c74
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10012c61
mov dl, byte [eax]
cmp dl, 0x28
je 0x10012c72
cmp dl, 0x29
je 0x10012c72
test cl, 0x10
jne 0x10012c74
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012c72
cmp cl, 0x7d
jne 0x10012c74
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10010030
mov ecx, esi
call fcn.10014cb0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10012d2c
mov ecx, esi
call fcn.100129d0
test bl, bl
je 0x10012d18
jmp 0x10012d11
cmp eax, 0x5e
jne 0x10012cb5
push 2
lea ecx, [esi + 0x24]
call fcn.10012fd0
mov ecx, esi
call fcn.100129d0
jmp 0x10012d18
cmp eax, 0x24
jne 0x10012ccd
push 3
lea ecx, [esi + 0x24]
call fcn.10012fd0
mov ecx, esi
call fcn.100129d0
jmp 0x10012d18
cmp eax, 0x2a
je 0x10012d41
cmp eax, 0x2b
je 0x10012d41
cmp eax, 0x3f
je 0x10012d41
cmp eax, 0x7b
je 0x10012d41
cmp eax, 0x7d
jne 0x10012cef
test dword [esi + 0x50], 0x10000000
je 0x10012d3a
cmp eax, 0x5d
jne 0x10012cfd
test dword [esi + 0x50], 0x10000000
je 0x10012d33
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10014ea0
mov ecx, esi
call fcn.100129d0
mov ecx, esi
call fcn.10014d70
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10012a33
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.10089ee9
push 4
call fcn.10089ee9
push 6
call fcn.10089ee9
push 0xa
call fcn.10089ee9
int3