Function at 0x5093c0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x7d0
push esi
mov esi, ecx
test esi, esi
push edi
mov edi, edx
je 0x5094e5
mov al, byte [esi + 1]
test al, al
jne 0x5094e5
mov al, byte [esi]
cmp al, 0x2a
jne 0x5093f5
pop edi
mov eax, 1
pop esi
add esp, 0x7d0
ret 4
cmp al, 0x40
jne 0x509414
xor eax, eax
test edi, edi
je 0x509656
cmp byte [edi], 0x40
pop edi
sete al
pop esi
add esp, 0x7d0
ret 4
cmp al, 0x23
jne 0x509445
test edi, edi
je 0x5094b4
mov eax, dword [esp + 0x7dc]
mov edx, dword [eax + 0x1c40]
mov ecx, edi
call fcn.004ff610
neg al
pop edi
pop esi
sbb eax, eax
neg eax
add esp, 0x7d0
ret 4
cmp al, 0x3f
jne 0x509476
test edi, edi
je 0x5094b4
cmp byte [edi], 0x40
je 0x5094b4
mov ecx, dword [esp + 0x7dc]
mov edx, dword [ecx + 0x1c40]
mov ecx, edi
call fcn.004ff610
neg al
pop edi
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret 4
cmp al, 0x3d
jne 0x5094a7
test edi, edi
je 0x5094b4
cmp byte [edi], 0x40
je 0x5094b4
mov edx, dword [esp + 0x7dc]
mov edx, dword [edx + 0x1c40]
mov ecx, edi
call fcn.004ff610
neg al
pop edi
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret 4
cmp al, 0x21
jne 0x5094e5
test edi, edi
je 0x5094b4
cmp byte [edi], 0x40
jne 0x5094c1
pop edi
xor eax, eax
pop esi
add esp, 0x7d0
ret 4
mov eax, dword [esp + 0x7dc]
mov edx, dword [eax + 0x1c40]
mov ecx, edi
call fcn.004ff610
neg al
pop edi
pop esi
sbb eax, eax
inc eax
add esp, 0x7d0
ret 4
test esi, esi
push ebx
push ebp
je 0x509652
mov al, byte [esi]
test al, al
je 0x509652
cmp al, 0x24
mov ebx, dword [esp + 0x7e4]
jne 0x50951a
cmp byte [esi + 1], 0x28
jne 0x50951a
push ebx
push 0
lea edx, [esp + 0x18]
mov ecx, esi
call fcn.00509280
jmp 0x509539
cmp al, 0x25
jne 0x509545
push 0x2c
push esi
call fcn.00570260
add esp, 8
test eax, eax
jne 0x509545
push eax
lea edx, [esp + 0x14]
mov ecx, esi
call fcn.0053f280
test eax, eax
je 0x509652
lea esi, [esp + 0x10]
mov al, byte [esi]
test al, al
je 0x509652
nop
cmp al, 0x20
jne 0x50955c
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x509554
cmp byte [esi], 0
je 0x509652
push 0x2c
push esi
call fcn.00570260
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x50957a
mov byte [ebp], 0
push 0x20
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50958c
mov byte [eax], 0
mov al, byte [esi]
cmp al, 0x24
jne 0x5095ab
cmp byte [esi + 1], 0x28
jne 0x5095ab
push ebx
push 0
lea edx, [esp + 0x400]
mov ecx, esi
call fcn.00509280
jmp 0x5095bf
cmp al, 0x25
jne 0x5095ca
push 0
lea edx, [esp + 0x3fc]
mov ecx, esi
call fcn.0053f280
test eax, eax
je 0x509640
lea esi, [esp + 0x3f8]
mov al, byte [esi]
test al, al
je 0x509640
mov cl, byte [esi + 1]
test cl, cl
jne 0x50962e
cmp al, 0x2a
je 0x509661
cmp al, 0x23
jne 0x5095f4
mov edx, dword [ebx + 0x1c40]
mov ecx, edi
call fcn.004ff610
test al, al
jne 0x509661
cmp byte [esi], 0x3f
jne 0x50960a
mov edx, dword [ebx + 0x1c40]
mov ecx, edi
call fcn.004ff610
test al, al
je 0x509661
cmp byte [esi], 0x3d
jne 0x509620
mov edx, dword [ebx + 0x1c40]
mov ecx, edi
call fcn.004ff610
test al, al
je 0x509661
cmp byte [esi], 0x40
jne 0x50962e
test edi, edi
je 0x509640
cmp byte [edi], 0x40
je 0x509661
test edi, edi
je 0x509640
push ebx
mov edx, edi
mov ecx, esi
call fcn.00509360
test eax, eax
jne 0x509661
test ebp, ebp
je 0x509652
mov al, byte [ebp + 1]
test al, al
lea esi, [ebp + 1]
jne 0x509550
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