Function at 0x100128a0
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 0x10012ba6
cmp eax, 0x7c
je 0x10012ba6
cmp eax, 0x29
jne 0x100128d8
cmp dword [esi + 0x10], 0
jne 0x10012ba6
test dword [esi + 0x50], 0x10000000
je 0x10012bac
cmp eax, 0x2e
jne 0x1001292f
push 5
lea ecx, [esi + 0x24]
call fcn.10012e50
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012923
cmp byte [eax], 0x5c
jne 0x10012921
inc eax
cmp eax, ecx
je 0x10012921
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001290e
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001291f
cmp dl, 0x29
je 0x1001291f
test cl, 0x10
jne 0x10012921
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001291f
cmp cl, 0x7d
jne 0x10012921
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000feb0
jmp 0x10012b91
cmp eax, 0x5c
jne 0x10012a10
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012974
cmp byte [eax], 0x5c
jne 0x10012972
inc eax
cmp eax, ecx
je 0x10012972
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001295f
mov dl, byte [eax]
cmp dl, 0x28
je 0x10012970
cmp dl, 0x29
je 0x10012970
test cl, 0x10
jne 0x10012972
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012970
cmp cl, 0x7d
jne 0x10012972
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000feb0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x100129dd
cmp byte [esi + 0x48], 0x62
jne 0x100129dd
push 4
lea ecx, [esi + 0x24]
call fcn.10012e50
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100129d1
cmp byte [eax], 0x5c
jne 0x100129cf
inc eax
cmp eax, ecx
je 0x100129cf
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x100129bc
mov cl, byte [eax]
cmp cl, 0x28
je 0x100129cd
cmp cl, 0x29
je 0x100129cd
test dl, 0x10
jne 0x100129cf
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100129cd
cmp cl, 0x7d
jne 0x100129cf
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000feb0
jmp 0x10012b98
test eax, eax
je 0x10012a04
cmp byte [esi + 0x48], 0x42
jne 0x10012a04
push 4
lea ecx, [esi + 0x24]
call fcn.10012e50
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.10012850
jmp 0x10012b98
mov ecx, esi
call fcn.10014a70
jmp 0x10012b91
cmp eax, 0x5b
jne 0x10012ab5
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012a55
cmp byte [eax], 0x5c
jne 0x10012a53
inc eax
cmp eax, ecx
je 0x10012a53
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10012a40
mov dl, byte [eax]
cmp dl, 0x28
je 0x10012a51
cmp dl, 0x29
je 0x10012a51
test cl, 0x10
jne 0x10012a53
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012a51
cmp cl, 0x7d
jne 0x10012a53
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000feb0
mov ecx, esi
call fcn.10014a00
cmp dword [esi + 0x4c], 0x5d
jne 0x10012bb3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012aa9
cmp byte [eax], 0x5c
jne 0x10012aa7
inc eax
cmp eax, ecx
je 0x10012aa7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10012a94
mov dl, byte [eax]
cmp dl, 0x28
je 0x10012aa5
cmp dl, 0x29
je 0x10012aa5
test cl, 0x10
jne 0x10012aa7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012aa5
cmp cl, 0x7d
jne 0x10012aa7
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000feb0
jmp 0x10012b91
cmp eax, 0x28
jne 0x10012b1d
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10012af6
cmp byte [eax], 0x5c
jne 0x10012af4
inc eax
cmp eax, ecx
je 0x10012af4
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10012ae1
mov dl, byte [eax]
cmp dl, 0x28
je 0x10012af2
cmp dl, 0x29
je 0x10012af2
test cl, 0x10
jne 0x10012af4
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10012af2
cmp cl, 0x7d
jne 0x10012af4
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000feb0
mov ecx, esi
call fcn.10014b30
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10012bac
mov ecx, esi
call fcn.10012850
test bl, bl
je 0x10012b98
jmp 0x10012b91
cmp eax, 0x5e
jne 0x10012b35
push 2
lea ecx, [esi + 0x24]
call fcn.10012e50
mov ecx, esi
call fcn.10012850
jmp 0x10012b98
cmp eax, 0x24
jne 0x10012b4d
push 3
lea ecx, [esi + 0x24]
call fcn.10012e50
mov ecx, esi
call fcn.10012850
jmp 0x10012b98
cmp eax, 0x2a
je 0x10012bc1
cmp eax, 0x2b
je 0x10012bc1
cmp eax, 0x3f
je 0x10012bc1
cmp eax, 0x7b
je 0x10012bc1
cmp eax, 0x7d
jne 0x10012b6f
test dword [esi + 0x50], 0x10000000
je 0x10012bba
cmp eax, 0x5d
jne 0x10012b7d
test dword [esi + 0x50], 0x10000000
je 0x10012bb3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10014d20
mov ecx, esi
call fcn.10012850
mov ecx, esi
call fcn.10014bf0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x100128b3
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.1008a0f7
push 4
call fcn.1008a0f7
push 6
call fcn.1008a0f7
push 0xa
call fcn.1008a0f7
int3