Function at 0x1009a470
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 0x1009a8d7
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x1009a8d7
cmp eax, 0x29
jne 0x1009a4b0
cmp dword [esi + 0x10], 0
jne 0x1009a8d7
test dword [esi + 0x50], 0x10000000
je 0x1009a8e4
jmp 0x1009a870
cmp eax, 0x2e
jne 0x1009a503
push 5
lea ecx, [esi + 0x24]
call fcn.1009a900
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009a8b8
cmp byte [eax], 0x5c
jne 0x1009a6bf
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009a6bf
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1009a4fb
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1009a6bd
cmp dl, 0x29
je 0x1009a6bd
test bl, 0x10
jmp 0x1009a6af
cmp eax, 0x5c
jne 0x1009a621
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009a54a
cmp byte [eax], 0x5c
jne 0x1009a547
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009a547
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1009a534
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1009a545
cmp dl, 0x29
je 0x1009a545
test bl, 0x10
jne 0x1009a547
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009a545
cmp dl, 0x7d
jne 0x1009a547
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100996b0
test byte [esi + 0x50], 0x80
je 0x1009a615
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1009a5b6
push 4
lea ecx, [esi + 0x24]
call fcn.1009a900
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009a5aa
cmp byte [eax], 0x5c
jne 0x1009a5a7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009a5a7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1009a594
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1009a5a5
cmp dl, 0x29
je 0x1009a5a5
test bl, 0x10
jne 0x1009a5a7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009a5a5
cmp dl, 0x7d
jne 0x1009a5a7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100996b0
jmp 0x1009a8c9
cmp al, 0x42
jne 0x1009a615
push 4
lea ecx, [esi + 0x24]
call fcn.1009a900
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009a609
cmp byte [eax], 0x5c
jne 0x1009a606
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009a606
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009a5f3
mov al, byte [ecx]
cmp al, 0x28
je 0x1009a604
cmp al, 0x29
je 0x1009a604
mov eax, dword [esi]
test dl, 0x10
jne 0x1009a606
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009a604
cmp dl, 0x7d
jne 0x1009a606
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100996b0
jmp 0x1009a8c9
mov ecx, esi
call fcn.1009b8b0
jmp 0x1009a8bf
cmp eax, 0x5b
jne 0x1009a6c7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009a668
cmp byte [eax], 0x5c
jne 0x1009a665
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009a665
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009a652
mov al, byte [ecx]
cmp al, 0x28
je 0x1009a663
cmp al, 0x29
je 0x1009a663
mov eax, dword [esi]
test dl, 0x10
jne 0x1009a665
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009a663
cmp dl, 0x7d
jne 0x1009a665
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100996b0
mov ecx, esi
call fcn.1009b780
cmp dword [esi + 0x4c], 0x5d
jne 0x1009a8f2
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009a8b8
cmp byte [eax], 0x5c
jne 0x1009a6bf
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009a6bf
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009a6ac
mov al, byte [ecx]
cmp al, 0x28
je 0x1009a6bd
cmp al, 0x29
je 0x1009a6bd
mov eax, dword [esi]
test dl, 0x10
jne 0x1009a6bf
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009a6bd
cmp dl, 0x7d
jne 0x1009a6bf
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1009a8b8
cmp eax, 0x28
jne 0x1009a77a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009a70e
cmp byte [eax], 0x5c
jne 0x1009a70b
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009a70b
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009a6f8
mov al, byte [ecx]
cmp al, 0x28
je 0x1009a709
cmp al, 0x29
je 0x1009a709
mov eax, dword [esi]
test dl, 0x10
jne 0x1009a70b
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009a709
cmp dl, 0x7d
jne 0x1009a70b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100996b0
mov ecx, esi
call fcn.1009ba00
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1009a8e4
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1009a766
cmp byte [eax], 0x5c
jne 0x1009a763
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1009a763
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1009a750
mov al, byte [ecx]
cmp al, 0x28
je 0x1009a761
cmp al, 0x29
je 0x1009a761
mov eax, dword [esi]
test dl, 0x10
jne 0x1009a763
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1009a761
cmp dl, 0x7d
jne 0x1009a763
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100996b0
test bl, bl
je 0x1009a8c9
jmp 0x1009a8bf
cmp eax, 0x5e
jne 0x1009a7d0
push 2
lea ecx, [esi + 0x24]
call fcn.1009a900
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1009a7c4
cmp byte [eax], 0x5c
jne 0x1009a7c2
inc eax
cmp eax, ecx
je 0x1009a7c2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1009a7af
mov dl, byte [eax]
cmp dl, 0x28
je 0x1009a7c0
cmp dl, 0x29
je 0x1009a7c0
test cl, 0x10
jne 0x1009a7c2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1009a7c0
cmp cl, 0x7d
jne 0x1009a7c2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100996b0
jmp 0x1009a8c9
cmp eax, 0x24
jne 0x1009a826
push 3
lea ecx, [esi + 0x24]
call fcn.1009a900
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1009a81a
cmp byte [eax], 0x5c
jne 0x1009a818
inc eax
cmp eax, ecx
je 0x1009a818
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1009a805
mov dl, byte [eax]
cmp dl, 0x28
je 0x1009a816
cmp dl, 0x29
je 0x1009a816
test cl, 0x10
jne 0x1009a818
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1009a816
cmp cl, 0x7d
jne 0x1009a818
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100996b0
jmp 0x1009a8c9
cmp eax, 0x2a
je 0x1009a8dd
cmp eax, 0x2b
je 0x1009a8dd
cmp eax, 0x3f
je 0x1009a8dd
cmp eax, 0x7b
je 0x1009a8dd
cmp eax, 0x7d
jne 0x1009a85e
test dword [esi + 0x50], 0x10000000
je 0x1009a8eb
jmp 0x1009a870
cmp eax, 0x5d
jne 0x1009a870
test dword [esi + 0x50], 0x10000000
je 0x1009a8f2
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1009be90
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1009a8b8
cmp byte [eax], 0x5c
jne 0x1009a8b6
inc eax
cmp eax, ecx
je 0x1009a8b6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1009a8a3
mov dl, byte [eax]
cmp dl, 0x28
je 0x1009a8b4
cmp dl, 0x29
je 0x1009a8b4
test cl, 0x10
jne 0x1009a8b6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1009a8b4
cmp cl, 0x7d
jne 0x1009a8b6
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100996b0
mov ecx, esi
call fcn.1009bc60
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1009a486
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.100996a0
push 5
call fcn.100996a0
push 6
call fcn.100996a0
push 4
call fcn.100996a0
int3