Function at 0x1001aa40
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 0x1001ad46
cmp eax, 0x7c
je 0x1001ad46
cmp eax, 0x29
jne 0x1001aa78
cmp dword [esi + 0x10], 0
jne 0x1001ad46
test dword [esi + 0x50], 0x10000000
je 0x1001ad4c
cmp eax, 0x2e
jne 0x1001aacf
push 5
lea ecx, [esi + 0x24]
call fcn.1001aff0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001aac3
cmp byte [eax], 0x5c
jne 0x1001aac1
inc eax
cmp eax, ecx
je 0x1001aac1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001aaae
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001aabf
cmp dl, 0x29
je 0x1001aabf
test cl, 0x10
jne 0x1001aac1
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001aabf
cmp cl, 0x7d
jne 0x1001aac1
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10018a50
jmp 0x1001ad31
cmp eax, 0x5c
jne 0x1001abb0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001ab14
cmp byte [eax], 0x5c
jne 0x1001ab12
inc eax
cmp eax, ecx
je 0x1001ab12
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001aaff
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001ab10
cmp dl, 0x29
je 0x1001ab10
test cl, 0x10
jne 0x1001ab12
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001ab10
cmp cl, 0x7d
jne 0x1001ab12
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10018a50
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1001ab7d
cmp byte [esi + 0x48], 0x62
jne 0x1001ab7d
push 4
lea ecx, [esi + 0x24]
call fcn.1001aff0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001ab71
cmp byte [eax], 0x5c
jne 0x1001ab6f
inc eax
cmp eax, ecx
je 0x1001ab6f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1001ab5c
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001ab6d
cmp cl, 0x29
je 0x1001ab6d
test dl, 0x10
jne 0x1001ab6f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001ab6d
cmp cl, 0x7d
jne 0x1001ab6f
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10018a50
jmp 0x1001ad38
test eax, eax
je 0x1001aba4
cmp byte [esi + 0x48], 0x42
jne 0x1001aba4
push 4
lea ecx, [esi + 0x24]
call fcn.1001aff0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1001a9f0
jmp 0x1001ad38
mov ecx, esi
call fcn.1001c880
jmp 0x1001ad31
cmp eax, 0x5b
jne 0x1001ac55
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001abf5
cmp byte [eax], 0x5c
jne 0x1001abf3
inc eax
cmp eax, ecx
je 0x1001abf3
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001abe0
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001abf1
cmp dl, 0x29
je 0x1001abf1
test cl, 0x10
jne 0x1001abf3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001abf1
cmp cl, 0x7d
jne 0x1001abf3
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10018a50
mov ecx, esi
call fcn.1001c810
cmp dword [esi + 0x4c], 0x5d
jne 0x1001ad53
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001ac49
cmp byte [eax], 0x5c
jne 0x1001ac47
inc eax
cmp eax, ecx
je 0x1001ac47
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001ac34
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001ac45
cmp dl, 0x29
je 0x1001ac45
test cl, 0x10
jne 0x1001ac47
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001ac45
cmp cl, 0x7d
jne 0x1001ac47
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10018a50
jmp 0x1001ad31
cmp eax, 0x28
jne 0x1001acbd
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001ac96
cmp byte [eax], 0x5c
jne 0x1001ac94
inc eax
cmp eax, ecx
je 0x1001ac94
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001ac81
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001ac92
cmp dl, 0x29
je 0x1001ac92
test cl, 0x10
jne 0x1001ac94
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001ac92
cmp cl, 0x7d
jne 0x1001ac94
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10018a50
mov ecx, esi
call fcn.1001c940
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1001ad4c
mov ecx, esi
call fcn.1001a9f0
test bl, bl
je 0x1001ad38
jmp 0x1001ad31
cmp eax, 0x5e
jne 0x1001acd5
push 2
lea ecx, [esi + 0x24]
call fcn.1001aff0
mov ecx, esi
call fcn.1001a9f0
jmp 0x1001ad38
cmp eax, 0x24
jne 0x1001aced
push 3
lea ecx, [esi + 0x24]
call fcn.1001aff0
mov ecx, esi
call fcn.1001a9f0
jmp 0x1001ad38
cmp eax, 0x2a
je 0x1001ad61
cmp eax, 0x2b
je 0x1001ad61
cmp eax, 0x3f
je 0x1001ad61
cmp eax, 0x7b
je 0x1001ad61
cmp eax, 0x7d
jne 0x1001ad0f
test dword [esi + 0x50], 0x10000000
je 0x1001ad5a
cmp eax, 0x5d
jne 0x1001ad1d
test dword [esi + 0x50], 0x10000000
je 0x1001ad53
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1001cb30
mov ecx, esi
call fcn.1001a9f0
mov ecx, esi
call fcn.1001ca00
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1001aa53
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.1008759c
push 4
call fcn.1008759c
push 6
call fcn.1008759c
push 0xa
call fcn.1008759c
int3