Function at 0x1004daa0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1004df85
lea edi, [esi + 8]
nop word [eax + eax]
cmp eax, 0x7c
je 0x1004df85
cmp eax, 0x29
jne 0x1004daea
cmp dword [esi + 0x10], 0
jne 0x1004df85
test dword [esi + 0x50], 0x10000000
je 0x1004df95
jmp 0x1004df1f
cmp eax, 0x2e
jne 0x1004db59
push 5
lea ecx, [esi + 0x24]
call fcn.1004dfb0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1004df66
cmp byte [eax], 0x5c
jne 0x1004dd5b
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1004db4f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004db2f
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1004db44
cmp cl, 0x29
je 0x1004db44
mov ecx, eax
test bl, 0x10
jne 0x1004db4f
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1004db44
mov edx, ecx
cmp bl, 0x7d
jne 0x1004db4f
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1004df66
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1004df66
cmp eax, 0x5c
jne 0x1004dca8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1004dbae
cmp byte [eax], 0x5c
jne 0x1004dbab
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1004dba9
test byte [esi + 0x50], 8
jne 0x1004db8e
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1004dba4
cmp cl, 0x29
je 0x1004dba4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1004dba9
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1004dba4
mov edx, ecx
cmp bl, 0x7d
jne 0x1004dba9
lea eax, [edx + 1]
jmp 0x1004dbab
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1004cd00
test byte [esi + 0x50], 0x80
je 0x1004dc9c
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1004dc35
push 4
lea ecx, [esi + 0x24]
call fcn.1004dfb0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1004dc29
cmp byte [eax], 0x5c
jne 0x1004dc26
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1004dc24
test byte [esi + 0x50], 8
jne 0x1004dbfc
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1004dc12
cmp cl, 0x29
je 0x1004dc12
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1004dc24
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1004dc12
mov edx, ecx
cmp bl, 0x7d
jne 0x1004dc24
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.1004cd00
jmp 0x1004df77
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1004cd00
jmp 0x1004df77
cmp al, 0x42
jne 0x1004dc9c
push 4
lea ecx, [esi + 0x24]
call fcn.1004dfb0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004dc90
cmp byte [eax], 0x5c
jne 0x1004dc8d
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x1004dc8d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004dc77
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x1004dc8a
cmp dl, 0x29
je 0x1004dc8a
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1004dc8d
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x1004dc8a
cmp dl, 0x7d
jne 0x1004dc8d
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1004cd00
jmp 0x1004df77
mov ecx, esi
call fcn.1004e840
jmp 0x1004df6d
cmp eax, 0x5b
jne 0x1004dd63
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004dcf9
cmp byte [eax], 0x5c
jne 0x1004dcf6
lea edx, [eax + 1]
cmp edx, ecx
je 0x1004dcf6
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004dce0
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1004dcf3
cmp byte [ebp - 1], 0x29
je 0x1004dcf3
test bl, 0x10
jne 0x1004dcf6
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1004dcf3
cmp dl, 0x7d
jne 0x1004dcf6
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1004cd00
mov ecx, esi
call fcn.1004e700
cmp dword [esi + 0x4c], 0x5d
jne 0x1004dfa3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004df66
cmp byte [eax], 0x5c
jne 0x1004dd5b
lea edx, [eax + 1]
cmp edx, ecx
je 0x1004dd5b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004dd45
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1004dd58
cmp byte [ebp - 1], 0x29
je 0x1004dd58
test bl, 0x10
jne 0x1004dd5b
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1004dd58
cmp dl, 0x7d
jne 0x1004dd5b
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x1004df66
cmp eax, 0x28
jne 0x1004de27
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004ddb2
cmp byte [eax], 0x5c
jne 0x1004ddaf
lea edx, [eax + 1]
cmp edx, ecx
je 0x1004ddaf
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004dd99
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1004ddac
cmp bl, 0x29
je 0x1004ddac
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1004ddaf
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1004ddac
cmp dl, 0x7d
jne 0x1004ddaf
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1004cd00
mov ecx, esi
call fcn.1004e990
cmp dword [esi + 0x4c], 0x29
mov bh, al
jne 0x1004df95
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004de13
cmp byte [eax], 0x5c
jne 0x1004de10
lea edx, [eax + 1]
cmp edx, ecx
je 0x1004de10
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004ddfa
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1004de0d
cmp bl, 0x29
je 0x1004de0d
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1004de10
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1004de0d
cmp dl, 0x7d
jne 0x1004de10
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1004cd00
test bh, bh
je 0x1004df77
jmp 0x1004df6d
cmp eax, 0x5e
jne 0x1004de7e
push 2
lea ecx, [esi + 0x24]
call fcn.1004dfb0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004de72
cmp byte [eax], 0x5c
jne 0x1004de70
inc eax
cmp eax, ecx
je 0x1004de70
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004de5f
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004de6e
cmp dl, 0x29
je 0x1004de6e
test cl, 0x10
jne 0x1004de70
mov al, byte [eax]
cmp al, 0x7b
je 0x1004de6e
cmp al, 0x7d
jne 0x1004de70
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1004cd00
jmp 0x1004df77
cmp eax, 0x24
jne 0x1004ded5
push 3
lea ecx, [esi + 0x24]
call fcn.1004dfb0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004dec9
cmp byte [eax], 0x5c
jne 0x1004dec7
inc eax
cmp eax, ecx
je 0x1004dec7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004deb6
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004dec5
cmp dl, 0x29
je 0x1004dec5
test cl, 0x10
jne 0x1004dec7
mov al, byte [eax]
cmp al, 0x7b
je 0x1004dec5
cmp al, 0x7d
jne 0x1004dec7
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1004cd00
jmp 0x1004df77
cmp eax, 0x2a
je 0x1004df8e
cmp eax, 0x2b
je 0x1004df8e
cmp eax, 0x3f
je 0x1004df8e
cmp eax, 0x7b
je 0x1004df8e
cmp eax, 0x7d
jne 0x1004df0d
test dword [esi + 0x50], 0x10000000
je 0x1004df9c
jmp 0x1004df1f
cmp eax, 0x5d
jne 0x1004df1f
test dword [esi + 0x50], 0x10000000
je 0x1004dfa3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1004ed40
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004df66
cmp byte [eax], 0x5c
jne 0x1004df64
inc eax
cmp eax, ecx
je 0x1004df64
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004df53
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004df62
cmp dl, 0x29
je 0x1004df62
test cl, 0x10
jne 0x1004df64
mov al, byte [eax]
cmp al, 0x7b
je 0x1004df62
cmp al, 0x7d
jne 0x1004df64
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1004cd00
mov ecx, esi
call fcn.1004eb10
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1004dac0
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.1004ccf0
push 5
call fcn.1004ccf0
push 6
call fcn.1004ccf0
push 4
call fcn.1004ccf0
int3