Function at 0x1005c0b0
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 0x1005c54c
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x1005c54c
cmp eax, 0x29
jne 0x1005c0f0
cmp dword [esi + 0x10], 0
jne 0x1005c54c
test dword [esi + 0x50], 0x10000000
je 0x1005c559
jmp 0x1005c4e6
cmp eax, 0x2e
jne 0x1005c15a
push 5
lea ecx, [esi + 0x24]
call fcn.1005c5b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1005c52d
cmp byte [eax], 0x5c
jne 0x1005c152
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1005c150
test byte [esi + 0x50], 8
jne 0x1005c12f
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1005c145
cmp cl, 0x29
je 0x1005c145
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1005c150
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1005c145
mov edx, ecx
cmp bl, 0x7d
jne 0x1005c150
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1005c52d
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1005c52d
cmp eax, 0x5c
jne 0x1005c2a9
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1005c1af
cmp byte [eax], 0x5c
jne 0x1005c1ac
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1005c1aa
test byte [esi + 0x50], 8
jne 0x1005c18f
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1005c1a5
cmp cl, 0x29
je 0x1005c1a5
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1005c1aa
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1005c1a5
mov edx, ecx
cmp bl, 0x7d
jne 0x1005c1aa
lea eax, [edx + 1]
jmp 0x1005c1ac
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a6d0
test byte [esi + 0x50], 0x80
je 0x1005c29d
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1005c236
push 4
lea ecx, [esi + 0x24]
call fcn.1005c5b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1005c22a
cmp byte [eax], 0x5c
jne 0x1005c227
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1005c225
test byte [esi + 0x50], 8
jne 0x1005c1fd
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1005c213
cmp cl, 0x29
je 0x1005c213
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1005c225
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1005c213
mov edx, ecx
cmp bl, 0x7d
jne 0x1005c225
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.1005a6d0
jmp 0x1005c53e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a6d0
jmp 0x1005c53e
cmp al, 0x42
jne 0x1005c29d
push 4
lea ecx, [esi + 0x24]
call fcn.1005c5b0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c291
cmp byte [eax], 0x5c
jne 0x1005c28e
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x1005c28e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c278
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x1005c28b
cmp dl, 0x29
je 0x1005c28b
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c28e
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c28b
cmp dl, 0x7d
jne 0x1005c28e
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a6d0
jmp 0x1005c53e
mov ecx, esi
call fcn.1005d2b0
jmp 0x1005c534
cmp eax, 0x5b
jne 0x1005c35b
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c2f8
cmp byte [eax], 0x5c
jne 0x1005c2f5
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005c2f5
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c2df
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1005c2f2
cmp bl, 0x29
je 0x1005c2f2
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c2f5
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c2f2
cmp dl, 0x7d
jne 0x1005c2f5
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a6d0
lea ecx, [esi + 0x24]
call fcn.1005eeb0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1005c320
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1005c050
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1005c33e
cmp eax, 0x5d
jne 0x1005c33e
push eax
lea ecx, [esi + 0x24]
call fcn.1005ef40
mov ecx, esi
call fcn.1005c050
mov ecx, esi
call fcn.1005ea00
cmp dword [esi + 0x4c], 0x5d
jne 0x1005c567
mov ecx, esi
call fcn.1005c050
jmp 0x1005c534
cmp eax, 0x28
jne 0x1005c3d4
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c3a6
cmp byte [eax], 0x5c
jne 0x1005c3a3
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005c3a3
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c38d
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1005c3a0
cmp bl, 0x29
je 0x1005c3a0
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c3a3
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c3a0
cmp dl, 0x7d
jne 0x1005c3a3
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a6d0
mov ecx, esi
call fcn.1005d400
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1005c559
mov ecx, esi
call fcn.1005c050
test bl, bl
je 0x1005c53e
jmp 0x1005c534
cmp eax, 0x5e
jne 0x1005c438
push 2
lea ecx, [esi + 0x24]
call fcn.1005c5b0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c42c
cmp byte [eax], 0x5c
jne 0x1005c429
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005c429
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c413
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1005c426
cmp bl, 0x29
je 0x1005c426
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c429
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c426
cmp dl, 0x7d
jne 0x1005c429
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a6d0
jmp 0x1005c53e
cmp eax, 0x24
jne 0x1005c49c
push 3
lea ecx, [esi + 0x24]
call fcn.1005c5b0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1005c490
cmp byte [eax], 0x5c
jne 0x1005c48d
lea edx, [eax + 1]
cmp edx, ecx
je 0x1005c48d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c477
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1005c48a
cmp bl, 0x29
je 0x1005c48a
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1005c48d
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1005c48a
cmp dl, 0x7d
jne 0x1005c48d
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1005a6d0
jmp 0x1005c53e
cmp eax, 0x2a
je 0x1005c552
cmp eax, 0x2b
je 0x1005c552
cmp eax, 0x3f
je 0x1005c552
cmp eax, 0x7b
je 0x1005c552
cmp eax, 0x7d
jne 0x1005c4d4
test dword [esi + 0x50], 0x10000000
je 0x1005c560
jmp 0x1005c4e6
cmp eax, 0x5d
jne 0x1005c4e6
test dword [esi + 0x50], 0x10000000
je 0x1005c567
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1005d650
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1005c52d
cmp byte [eax], 0x5c
jne 0x1005c52b
inc eax
cmp eax, ecx
je 0x1005c52b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1005c51a
mov dl, byte [eax]
cmp dl, 0x28
je 0x1005c529
cmp dl, 0x29
je 0x1005c529
test cl, 0x10
jne 0x1005c52b
mov al, byte [eax]
cmp al, 0x7b
je 0x1005c529
cmp al, 0x7d
jne 0x1005c52b
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1005a6d0
mov ecx, esi
call fcn.1005d500
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1005c0c6
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.1005a6c0
push 5
call fcn.1005a6c0
push 6
call fcn.1005a6c0
push 4
call fcn.1005a6c0
int3