Function at 0x52d510
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x7d0
push esi
mov esi, dword [esp + 0x7d8]
test esi, esi
je 0x52d60a
mov al, byte [esi + 1]
test al, al
jne 0x52d60a
mov al, byte [esi]
cmp al, 0x2a
jne 0x52d544
mov eax, 1
pop esi
add esp, 0x7d0
ret
cmp al, 0x40
jne 0x52d567
mov eax, dword [esp + 0x7dc]
test eax, eax
je 0x52d5c8
mov dl, byte [eax]
xor ecx, ecx
cmp dl, 0x40
sete cl
pop esi
mov eax, ecx
add esp, 0x7d0
ret
cmp al, 0x23
jne 0x52d59b
mov eax, dword [esp + 0x7dc]
test eax, eax
je 0x52d5c8
mov edx, dword [esp + 0x7e0]
mov ecx, dword [edx + 0x1c44]
push ecx
push eax
call fcn.00522500
add esp, 8
neg al
pop esi
sbb eax, eax
neg eax
add esp, 0x7d0
ret
cmp al, 0x3f
jne 0x52d5b9
mov eax, dword [esp + 0x7dc]
test eax, eax
je 0x52d5c8
cmp byte [eax], 0x40
jne 0x52d5e6
xor eax, eax
pop esi
add esp, 0x7d0
ret
cmp al, 0x3d
jne 0x52d5d2
mov eax, dword [esp + 0x7dc]
test eax, eax
jne 0x52d5e1
xor eax, eax
pop esi
add esp, 0x7d0
ret
cmp al, 0x21
jne 0x52d60a
mov eax, dword [esp + 0x7dc]
test eax, eax
je 0x52d5c8
cmp byte [eax], 0x40
je 0x52d5c8
mov edx, dword [esp + 0x7e0]
mov ecx, dword [edx + 0x1c44]
push ecx
push eax
call fcn.00522500
add esp, 8
neg al
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret
test esi, esi
push ebx
push ebp
push edi
je 0x52d798
mov al, byte [esi]
test al, al
je 0x52d798
cmp al, 0x24
mov ebx, dword [esp + 0x7ec]
jne 0x52d643
cmp byte [esi + 1], 0x28
jne 0x52d643
push ebx
push 0
lea edx, [esp + 0x18]
push edx
push esi
call fcn.0052d3a0
add esp, 0x10
jmp 0x52d665
cmp al, 0x25
jne 0x52d671
push 0x2c
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
jne 0x52d671
push eax
lea eax, [esp + 0x14]
push eax
push esi
call fcn.0057df60
add esp, 0xc
test eax, eax
je 0x52d798
lea esi, [esp + 0x10]
mov al, byte [esi]
test al, al
je 0x52d798
mov ebp, dword [esp + 0x7e8]
cmp al, 0x20
jne 0x52d68e
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x52d686
cmp byte [esi], 0
je 0x52d798
push 0x2c
push esi
call fcn.005cbf10
mov edi, eax
add esp, 8
test edi, edi
je 0x52d6ab
mov byte [edi], 0
push 0x20
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x52d6bd
mov byte [eax], 0
mov al, byte [esi]
cmp al, 0x24
jne 0x52d6df
cmp byte [esi + 1], 0x28
jne 0x52d6df
push ebx
push 0
lea ecx, [esp + 0x400]
push ecx
push esi
call fcn.0052d3a0
add esp, 0x10
jmp 0x52d6f6
cmp al, 0x25
jne 0x52d705
push 0
lea edx, [esp + 0x3fc]
push edx
push esi
call fcn.0057df60
add esp, 0xc
test eax, eax
je 0x52d786
lea esi, [esp + 0x3f8]
mov al, byte [esi]
test al, al
je 0x52d786
mov cl, byte [esi + 1]
test cl, cl
jne 0x52d773
cmp al, 0x2a
je 0x52d7a5
cmp al, 0x23
jne 0x52d732
mov eax, dword [ebx + 0x1c44]
push eax
push ebp
call fcn.00522500
add esp, 8
test al, al
jne 0x52d7a5
cmp byte [esi], 0x3f
jne 0x52d74b
mov ecx, dword [ebx + 0x1c44]
push ecx
push ebp
call fcn.00522500
add esp, 8
test al, al
je 0x52d7a5
cmp byte [esi], 0x3d
jne 0x52d764
mov edx, dword [ebx + 0x1c44]
push edx
push ebp
call fcn.00522500
add esp, 8
test al, al
je 0x52d7a5
cmp byte [esi], 0x40
jne 0x52d773
test ebp, ebp
je 0x52d786
cmp byte [ebp], 0x40
je 0x52d7a5
test ebp, ebp
je 0x52d786
push ebx
push ebp
push esi
call fcn.0052d480
add esp, 0xc
test eax, eax
jne 0x52d7a5
test edi, edi
je 0x52d798
mov al, byte [edi + 1]
test al, al
lea esi, [edi + 1]
jne 0x52d682
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x7d0
ret
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 0x7d0
ret