Function at 0x1005c090
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 0x1005c52c
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x1005c52c
cmp eax, 0x29
jne 0x1005c0d0
cmp dword [esi + 0x10], 0
jne 0x1005c52c
test dword [esi + 0x50], 0x10000000
je 0x1005c539
jmp 0x1005c4c6
cmp eax, 0x2e
jne 0x1005c13a
push 5
lea ecx, [esi + 0x24]
call fcn.1005c590
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1005c50d
cmp byte [eax], 0x5c
jne 0x1005c132
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1005c130
test byte [esi + 0x50], 8
jne 0x1005c10f
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1005c125
cmp cl, 0x29
je 0x1005c125
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1005c130
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1005c125
mov edx, ecx
cmp bl, 0x7d
jne 0x1005c130
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1005c50d
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1005c50d
cmp eax, 0x5c
jne 0x1005c289
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1005c18f
cmp byte [eax], 0x5c
jne 0x1005c18c
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1005c18a
test byte [esi + 0x50], 8
jne 0x1005c16f
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1005c185
cmp cl, 0x29
je 0x1005c185
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1005c18a
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1005c185
mov edx, ecx
cmp bl, 0x7d
jne 0x1005c18a
lea eax, [edx + 1]
jmp 0x1005c18c
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a4f0
test byte [esi + 0x50], 0x80
je 0x1005c27d
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1005c216
push 4
lea ecx, [esi + 0x24]
call fcn.1005c590
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1005c20a
cmp byte [eax], 0x5c
jne 0x1005c207
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1005c205
test byte [esi + 0x50], 8
jne 0x1005c1dd
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1005c1f3
cmp cl, 0x29
je 0x1005c1f3
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1005c205
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1005c1f3
mov edx, ecx
cmp bl, 0x7d
jne 0x1005c205
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.1005a4f0
jmp 0x1005c51e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a4f0
jmp 0x1005c51e
cmp al, 0x42
jne 0x1005c27d
push 4
lea ecx, [esi + 0x24]
call fcn.1005c590
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c271
cmp byte [eax], 0x5c
jne 0x1005c26e
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x1005c26e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c258
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x1005c26b
cmp dl, 0x29
je 0x1005c26b
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c26e
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c26b
cmp dl, 0x7d
jne 0x1005c26e
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a4f0
jmp 0x1005c51e
mov ecx, esi
call fcn.1005d290
jmp 0x1005c514
cmp eax, 0x5b
jne 0x1005c33b
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c2d8
cmp byte [eax], 0x5c
jne 0x1005c2d5
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005c2d5
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c2bf
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1005c2d2
cmp bl, 0x29
je 0x1005c2d2
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c2d5
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c2d2
cmp dl, 0x7d
jne 0x1005c2d5
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a4f0
lea ecx, [esi + 0x24]
call fcn.1005ee90
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1005c300
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1005c030
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1005c31e
cmp eax, 0x5d
jne 0x1005c31e
push eax
lea ecx, [esi + 0x24]
call fcn.1005ef20
mov ecx, esi
call fcn.1005c030
mov ecx, esi
call fcn.1005e9e0
cmp dword [esi + 0x4c], 0x5d
jne 0x1005c547
mov ecx, esi
call fcn.1005c030
jmp 0x1005c514
cmp eax, 0x28
jne 0x1005c3b4
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c386
cmp byte [eax], 0x5c
jne 0x1005c383
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005c383
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c36d
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1005c380
cmp bl, 0x29
je 0x1005c380
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c383
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c380
cmp dl, 0x7d
jne 0x1005c383
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a4f0
mov ecx, esi
call fcn.1005d3e0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1005c539
mov ecx, esi
call fcn.1005c030
test bl, bl
je 0x1005c51e
jmp 0x1005c514
cmp eax, 0x5e
jne 0x1005c418
push 2
lea ecx, [esi + 0x24]
call fcn.1005c590
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c40c
cmp byte [eax], 0x5c
jne 0x1005c409
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005c409
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c3f3
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1005c406
cmp bl, 0x29
je 0x1005c406
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c409
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c406
cmp dl, 0x7d
jne 0x1005c409
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a4f0
jmp 0x1005c51e
cmp eax, 0x24
jne 0x1005c47c
push 3
lea ecx, [esi + 0x24]
call fcn.1005c590
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c470
cmp byte [eax], 0x5c
jne 0x1005c46d
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005c46d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c457
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1005c46a
cmp bl, 0x29
je 0x1005c46a
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c46d
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c46a
cmp dl, 0x7d
jne 0x1005c46d
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a4f0
jmp 0x1005c51e
cmp eax, 0x2a
je 0x1005c532
cmp eax, 0x2b
je 0x1005c532
cmp eax, 0x3f
je 0x1005c532
cmp eax, 0x7b
je 0x1005c532
cmp eax, 0x7d
jne 0x1005c4b4
test dword [esi + 0x50], 0x10000000
je 0x1005c540
jmp 0x1005c4c6
cmp eax, 0x5d
jne 0x1005c4c6
test dword [esi + 0x50], 0x10000000
je 0x1005c547
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1005d630
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1005c50d
cmp byte [eax], 0x5c
jne 0x1005c50b
inc eax
cmp eax, ecx
je 0x1005c50b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c4fa
mov dl, byte [eax]
cmp dl, 0x28
je 0x1005c509
cmp dl, 0x29
je 0x1005c509
test cl, 0x10
jne 0x1005c50b
mov al, byte [eax]
cmp al, 0x7b
je 0x1005c509
cmp al, 0x7d
jne 0x1005c50b
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1005a4f0
mov ecx, esi
call fcn.1005d4e0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1005c0a6
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.1005a4e0
push 5
call fcn.1005a4e0
push 6
call fcn.1005a4e0
push 4
call fcn.1005a4e0
int3