Function at 0x501c80
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x7d0
push esi
mov esi, ecx
test esi, esi
push edi
mov edi, edx
je 0x501da5
mov al, byte [esi + 1]
test al, al
jne 0x501da5
mov al, byte [esi]
cmp al, 0x2a
jne 0x501cb5
pop edi
mov eax, 1
pop esi
add esp, 0x7d0
ret 4
cmp al, 0x40
jne 0x501cd4
xor eax, eax
test edi, edi
je 0x501f16
cmp byte [edi], 0x40
pop edi
sete al
pop esi
add esp, 0x7d0
ret 4
cmp al, 0x23
jne 0x501d05
test edi, edi
je 0x501d74
mov eax, dword [esp + 0x7dc]
mov edx, dword [eax + 0x1c30]
mov ecx, edi
call fcn.004f8240
neg al
pop edi
pop esi
sbb eax, eax
neg eax
add esp, 0x7d0
ret 4
cmp al, 0x3f
jne 0x501d36
test edi, edi
je 0x501d74
cmp byte [edi], 0x40
je 0x501d74
mov ecx, dword [esp + 0x7dc]
mov edx, dword [ecx + 0x1c30]
mov ecx, edi
call fcn.004f8240
neg al
pop edi
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret 4
cmp al, 0x3d
jne 0x501d67
test edi, edi
je 0x501d74
cmp byte [edi], 0x40
je 0x501d74
mov edx, dword [esp + 0x7dc]
mov edx, dword [edx + 0x1c30]
mov ecx, edi
call fcn.004f8240
neg al
pop edi
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret 4
cmp al, 0x21
jne 0x501da5
test edi, edi
je 0x501d74
cmp byte [edi], 0x40
jne 0x501d81
pop edi
xor eax, eax
pop esi
add esp, 0x7d0
ret 4
mov eax, dword [esp + 0x7dc]
mov edx, dword [eax + 0x1c30]
mov ecx, edi
call fcn.004f8240
neg al
pop edi
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret 4
test esi, esi
push ebx
push ebp
je 0x501f12
mov al, byte [esi]
test al, al
je 0x501f12
cmp al, 0x24
mov ebx, dword [esp + 0x7e4]
jne 0x501dda
cmp byte [esi + 1], 0x28
jne 0x501dda
push ebx
push 0
lea edx, [esp + 0x18]
mov ecx, esi
call fcn.00501b40
jmp 0x501df9
cmp al, 0x25
jne 0x501e05
push 0x2c
push esi
call fcn.00563730
add esp, 8
test eax, eax
jne 0x501e05
push eax
lea edx, [esp + 0x14]
mov ecx, esi
call fcn.00532d50
test eax, eax
je 0x501f12
lea esi, [esp + 0x10]
mov al, byte [esi]
test al, al
je 0x501f12
nop
cmp al, 0x20
jne 0x501e1c
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x501e14
cmp byte [esi], 0
je 0x501f12
push 0x2c
push esi
call fcn.00563730
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x501e3a
mov byte [ebp], 0
push 0x20
push esi
call fcn.00563730
add esp, 8
test eax, eax
je 0x501e4c
mov byte [eax], 0
mov al, byte [esi]
cmp al, 0x24
jne 0x501e6b
cmp byte [esi + 1], 0x28
jne 0x501e6b
push ebx
push 0
lea edx, [esp + 0x400]
mov ecx, esi
call fcn.00501b40
jmp 0x501e7f
cmp al, 0x25
jne 0x501e8a
push 0
lea edx, [esp + 0x3fc]
mov ecx, esi
call fcn.00532d50
test eax, eax
je 0x501f00
lea esi, [esp + 0x3f8]
mov al, byte [esi]
test al, al
je 0x501f00
mov cl, byte [esi + 1]
test cl, cl
jne 0x501eee
cmp al, 0x2a
je 0x501f21
cmp al, 0x23
jne 0x501eb4
mov edx, dword [ebx + 0x1c30]
mov ecx, edi
call fcn.004f8240
test al, al
jne 0x501f21
cmp byte [esi], 0x3f
jne 0x501eca
mov edx, dword [ebx + 0x1c30]
mov ecx, edi
call fcn.004f8240
test al, al
je 0x501f21
cmp byte [esi], 0x3d
jne 0x501ee0
mov edx, dword [ebx + 0x1c30]
mov ecx, edi
call fcn.004f8240
test al, al
je 0x501f21
cmp byte [esi], 0x40
jne 0x501eee
test edi, edi
je 0x501f00
cmp byte [edi], 0x40
je 0x501f21
test edi, edi
je 0x501f00
push ebx
mov edx, edi
mov ecx, esi
call fcn.00501c20
test eax, eax
jne 0x501f21
test ebp, ebp
je 0x501f12
mov al, byte [ebp + 1]
test al, al
lea esi, [ebp + 1]
jne 0x501e10
pop ebp
xor eax, eax
pop ebx
pop edi
pop esi
add esp, 0x7d0
ret 4
pop ebp
pop ebx
pop edi
mov eax, 1
pop esi
add esp, 0x7d0
ret 4