Function at 0x4ca888
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff2c
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
push 0x21
push dword [ebp - 4]
call fcn.0054e1ec
add esp, 8
mov esi, eax
test esi, esi
jne 0x4ca8b4
xor eax, eax
jmp 0x4cae8f
mov byte [esi], 0
inc esi
cmp byte [esi], 0
jne 0x4ca8c4
xor eax, eax
jmp 0x4cae8f
push 0x40
push esi
call fcn.0054e1ec
add esp, 8
mov edi, eax
test edi, edi
jne 0x4ca8dc
xor eax, eax
jmp 0x4cae8f
mov byte [edi], 0
inc edi
cmp byte [edi], 0
jne 0x4ca8ec
xor eax, eax
jmp 0x4cae8f
push 0x20
push dword [ebp - 4]
call fcn.0054e1ec
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x4ca902
mov byte [ebx], 0
push 0x20
push esi
call fcn.0054e1ec
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x4ca916
mov byte [ebx], 0
push 0x20
push edi
call fcn.0054e1ec
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x4ca92a
mov byte [ebx], 0
xor eax, eax
mov dword [ebp - 8], eax
cmp dword [ebp + 0xc], 0xa
jl 0x4ca940
sub dword [ebp + 0xc], 0xa
mov dword [ebp - 8], 1
cmp dword [ebp + 0xc], 1
je 0x4ca958
cmp dword [ebp + 0xc], 3
je 0x4ca958
cmp dword [ebp + 0xc], 6
je 0x4ca958
cmp dword [ebp + 0xc], 8
jne 0x4ca982
mov al, byte [esi]
cmp al, 0x2b
je 0x4ca972
cmp al, 0x2d
je 0x4ca972
cmp al, 0x2a
je 0x4ca972
cmp al, 0x7e
je 0x4ca972
cmp al, 0x5e
je 0x4ca972
cmp al, 0x3d
jne 0x4ca982
push esi
call fcn.0054e28c
pop ecx
cmp eax, 1
jbe 0x4ca982
inc esi
jmp 0x4ca982
inc esi
push esi
call fcn.0054e28c
pop ecx
cmp eax, 0xa
ja 0x4ca981
cmp dword [ebp + 0xc], 3
je 0x4ca9aa
cmp dword [ebp + 0xc], 4
je 0x4ca9aa
cmp dword [ebp + 0xc], 8
je 0x4ca9aa
cmp dword [ebp + 0xc], 9
jne 0x4caa53
push 0x3d
push edi
call fcn.0054e1ec
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x4ca9f5
cmp edi, ebx
jae 0x4ca9cc
dec ebx
cmp byte [ebx], 0x2e
jne 0x4ca9c8
inc ebx
jmp 0x4ca9cc
cmp edi, ebx
jb 0x4ca9bf
mov byte [ebx], 0x2a
inc ebx
mov eax, ebx
jmp 0x4ca9da
inc eax
cmp byte [eax], 0x2e
je 0x4ca9df
cmp byte [eax], 0
jne 0x4ca9d4
cmp byte [eax], 0x2e
jne 0x4ca9f0
jmp 0x4ca9ea
mov byte [ebx], dl
inc ebx
inc eax
mov dl, byte [eax]
test dl, dl
jne 0x4ca9e6
mov byte [ebx], 0
jmp 0x4caa53
cmp dword [ebp + 0x10], 0
je 0x4caa53
mov ecx, dword [ebp + 0x10]
test byte [ecx + 0x1a08], 0x20
je 0x4caa53
push 0x56a984
push edi
call fcn.0054e5a0
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x4caa53
cmp edi, ebx
jae 0x4caa2c
dec ebx
cmp byte [ebx], 0x2e
jne 0x4caa28
inc ebx
jmp 0x4caa2c
cmp edi, ebx
jb 0x4caa1f
mov byte [ebx], 0x2a
inc ebx
mov eax, ebx
jmp 0x4caa3a
inc eax
cmp byte [eax], 0x2e
je 0x4caa3f
cmp byte [eax], 0
jne 0x4caa34
cmp byte [eax], 0x2e
jne 0x4caa50
jmp 0x4caa4a
mov byte [ebx], dl
inc ebx
inc eax
mov dl, byte [eax]
test dl, dl
jne 0x4caa46
mov byte [ebx], 0
mov edx, 1
mov ebx, edi
jmp 0x4caa7d
mov al, byte [ebx]
cmp al, 0x2e
je 0x4caa7c
cmp al, 0x2a
je 0x4caa7c
cmp al, 0x3f
je 0x4caa7c
xor ecx, ecx
mov cl, al
test byte [ecx*2 + str.________________________________H], 4
jne 0x4caa7c
xor edx, edx
jmp 0x4caa82
inc ebx
cmp byte [ebx], 0
jne 0x4caa5c
test edx, edx
jne 0x4cabfb
cmp dword [ebp - 8], 0
je 0x4cab27
xor eax, eax
mov dword [ebp - 0xc], eax
push 0x2e
push edi
call fcn.0054e1ec
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x4caac4
inc dword [ebp - 0xc]
inc ebx
cmp byte [ebx], 0
je 0x4caac4
push 0x2e
push ebx
call fcn.0054e1ec
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x4caaaa
push esi
push edi
lea esi, [ebp - 0xd4]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
lea ebx, [ebp - 0xd4]
jmp 0x4cab16
and eax, 0xff
test byte [eax*2 + str.________________________________H], 4
je 0x4cab07
mov byte [ebx], 0x3f
jmp 0x4cab15
cmp byte [ebx], 0x2e
jne 0x4cab15
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
je 0x4cab1c
inc ebx
mov al, byte [ebx]
test al, al
jne 0x4caaf3
lea edi, [ebp - 0xd4]
jmp 0x4cac76
push 0x2e
push edi
call fcn.0054e1ec
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x4cabd2
inc ebx
cmp byte [ebx], 0
je 0x4caba6
push 0x2e
push ebx
call fcn.0054e1ec
add esp, 8
test eax, eax
je 0x4cab7a
push esi
push edi
mov esi, 0x56a989
lea edi, [ebp - 0xd4]
mov eax, edi
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
push ebx
lea edx, [ebp - 0xd4]
push edx
call fcn.0054e1b0
add esp, 8
jmp 0x4cac76
push esi
push edi
lea esi, [ebp - 0xd4]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x4cac76
push esi
push edi
lea esi, [ebp - 0xd4]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x4cac76
push esi
push edi
lea esi, [ebp - 0xd4]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x4cac76
push 0x2e
push edi
call fcn.0054e574
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x4cac4f
mov byte [ebx], 0
push esi
push edi
lea esi, [ebp - 0xd4]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push 0x56a98d
lea eax, [ebp - 0xd4]
push eax
call fcn.0054e1b0
add esp, 8
mov byte [ebx], 0x2e
jmp 0x4cac76
push esi
push edi
lea esi, [ebp - 0xd4]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
cmp dword [ebp + 0xc], 0
jne 0x4cac94
push edi
push esi
push 0x56a991
lea eax, [ebp - 0x70]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x4cae65
cmp dword [ebp + 0xc], 1
jne 0x4cacd6
jmp 0x4cac9d
inc esi
push esi
call fcn.0054e28c
pop ecx
cmp eax, 0xa
jae 0x4cac9c
push 0x56a99a
push esi
call fcn.0054e450
add esp, 8
test eax, eax
jne 0x4cacbe
mov byte [esi], 0
push edi
push esi
push 0x56a99d
lea edx, [ebp - 0x70]
push edx
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x4cae65
cmp dword [ebp + 0xc], 2
jne 0x4cacf3
push edi
push 0x56a9a7
lea ecx, [ebp - 0x70]
push ecx
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x4cae65
cmp dword [ebp + 0xc], 3
jne 0x4cad3b
jmp 0x4cacfc
inc esi
push esi
call fcn.0054e28c
pop ecx
cmp eax, 0xa
jae 0x4cacfb
push 0x56a9af
push esi
call fcn.0054e450
add esp, 8
test eax, eax
jne 0x4cad1d
mov byte [esi], 0
lea eax, [ebp - 0xd4]
push eax
push esi
push str.__s__s
lea edx, [ebp - 0x70]
push edx
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x4cae65
cmp dword [ebp + 0xc], 4
jne 0x4cad5e
lea ecx, [ebp - 0xd4]
push ecx
push 0x56a9bc
lea eax, [ebp - 0x70]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x4cae65
cmp dword [ebp + 0xc], 5
jne 0x4cad7f
push edi
push esi
push dword [ebp - 4]
push 0x56a9c4
lea edx, [ebp - 0x70]
push edx
call sub.USER32.dll_wsprintfA
add esp, 0x14
jmp 0x4cae65
cmp dword [ebp + 0xc], 6
jne 0x4cadc4
jmp 0x4cad88
inc esi
push esi
call fcn.0054e28c
pop ecx
cmp eax, 0xa
jae 0x4cad87
push 0x56a9ce
push esi
call fcn.0054e450
add esp, 8
test eax, eax
jne 0x4cada9
mov byte [esi], 0
push edi
push esi
push dword [ebp - 4]
push 0x56a9d1
lea ecx, [ebp - 0x70]
push ecx
call sub.USER32.dll_wsprintfA
add esp, 0x14
jmp 0x4cae65
cmp dword [ebp + 0xc], 7
jne 0x4cade4
push edi
push dword [ebp - 4]
push 0x56a9dc
lea eax, [ebp - 0x70]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x4cae65
cmp dword [ebp + 0xc], 8
jne 0x4cae2c
jmp 0x4caded
inc esi
push esi
call fcn.0054e28c
pop ecx
cmp eax, 0xa
jae 0x4cadec
push 0x56a9e5
push esi
call fcn.0054e450
add esp, 8
test eax, eax
jne 0x4cae0e
mov byte [esi], 0
lea edx, [ebp - 0xd4]
push edx
push esi
push dword [ebp - 4]
push 0x56a9e8
lea ecx, [ebp - 0x70]
push ecx
call sub.USER32.dll_wsprintfA
add esp, 0x14
jmp 0x4cae65
cmp dword [ebp + 0xc], 9
jne 0x4cae4f
lea eax, [ebp - 0xd4]
push eax
push dword [ebp - 4]
push str._s___s
lea edx, [ebp - 0x70]
push edx
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x4cae65
push edi
push esi
push dword [ebp - 4]
push str._s__s__s
lea ecx, [ebp - 0x70]
push ecx
call sub.USER32.dll_wsprintfA
add esp, 0x14
mov eax, dword [ebp + 8]
mov esi, eax
lea edi, [ebp - 0x70]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc