Function at 0x51a7f0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x7d0
push esi
mov esi, ecx
test esi, esi
push edi
mov edi, edx
je 0x51a915
mov al, byte [esi + 1]
test al, al
jne 0x51a915
mov al, byte [esi]
cmp al, 0x2a
jne 0x51a825
pop edi
mov eax, 1
pop esi
add esp, 0x7d0
ret 4
cmp al, 0x40
jne 0x51a844
xor eax, eax
test edi, edi
je 0x51aa86
cmp byte [edi], 0x40
pop edi
sete al
pop esi
add esp, 0x7d0
ret 4
cmp al, 0x23
jne 0x51a875
test edi, edi
je 0x51a8e4
mov eax, dword [esp + 0x7dc]
mov edx, dword [eax + 0x1c44]
mov ecx, edi
call fcn.0050fa60
neg al
pop edi
pop esi
sbb eax, eax
neg eax
add esp, 0x7d0
ret 4
cmp al, 0x3f
jne 0x51a8a6
test edi, edi
je 0x51a8e4
cmp byte [edi], 0x40
je 0x51a8e4
mov ecx, dword [esp + 0x7dc]
mov edx, dword [ecx + 0x1c44]
mov ecx, edi
call fcn.0050fa60
neg al
pop edi
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret 4
cmp al, 0x3d
jne 0x51a8d7
test edi, edi
je 0x51a8e4
cmp byte [edi], 0x40
je 0x51a8e4
mov edx, dword [esp + 0x7dc]
mov edx, dword [edx + 0x1c44]
mov ecx, edi
call fcn.0050fa60
neg al
pop edi
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret 4
cmp al, 0x21
jne 0x51a915
test edi, edi
je 0x51a8e4
cmp byte [edi], 0x40
jne 0x51a8f1
pop edi
xor eax, eax
pop esi
add esp, 0x7d0
ret 4
mov eax, dword [esp + 0x7dc]
mov edx, dword [eax + 0x1c44]
mov ecx, edi
call fcn.0050fa60
neg al
pop edi
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret 4
test esi, esi
push ebx
push ebp
je 0x51aa82
mov al, byte [esi]
test al, al
je 0x51aa82
cmp al, 0x24
mov ebx, dword [esp + 0x7e4]
jne 0x51a94a
cmp byte [esi + 1], 0x28
jne 0x51a94a
push ebx
push 0
lea edx, [esp + 0x18]
mov ecx, esi
call fcn.0051a690
jmp 0x51a969
cmp al, 0x25
jne 0x51a975
push 0x2c
push esi
call fcn.005912e0
add esp, 8
test eax, eax
jne 0x51a975
push eax
lea edx, [esp + 0x14]
mov ecx, esi
call fcn.0055d5e0
test eax, eax
je 0x51aa82
lea esi, [esp + 0x10]
mov al, byte [esi]
test al, al
je 0x51aa82
nop
cmp al, 0x20
jne 0x51a98c
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51a984
cmp byte [esi], 0
je 0x51aa82
push 0x2c
push esi
call fcn.005912e0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x51a9aa
mov byte [ebp], 0
push 0x20
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51a9bc
mov byte [eax], 0
mov al, byte [esi]
cmp al, 0x24
jne 0x51a9db
cmp byte [esi + 1], 0x28
jne 0x51a9db
push ebx
push 0
lea edx, [esp + 0x400]
mov ecx, esi
call fcn.0051a690
jmp 0x51a9ef
cmp al, 0x25
jne 0x51a9fa
push 0
lea edx, [esp + 0x3fc]
mov ecx, esi
call fcn.0055d5e0
test eax, eax
je 0x51aa70
lea esi, [esp + 0x3f8]
mov al, byte [esi]
test al, al
je 0x51aa70
mov cl, byte [esi + 1]
test cl, cl
jne 0x51aa5e
cmp al, 0x2a
je 0x51aa91
cmp al, 0x23
jne 0x51aa24
mov edx, dword [ebx + 0x1c44]
mov ecx, edi
call fcn.0050fa60
test al, al
jne 0x51aa91
cmp byte [esi], 0x3f
jne 0x51aa3a
mov edx, dword [ebx + 0x1c44]
mov ecx, edi
call fcn.0050fa60
test al, al
je 0x51aa91
cmp byte [esi], 0x3d
jne 0x51aa50
mov edx, dword [ebx + 0x1c44]
mov ecx, edi
call fcn.0050fa60
test al, al
je 0x51aa91
cmp byte [esi], 0x40
jne 0x51aa5e
test edi, edi
je 0x51aa70
cmp byte [edi], 0x40
je 0x51aa91
test edi, edi
je 0x51aa70
push ebx
mov edx, edi
mov ecx, esi
call fcn.0051a770
test eax, eax
jne 0x51aa91
test ebp, ebp
je 0x51aa82
mov al, byte [ebp + 1]
test al, al
lea esi, [ebp + 1]
jne 0x51a980
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