Function at 0x1000c5a0
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1000c9d4
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x1000c9d2
cmp eax, 0x29
jne 0x1000c5e0
cmp dword [esi + 0x10], 0
jne 0x1000c9d2
test dword [esi + 0x50], 0x10000000
je 0x1000c9e1
jmp 0x1000c96b
cmp eax, 0x2e
jne 0x1000c636
push 5
lea ecx, [esi + 0x24]
call fcn.1000f3f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000c9b3
cmp byte [eax], 0x5c
jne 0x1000c62e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1000c62e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000c61b
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1000c62c
cmp dl, 0x29
je 0x1000c62c
test bl, 0x10
jne 0x1000c62e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1000c62c
cmp dl, 0x7d
jne 0x1000c62e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1000c9b3
cmp eax, 0x5c
jne 0x1000c754
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000c67d
cmp byte [eax], 0x5c
jne 0x1000c67a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1000c67a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000c667
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1000c678
cmp dl, 0x29
je 0x1000c678
test bl, 0x10
jne 0x1000c67a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1000c678
cmp dl, 0x7d
jne 0x1000c67a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000fc80
test byte [esi + 0x50], 0x80
je 0x1000c748
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1000c6e9
push 4
lea ecx, [esi + 0x24]
call fcn.1000f3f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000c6dd
cmp byte [eax], 0x5c
jne 0x1000c6da
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1000c6da
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000c6c7
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1000c6d8
cmp dl, 0x29
je 0x1000c6d8
test bl, 0x10
jne 0x1000c6da
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1000c6d8
cmp dl, 0x7d
jne 0x1000c6da
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000fc80
jmp 0x1000c9c4
cmp al, 0x42
jne 0x1000c748
push 4
lea ecx, [esi + 0x24]
call fcn.1000f3f0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000c73c
cmp byte [eax], 0x5c
jne 0x1000c739
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1000c739
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1000c726
mov al, byte [ecx]
cmp al, 0x28
je 0x1000c737
cmp al, 0x29
je 0x1000c737
mov eax, dword [esi]
test dl, 0x10
jne 0x1000c739
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1000c737
cmp dl, 0x7d
jne 0x1000c739
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000fc80
jmp 0x1000c9c4
mov ecx, esi
call fcn.1000ca00
jmp 0x1000c9ba
cmp eax, 0x5b
jne 0x1000c7fe
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000c79b
cmp byte [eax], 0x5c
jne 0x1000c798
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1000c798
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1000c785
mov al, byte [ecx]
cmp al, 0x28
je 0x1000c796
cmp al, 0x29
je 0x1000c796
mov eax, dword [esi]
test dl, 0x10
jne 0x1000c798
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1000c796
cmp dl, 0x7d
jne 0x1000c798
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000fc80
lea ecx, [esi + 0x24]
call fcn.1000be40
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1000c7c3
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1000f4a0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1000c7e1
cmp eax, 0x5d
jne 0x1000c7e1
push eax
lea ecx, [esi + 0x24]
call fcn.1000bd80
mov ecx, esi
call fcn.1000f4a0
mov ecx, esi
call fcn.1000d380
cmp dword [esi + 0x4c], 0x5d
jne 0x1000c9f3
mov ecx, esi
call fcn.1000f4a0
jmp 0x1000c9ba
cmp eax, 0x28
jne 0x1000c86f
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000c841
cmp byte [eax], 0x5c
jne 0x1000c83e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1000c83e
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1000c82b
mov al, byte [ecx]
cmp al, 0x28
je 0x1000c83c
cmp al, 0x29
je 0x1000c83c
mov eax, dword [esi]
test dl, 0x10
jne 0x1000c83e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1000c83c
cmp dl, 0x7d
jne 0x1000c83e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000fc80
mov ecx, esi
call fcn.1000fec0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1000c9e1
mov ecx, esi
call fcn.1000f4a0
test bl, bl
je 0x1000c9c4
jmp 0x1000c9ba
cmp eax, 0x5e
jne 0x1000c8c8
push 2
lea ecx, [esi + 0x24]
call fcn.1000f3f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000c8bc
cmp byte [eax], 0x5c
jne 0x1000c8b9
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1000c8b9
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1000c8a6
mov al, byte [ecx]
cmp al, 0x28
je 0x1000c8b7
cmp al, 0x29
je 0x1000c8b7
mov eax, dword [esi]
test dl, 0x10
jne 0x1000c8b9
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1000c8b7
cmp dl, 0x7d
jne 0x1000c8b9
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000fc80
jmp 0x1000c9c4
cmp eax, 0x24
jne 0x1000c921
push 3
lea ecx, [esi + 0x24]
call fcn.1000f3f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000c915
cmp byte [eax], 0x5c
jne 0x1000c912
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1000c912
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1000c8ff
mov al, byte [ecx]
cmp al, 0x28
je 0x1000c910
cmp al, 0x29
je 0x1000c910
mov eax, dword [esi]
test dl, 0x10
jne 0x1000c912
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1000c910
cmp dl, 0x7d
jne 0x1000c912
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000fc80
jmp 0x1000c9c4
cmp eax, 0x2a
je 0x1000c9d8
cmp eax, 0x2b
je 0x1000c9d8
cmp eax, 0x3f
je 0x1000c9d8
cmp eax, 0x7b
je 0x1000c9d8
cmp eax, 0x7d
jne 0x1000c959
test dword [esi + 0x50], 0x10000000
je 0x1000c9ea
jmp 0x1000c96b
cmp eax, 0x5d
jne 0x1000c96b
test dword [esi + 0x50], 0x10000000
je 0x1000c9f3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1000bb30
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000c9b3
cmp byte [eax], 0x5c
jne 0x1000c9b1
inc eax
cmp eax, ecx
je 0x1000c9b1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000c99e
mov dl, byte [eax]
cmp dl, 0x28
je 0x1000c9af
cmp dl, 0x29
je 0x1000c9af
test cl, 0x10
jne 0x1000c9b1
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1000c9af
cmp cl, 0x7d
jne 0x1000c9b1
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1000fc80
mov ecx, esi
call fcn.1000f5b0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1000c5b6
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.1000e810
push 5
mov ecx, esi
call fcn.1000e810
push 6
mov ecx, esi
call fcn.1000e810
push 4
mov ecx, esi
call fcn.1000e810
int3